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


Листинг 5.12. Файл wast\wastdrv.cpp - часть 4


// Дописываем имя приложения wast.exe в строке // "load=" раздела [windows] файла win.ini AutoStartWAST(TRUE);

// Запрашиваем перезапуск Windows dwRc = DRVCNF_RESTART; break; }

// Удаление драйвера case DRV_REMOVE: { // Если окно приложения wast.exe было // зарегистрировано, отменяем регистрацию if(fTaskRegistered) UnregisterTask(vxdApi);

// Посылаем приложению wast.exe сообщение // WM_UNLOADWAST, в ответ на которое оно // завершает свою работу if(hTaskWAST != NULL) PostAppMessage(hTaskWAST, WM_UNLOADWAST, 0, 0l);

// Идентификатор задачи wast.exe теперь // недействителен hTaskWAST = NULL;

// В разделе [wastdrv] файла system.ini // заменяем строку "Enable=1" на "Enable=0" WritePrivateProfileString(szDriverName, "Enable", "0", "system.ini");

// Отменяем автоматический запуск wast.exe AutoStartWAST(FALSE);

dwRc = 0l; break; }

// Это сообщение присылается как запрос на // возможность конфигурирования драйвера. // Так как наш драйвер можно конфигурировать, // возвращаем значение 1l case DRV_QUERYCONFIGURE: { dwRc = 1l; break; }

// Конфигурирование драйвера case DRV_CONFIGURE: { // Создаем диалоговую панель конфигурирования dwRc = DialogBox(hMod, "CONFIG", NULL, DlgProc); break; }

// Все необработанные сообщения необходимо // передать функции DefDriverProc default: { return DefDriverProc(dwDiverId, hDriver, msg, lParam1, lParam2); } } return dwRc; }

// ====================================================== // Функция DldProc // Обработка сообщений диалоговой панели конфигурирования // ====================================================== #pragma argsused

int CALLBACK _export DlgProc(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam) { static BOOL fWasActive, fChanged;

switch(msg) { case WM_INITDIALOG: { // Определяем текущее состояние строки "Enable=" fWasActive = GetPrivateProfileInt(szDriverName, "Enable", 0, "system.ini");

// В соответствии с этим состоянием отмечаем // переключатель, управляющий возможностью запуска // приложений Windows из командной строки MS-DOS CheckDlgButton(hdlg, ID_ENABLE, fWasActive);




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



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