Операционная система Microsoft Windows 3.1 для программиста -том 3


Листинг 3.9. Файл winhook/winhook.cpp


// ================================================ // Приложение WINHOOK // Простейший руссификатор клавиатуры // для Microsoft Windows // Работает совместно с DLL-библиотекой kbhook.dll // ================================================

#define STRICT #include <windows.h> #include <windowsx.h> #include <dos.h> #include <mem.h>

#include "kbhook.hpp"

// ---------------------------------------------------- // Прототипы функций // ----------------------------------------------------

extern "C" void WINAPI _export SetKbHook(HWND hwnd);

extern "C" void WINAPI _export RemoveKbHook(void);

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

// ---------------------------------------------------- // Глобальные переменные // ----------------------------------------------------

char const szClassName[] = "WINHOOKAppClass"; char const szWindowTitle[] = "WINHOOK Application";

TEXTMETRIC tm; int cxChar, cyChar; RECT rc; static BOOL bCyrillic = FALSE;

// ===================================== // Функция WinMain // ===================================== #pragma argsused

int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) { MSG msg; // структура для работы с сообщениями HWND hwnd; // идентификатор главного окна приложения

// Можно запускать только одну копию приложения if(hPrevInstance) return 0;

// Инициализация копии приложения if(!InitApp(hInstance)) return FALSE;

// Получаем координаты окна Desktop. // Это окно занимает всю поверхность экрана // и на нем расположены все остальные окна GetWindowRect(GetDesktopWindow(), &rc);

// Создаем временное окно с толстой // рамкой для изменения размера, но без // заголовка и системного меню. // При создании окна указываем произвольные // размеры окна и произвольное расположение hwnd = CreateWindow( szClassName, szWindowTitle, WS_POPUPWINDOW | WS_THICKFRAME, 100, 100, 100, 100, 0, 0, hInstance, NULL);




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



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