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) 157 L"Control Panel\\Input Method\\Hot Keys\\%08lX", dwID);
183 bRevertOnFailure =
TRUE;
187 (
LPBYTE)&uVirtualKey,
sizeof(uVirtualKey));
192 (
LPBYTE)&uModifiers,
sizeof(uModifiers));
197 (
LPBYTE)&hKL,
sizeof(hKL));
202 bRevertOnFailure =
FALSE;
215 if (bRevertOnFailure)
229 if (uVirtualKey == 0)
253 DWORD dwHotKeyId = 0;
254 UINT uModifiers = 0, uVirtualKey = 0;
279 DWORD dwIndex, cchKeyName;
283 L"Control Panel\\Input Method\\Hot Keys",
290 for (dwIndex = 0; ; ++dwIndex)
297 szKeyName[
_countof(szKeyName) - 1] = 0;
309 WCHAR szValueName[8], szValue[16];
311 DWORD dwKL, cbValue, dwType;
320 for (iNumber = 1; iNumber < 1000; ++iNumber)
324 cbValue =
sizeof(szValue);
342 UINT uVirtualKey, uModifiers;
391 for (iIndex = 0; iIndex < nCount; ++iIndex)
488 if (vKey < 0 || vKey > 256)
535 lpString,
nSize,
".", &defChar);
589 RtlInitEmptyUnicodeString(&
Name,
633 wszKLID,
sizeof(wszKLID)/
sizeof(wszKLID[0])))
651 WCHAR wszRegKey[256] =
L"SYSTEM\\CurrentControlSet\\Control\\Keyboard Layouts\\";
652 WCHAR wszLayoutId[10], wszNewKLID[10];
664 dwSize =
sizeof(wszNewKLID);
668 pwszKLID = wszNewKLID;
683 dwSize =
sizeof(wszLayoutId);
692 dwhkl |= (0xf000 |
wcstol(wszLayoutId,
NULL, 16)) << 16;
700 ERR(
"Could not find keyboard layout %S.\n", pwszKLID);
706 dwhkl |= dwhkl << 16;
708 ZeroMemory(&ustrKbdName,
sizeof(ustrKbdName));
785 if (!Scan)
return -1;
790 return ((Vk & 0xff00) << 8) | Scan;
848 CharCount = (Ret < 0 ? 1 : Ret);
866 return ToUnicodeEx(wVirtKey, wScanCode, lpKeyState, pwszBuff, cchBuff,
961 Input.ki.dwExtraInfo = dwExtraInfo;
987 Input.mi.dwExtraInfo = dwExtraInfo;
#define ERROR_INVALID_PARAMETER
#define IME_CHOTKEY_IME_NONIME_TOGGLE
#define IME_THOTKEY_SHAPE_TOGGLE
static const WCHAR szName[]
#define IME_JHOTKEY_CLOSE_OPEN
#define SUBLANG_CHINESE_TRADITIONAL
#define WideCharToMultiByte
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList
#define ERROR_NO_MORE_ITEMS
#define IME_KHOTKEY_SHAPE_TOGGLE
#define HKEY_CURRENT_USER
BOOL WINAPI WaitMessage(void)
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_ long __cdecl wcstol(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
_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)
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
int WINAPI GetSystemMetrics(_In_ int)
#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)
STRSAFEAPI StringCchPrintfW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat,...)
EXTINLINE BOOL NtUserxSwapMouseButton(BOOL fSwap)
SHORT NTAPI NtUserGetAsyncKeyState(INT Key)
#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
#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)