63 #define FE_JAPANESE (1 << 0) 64 #define FE_CHINESE_TRADITIONAL (1 << 1) 65 #define FE_CHINESE_SIMPLIFIED (1 << 2) 66 #define FE_KOREAN (1 << 3) 99 DWORD dwValue, cbValue;
102 cbValue =
sizeof(dwValue);
133 #define MOD_ALL_MODS (MOD_ALT | MOD_CONTROL | MOD_SHIFT | MOD_WIN) 151 DWORD cbValue, dwType;
158 L"Keyboard Layout\\Preload",
164 for (nNumber = 1; nNumber <= 1000; ++nNumber)
166 _ultow(nNumber, szNumber, 10);
168 cbValue =
sizeof(szValue);
220 L"Control Panel\\Input Method\\Hot Keys\\%08lX", dwID);
246 bRevertOnFailure =
TRUE;
250 (
LPBYTE)&uVirtualKey,
sizeof(uVirtualKey));
255 (
LPBYTE)&uModifiers,
sizeof(uModifiers));
260 (
LPBYTE)&hKL,
sizeof(hKL));
265 bRevertOnFailure =
FALSE;
278 if (bRevertOnFailure)
292 if (uVirtualKey == 0)
316 DWORD dwHotKeyId = 0;
317 UINT uModifiers = 0, uVirtualKey = 0;
342 DWORD dwIndex, cchKeyName;
346 L"Control Panel\\Input Method\\Hot Keys",
353 for (dwIndex = 0; dwIndex < 1000; ++dwIndex)
360 szKeyName[
_countof(szKeyName) - 1] = 0;
372 WCHAR szValueName[33], szValue[16];
374 DWORD dwKL, cbValue, dwType;
383 for (iNumber = 1; iNumber < 1000; ++iNumber)
385 _ultow(iNumber, szValueName, 10);
387 cbValue =
sizeof(szValue);
408 UINT uVirtualKey, uModifiers;
457 for (iIndex = 0; iIndex < nCount; ++iIndex)
554 if (vKey < 0 || vKey > 256)
601 lpString,
nSize,
".", &defChar);
655 RtlInitEmptyUnicodeString(&
Name,
699 wszKLID,
sizeof(wszKLID)/
sizeof(wszKLID[0])))
719 #define ENGLISH_US MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US) 738 WCHAR wszRegKey[256] =
L"SYSTEM\\CurrentControlSet\\Control\\Keyboard Layouts\\";
763 dwSize =
sizeof(wszNewKLID);
769 pwszKLID = wszNewKLID;
785 dwSize =
sizeof(wszLayoutId);
796 dwSize =
sizeof(szImeFileName);
802 ERR(
"0x%X\n", dwKLID);
811 if (dwType !=
REG_SZ || szImeFileName[0] == 0 ||
827 ERR(
"Could not find keyboard layout %S.\n", pwszKLID);
836 ZeroMemory(&ustrKbdName,
sizeof(ustrKbdName));
938 if (!Scan)
return -1;
943 return ((Vk & 0xff00) << 8) | Scan;
1001 CharCount = (Ret < 0 ? 1 : Ret);
1019 return ToUnicodeEx(wVirtKey, wScanCode, lpKeyState, pwszBuff, cchBuff,
1114 Input.ki.dwExtraInfo = dwExtraInfo;
1140 Input.mi.dwExtraInfo = dwExtraInfo;
#define ERROR_INVALID_PARAMETER
#define IME_CHOTKEY_IME_NONIME_TOGGLE
#define IME_THOTKEY_SHAPE_TOGGLE
static const WCHAR szName[]
_CRTIMP wchar_t *__cdecl _ultow(_In_ unsigned long _Value, _Pre_notnull_ _Post_z_ wchar_t *_Dest, _In_ int _Radix)
#define IME_JHOTKEY_CLOSE_OPEN
#define SUBLANG_CHINESE_TRADITIONAL
#define WideCharToMultiByte
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList
#define IME_KHOTKEY_SHAPE_TOGGLE
#define HKEY_CURRENT_USER
BOOL WINAPI WaitMessage(void)
_Check_return_ _CRTIMP size_t __cdecl wcscspn(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_Control)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
*nSize LPSTR _Inout_ LPDWORD nSize
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
LONG WINAPI RegDeleteKeyW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey)
static HANDLE ULONG_PTR dwData
#define SUBLANG_CHINESE_HONGKONG
LCID WINAPI GetUserDefaultLCID(void)
_Check_return_ unsigned long __cdecl wcstoul(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
#define SUBLANG_CHINESE_SINGAPORE
STRSAFEAPI StringCbCatW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
BOOL NTAPI NtUserGetKeyboardLayoutName(_Inout_ PUNICODE_STRING pustrName)
GLenum GLuint GLenum GLsizei const GLchar * buf
EXTINLINE BOOL NtUserxEnableWindow(HWND hWnd, BOOL bEnable)
EXTINLINE HKL NtUserxGetKeyboardLayout(DWORD idThread)
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
WORD WORD PSZ PSZ pszFileName
SHORT NTAPI NtUserGetKeyState(INT VirtKey)
#define IME_HOTKEY_DSWITCH_LAST
EXTINLINE INT NtUserxGetKeyboardType(INT nTypeFlag)
BOOL WINAPI IsDBCSLeadByte(BYTE TestByte)
#define KLF_SUBSTITUTE_OK
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
#define DECLSPEC_HOTPATCH
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
#define MOD_IGNORE_ALL_MODIFIER
_Must_inspect_result_ _In_ ULONG Flags
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
#define IME_THOTKEY_IME_NONIME_TOGGLE
#define UlongToHandle(ul)
int WINAPI GetSystemMetrics(_In_ int)
#define INVALID_FILE_ATTRIBUTES
#define IME_CHOTKEY_SHAPE_TOGGLE
UINT NTAPI NtUserMapVirtualKeyEx(UINT keyCode, UINT transType, DWORD keyboardId, HKL dwhkl)
HKL NTAPI NtUserLoadKeyboardLayoutEx(IN HANDLE Handle, IN DWORD offTable, IN PUNICODE_STRING puszKeyboardName, IN HKL hKL, IN PUNICODE_STRING puszKLID, IN DWORD dwKLID, IN UINT Flags)
DWORD NTAPI NtUserVkKeyScanEx(WCHAR wChar, HKL KeyboardLayout, BOOL bUsehHK)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define LANGIDFROMLCID(l)
#define SUBLANG_CHINESE_SIMPLIFIED
#define SPI_SETDOUBLECLICKTIME
_In_ DWORD _Out_ _In_ WORD wFlags
HWND WINAPI SetCapture(_In_ HWND hWnd)
BOOL NTAPI NtUserGetImeHotKey(DWORD dwHotKeyId, LPUINT lpuModifiers, LPUINT lpuVirtualKey, LPHKL lphKL)
#define IME_HOTKEY_DSWITCH_FIRST
BOOL NTAPI NtUserUnloadKeyboardLayout(HKL hKl)
BOOL NTAPI NtUserSystemParametersInfo(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni)
BOOL WINAPI SystemParametersInfoW(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
STRSAFEAPI StringCchPrintfW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat,...)
UINT WINAPI GetSystemDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
EXTINLINE BOOL NtUserxSwapMouseButton(BOOL fSwap)
SHORT NTAPI NtUserGetAsyncKeyState(INT Key)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define MultiByteToWideChar
BOOL WINAPI PtInRect(_In_ LPCRECT, _In_ POINT)
BOOL WINAPI ReleaseCapture(void)
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToInteger(PUNICODE_STRING String, ULONG Base, PULONG Value)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
BOOL NTAPI NtUserSetImeHotKey(DWORD dwHotKeyId, UINT uModifiers, UINT uVirtualKey, HKL hKL, DWORD dwAction)
UINT NTAPI NtUserGetKeyboardLayoutList(ULONG nItems, HKL *pHklBuff)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
INT NTAPI NtUserToUnicodeEx(UINT wVirtKey, UINT wScanCode, PBYTE lpKeyState, LPWSTR pwszBuff, int cchBuff, UINT wFlags, HKL dwhkl)
LONG WINAPI RegEnumKeyExW(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPWSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpReserved, _Out_opt_ LPWSTR lpClass, _Inout_opt_ LPDWORD lpcbClass, _Out_opt_ PFILETIME lpftLastWriteTime)
BOOL WINAPI PeekMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT, _In_ UINT)
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_writes_opt_ NumCharacters PUSHORT _Inout_ PUSHORT _In_ UCHAR _In_opt_ USHORT LangID
_Check_return_ _CRTIMP size_t __cdecl wcsspn(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_Control)
#define HeapFree(x, y, z)
#define RegCloseKey(hKey)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
BOOL NTAPI NtUserDragDetect(HWND hWnd, POINT pt)
#define HKEY_LOCAL_MACHINE
DWORD NTAPI NtUserGetKeyNameText(LONG lParam, LPWSTR lpString, int nSize)
UINT WINAPI GetOEMCP(VOID)