Операционная система Microsoft Windows 3.1 для программиста. Дополнительные главы


Листинг 5.4. Файл dos2win\dos2win.cpp


// ====================================================== // Приложение DOS2WIN // // Запуск приложений Windows из // коммандной строки MS-DOS // // Используется совместно с DLL-библиотекой // d2w.dll и VxD-драйвером VXDSRV.386 версии 1.1 // ------------------------------------------------------ // Copyright (C) 1995 Alexandr Frolov // ====================================================== #define STRICT #include <windows.h> #include <mem.h> #include <string.h> #include <dir.h>

#include "dos2win.hpp" #include "vxdcall.hpp"

BOOL InitApp(HINSTANCE);

LRESULT CALLBACK _export WndProc(HWND, UINT, WPARAM, LPARAM);

extern "C" void FAR PASCAL _export WinAppStart(HWND hwnd, LPSTR szPath);

extern "C" void FAR PASCAL _export RegisterWnd(HWND hwnd);

BOOL CALLBACK _export DlgProc(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam);

char const szClassName[] = "DOS2WINClass"; char const szWindowTitle[] = "dos2win"; HINSTANCE hInst; HMENU hmenuSystemMenu;

struct LOADPARMS { WORD segEnv; // среда LPSTR lpszCmdLine; // коммандная строка LPWORD lpwShow; // режим отображения LPWORD lpwReserved; // зарезервировано }; struct LOADPARMS parms;

// Точка входа API VxD-драйвера VXDAPI vxd;

WORD awShow[2] = { 2, SW_SHOW }; LPSTR lpszCmd, lpszParm; char szBuf[256]; char szCurPath[128];

DLGPROC lpfnDlgProc;

// ====================================================== // Функция WinMain // ====================================================== #pragma argsused int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) { MSG msg; HWND hwnd;

if(hPrevInstance) // только одна копия приложения return FALSE;

if(!InitApp(hInstance)) return FALSE;

hInst = hInstance;

hwnd = CreateWindow( szClassName, szWindowTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, hInstance, NULL);

if(!hwnd) return FALSE;

// Получаем точку входа API VxD-драйвера vxd = vxdGetDeviceAPI(VXD_ID);




Начало  Назад  Вперед



Книжный магазин