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


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


return TRUE; }

case WM_COMMAND: { switch(wParam) { case IDOK: { // Флаг изменения режима работы драйвера // при его конфигурировании fChanged = TRUE;

// Если переключатель находится во включенном // состоянии, разрешаем работу драйвера if(IsDlgButtonChecked(hdlg, ID_ENABLE)) { if(fWasActive) fChanged = FALSE;

// Заносим изменения в файл system.ini WritePrivateProfileString(szDriverName, "Enable", "1", "system.ini");

// Разрешаем автоматический запуск wast.exe AutoStartWAST(TRUE); }

// Если переключатель находился в выключенном // состоянии, запрещаем работу драйвера else { if(!fWasActive) fChanged = FALSE; WritePrivateProfileString(szDriverName, "Enable", "0", "system.ini"); AutoStartWAST(FALSE); }

// Если был изменен режим работы драйвера, // запрашиваем перезапуск Windows EndDialog(hdlg, fChanged ? DRVCNF_RESTART : DRVCNF_CANCEL); return TRUE; }

// Отмена изменения конфигурации case IDCANCEL: { EndDialog(hdlg, DRVCNF_CANCEL); return TRUE; } } } } return FALSE; }

// ====================================================== // Функция AutoStartWAST // В зависимости от значения параметра эта функция // дописывает имя приложения wast.exe в строке // "load=" раздела [windows] файла win.ini // или наоборот, удаляет имя wast.exe из этой строки // ====================================================== void AutoStartWAST(BOOL fStart) { static LPSTR lpszSubst;

// Получаем строку "load=..." во временный буфер GetProfileString("windows", "load", "", szTemp, 80);

// Ищем в этой строке имя приложения wast.exe lpszSubst = _fstrstr(szTemp, (LPSTR)"wast");

// Если параметр функции равен TRUE, добавляем // имя в строку if(fStart) { // Добавляем только в том случае, если этого // имени там нет if(lpszSubst == NULL) { lstrcat(szTemp, " "); lstrcat(szTemp, "wast"); } }

// Если параметр функции равен FALSE, удаляем // имя приложения wast.exe из строки else { // Удаляем только в том случае, если это имя // там действительно есть if(lpszSubst != NULL) { _fstrcpy(lpszSubst, lpszSubst + _fstrlen(lpszSubst)); } }




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



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