Reactos
at master 137 lines 3.4 kB view raw
1/* 2 * PROJECT: ReactOS On-Screen Keyboard 3 * LICENSE: GPL - See COPYING in the top level directory 4 * PURPOSE: Pre-compiled header 5 * COPYRIGHT: Denis ROBERT 6 * Copyright 2019 George Bișoc (george.bisoc@reactos.org) 7 */ 8 9#ifndef _OSK_PRECOMP_H 10#define _OSK_PRECOMP_H 11 12/* INCLUDES *******************************************************************/ 13 14#include <stdio.h> 15 16#include <windows.h> 17#include <debug.h> 18#include "commctrl.h" 19#include "strsafe.h" 20 21#include "osk_res.h" 22 23/* TYPES **********************************************************************/ 24 25typedef struct _KEY 26{ 27 LPCWSTR name; 28 INT_PTR scancode; 29 INT x; 30 INT y; 31 INT cx; 32 INT cy; 33 INT flags; 34 BOOL translate; 35} KEY, *PKEY; 36 37typedef struct _KEYBOARD_STRUCT 38{ 39 PKEY Keys; 40 INT KeyCount; 41 SIZE Size; 42 POINT LedTextStart; 43 SIZE LedTextSize; 44 INT LedTextOffset; 45 POINT LedStart; 46 SIZE LedSize; 47 INT LedGap; 48} KEYBOARD_STRUCT, *PKEYBOARD_STRUCT; 49 50typedef struct 51{ 52 HINSTANCE hInstance; 53 HWND hMainWnd; 54 HBRUSH hBrushGreenLed; 55 UINT_PTR iTimer; 56 PKEYBOARD_STRUCT Keyboard; 57 HWND* hKeys; 58 HFONT hFont; 59 WCHAR szTitle[MAX_PATH]; 60 61 /* On-Screen Keyboard registry settings */ 62 BOOL bShowWarning; 63 BOOL bIsEnhancedKeyboard; 64 BOOL bSoundClick; 65 BOOL bAlwaysOnTop; 66 INT PosX; 67 INT PosY; 68 WCHAR FontFaceName[LF_FACESIZE]; 69 LONG FontHeight; 70} OSK_GLOBALS; 71 72typedef struct 73{ 74 INT vKey; 75 INT DlgResource; 76 WORD wScanCode; 77 BOOL bWasKeyPressed; 78} OSK_KEYLEDINDICATOR; 79 80/* PROTOTYPES *****************************************************************/ 81 82/* keyboard.c */ 83extern KEYBOARD_STRUCT StandardKeyboard; 84extern KEYBOARD_STRUCT EnhancedKeyboard; 85 86/* main.c */ 87int OSK_SetImage(int IdDlgItem, int IdResource); 88LRESULT OSK_Create(HWND hwnd); 89int OSK_Close(void); 90int OSK_Timer(void); 91BOOL OSK_Command(WPARAM wCommand, HWND hWndControl); 92BOOL OSK_ReleaseKey(WORD ScanCode); 93LRESULT APIENTRY OSK_WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); 94DWORD WINAPI OSK_WarningDlgThread(LPVOID lpParameter); 95int WINAPI wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int); 96VOID OSK_RestoreDlgPlacement(HWND hDlg); 97VOID OSK_RefreshLEDKeys(VOID); 98INT_PTR CALLBACK OSK_WarningProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); 99 100/* settings.c */ 101LONG LoadDWORDFromRegistry(IN LPCWSTR lpValueDataName, 102 OUT PDWORD pdwValueData); 103 104LONG LoadStringFromRegistry(IN LPCWSTR lpValueDataName, 105 OUT LPWSTR lpValueData, 106 IN OUT LPUINT cchCount); 107 108LONG SaveDWORDToRegistry(IN LPCWSTR lpValueDataName, 109 IN DWORD dwValueData); 110 111LONG SaveStringToRegistry(IN LPCWSTR lpValueDataName, 112 IN LPCWSTR lpValueData, 113 IN UINT cchCount); 114 115VOID LoadSettings(VOID); 116VOID SaveSettings(VOID); 117 118/* DEFINES ********************************************************************/ 119 120#define SCANCODE_MASK 0xFF 121 122extern OSK_GLOBALS Globals; 123 124#define OSK_CLASS L"OSKMainWindow" 125#define DEFAULT_FONTSIZE 15 126 127/* OSK_SetKeys reasons */ 128enum SetKeys_Reason 129{ 130 SETKEYS_INIT, 131 SETKEYS_LAYOUT, 132 SETKEYS_LANG 133}; 134 135#endif /* _OSK_PRECOMP_H */ 136 137/* EOF */