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);
218 L"Control Panel\\Input Method\\Hot Keys\\%08lX", dwID);
229 bRevertOnFailure =
TRUE;
233 (
LPBYTE)&uVirtualKey,
sizeof(uVirtualKey));
238 (
LPBYTE)&uModifiers,
sizeof(uModifiers));
243 (
LPBYTE)&hKL,
sizeof(hKL));
248 bRevertOnFailure =
FALSE;
255 if (bRevertOnFailure)
269 if (uVirtualKey == 0)
293 DWORD dwHotKeyId = 0;
294 UINT uModifiers = 0, uVirtualKey = 0;
319 DWORD dwIndex, cchKeyName;
323 L"Control Panel\\Input Method\\Hot Keys",
330 for (dwIndex = 0; dwIndex < 1000; ++dwIndex)
337 szKeyName[
_countof(szKeyName) - 1] = 0;
349 WCHAR szValueName[33], szValue[16];
351 DWORD dwKL, cbValue, dwType;
360 for (iNumber = 1; iNumber < 1000; ++iNumber)
362 _ultow(iNumber, szValueName, 10);
364 cbValue =
sizeof(szValue);
385 UINT uVirtualKey, uModifiers;
434 for (iIndex = 0; iIndex < nCount; ++iIndex)
531 if (vKey < 0 || vKey > 256)
578 lpString,
nSize,
".", &defChar);
632 RtlInitEmptyUnicodeString(&
Name,
676 wszKLID,
sizeof(wszKLID)/
sizeof(wszKLID[0])))
696#define ENGLISH_US MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US)
714 WCHAR wszRegKey[256] =
L"SYSTEM\\CurrentControlSet\\Control\\Keyboard Layouts\\";
739 dwSize =
sizeof(wszNewKLID);
745 pwszKLID = wszNewKLID;
761 dwSize =
sizeof(wszLayoutId);
772 dwSize =
sizeof(szImeFileName);
778 ERR(
"0x%X\n", dwKLID);
787 if (dwType !=
REG_SZ || szImeFileName[0] == 0 ||
803 ERR(
"Could not find keyboard layout %S.\n", pwszKLID);
913 if (!Scan)
return -1;
918 return ((Vk & 0xff00) << 8) | Scan;
976 CharCount = (Ret < 0 ? 1 : Ret);
994 return ToUnicodeEx(wVirtKey, wScanCode, lpKeyState, pwszBuff, cchBuff,
1089 Input.ki.dwExtraInfo = dwExtraInfo;
1115 Input.mi.dwExtraInfo = dwExtraInfo;
#define DECLSPEC_HOTPATCH
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define UlongToHandle(ul)
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
#define RegCloseKey(hKey)
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)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
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)
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
LONG WINAPI RegDeleteKeyW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
#define ERROR_INVALID_PARAMETER
#define HeapFree(x, y, z)
#define WideCharToMultiByte
#define MultiByteToWideChar
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
UINT WINAPI GetSystemDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
BOOL WINAPI IsDBCSLeadByte(BYTE testchar)
LCID WINAPI GetUserDefaultLCID(void)
UINT WINAPI GetOEMCP(void)
GLenum GLuint GLenum GLsizei const GLchar * buf
#define IME_JHOTKEY_CLOSE_OPEN
#define IME_THOTKEY_IME_NONIME_TOGGLE
#define MOD_IGNORE_ALL_MODIFIER
#define IME_CHOTKEY_IME_NONIME_TOGGLE
#define IME_KHOTKEY_SHAPE_TOGGLE
#define IME_HOTKEY_DSWITCH_LAST
#define IME_THOTKEY_SHAPE_TOGGLE
#define IME_HOTKEY_DSWITCH_FIRST
#define IME_CHOTKEY_SHAPE_TOGGLE
_Check_return_ unsigned long __cdecl wcstoul(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
_CRTIMP wchar_t *__cdecl _ultow(_In_ unsigned long _Value, _Pre_notnull_ _Post_z_ wchar_t *_Dest, _In_ int _Radix)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
SHORT NTAPI NtUserGetAsyncKeyState(INT Key)
BOOL NTAPI NtUserUnloadKeyboardLayout(HKL hKl)
DWORD NTAPI NtUserVkKeyScanEx(WCHAR wChar, HKL KeyboardLayout, BOOL bUsehHK)
UINT NTAPI NtUserGetKeyboardLayoutList(ULONG nItems, HKL *pHklBuff)
BOOL NTAPI NtUserSetImeHotKey(DWORD dwHotKeyId, UINT uModifiers, UINT uVirtualKey, HKL hKL, DWORD dwAction)
BOOL NTAPI NtUserSystemParametersInfo(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni)
DWORD NTAPI NtUserGetKeyNameText(LONG lParam, LPWSTR lpString, int nSize)
UINT NTAPI NtUserMapVirtualKeyEx(UINT keyCode, UINT transType, DWORD keyboardId, HKL dwhkl)
BOOL NTAPI NtUserGetImeHotKey(DWORD dwHotKeyId, LPUINT lpuModifiers, LPUINT lpuVirtualKey, LPHKL lphKL)
INT NTAPI NtUserToUnicodeEx(UINT wVirtKey, UINT wScanCode, PBYTE lpKeyState, LPWSTR pwszBuff, int cchBuff, UINT wFlags, HKL dwhkl)
BOOL NTAPI NtUserDragDetect(HWND hWnd, POINT pt)
BOOL NTAPI NtUserGetKeyboardLayoutName(_Inout_ PUNICODE_STRING pustrName)
SHORT NTAPI NtUserGetKeyState(INT VirtKey)
HKL NTAPI NtUserLoadKeyboardLayoutEx(IN HANDLE hFile, IN DWORD offTable, IN PVOID pTables, IN HKL hOldKL, IN PUNICODE_STRING puszKLID, IN DWORD dwNewKL, IN UINT Flags)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
static HANDLE ULONG_PTR dwData
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToInteger(PUNICODE_STRING String, ULONG Base, PULONG Value)
EXTINLINE BOOL NtUserxSwapMouseButton(BOOL fSwap)
EXTINLINE BOOL NtUserxEnableWindow(HWND hWnd, BOOL bEnable)
EXTINLINE INT NtUserxGetKeyboardType(INT nTypeFlag)
EXTINLINE HKL NtUserxGetKeyboardLayout(DWORD idThread)
static const WCHAR szName[]
_Check_return_ _CRTIMP size_t __cdecl wcsspn(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_Control)
_Check_return_ _CRTIMP size_t __cdecl wcscspn(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_Control)
#define SUBLANG_CHINESE_SINGAPORE
#define LANGIDFROMLCID(l)
#define SUBLANG_CHINESE_TRADITIONAL
#define SUBLANG_CHINESE_SIMPLIFIED
#define SUBLANG_CHINESE_HONGKONG
STRSAFEAPI StringCchPrintfW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat,...)
STRSAFEAPI StringCbCatW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
@ SETIMEHOTKEY_INITIALIZE
WORD WORD PSZ PSZ pszFileName
#define INVALID_FILE_ATTRIBUTES
_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
*nSize LPSTR _Inout_ LPDWORD nSize
_In_ DWORD _Out_ _In_ WORD wFlags
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define HKEY_LOCAL_MACHINE
#define HKEY_CURRENT_USER
HWND WINAPI SetCapture(_In_ HWND hWnd)
BOOL WINAPI GetKeyboardLayoutNameW(_Out_writes_(KL_NAMELENGTH) LPWSTR)
HKL WINAPI GetKeyboardLayout(_In_ DWORD)
void WINAPI mouse_event(_In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ ULONG_PTR)
BOOL WINAPI GetKeyboardLayoutNameA(_Out_writes_(KL_NAMELENGTH) LPSTR)
BOOL WINAPI ReleaseCapture(void)
UINT WINAPI MapVirtualKeyExA(_In_ UINT, _In_ UINT, _In_opt_ HKL)
int WINAPI GetKeyNameTextA(_In_ LONG lParam, _Out_writes_(cchSize) LPSTR lpString, _In_ int cchSize)
int WINAPI ToAscii(_In_ UINT, _In_ UINT, _In_reads_opt_(256) CONST BYTE *, _Out_ LPWORD, _In_ UINT)
int WINAPI ToUnicode(_In_ UINT wVirtKey, _In_ UINT wScanCode, _In_reads_bytes_opt_(256) CONST BYTE *lpKeyState, _Out_writes_(cchBuff) LPWSTR pwszBuff, _In_ int cchBuff, _In_ UINT wFlags)
BOOL WINAPI PtInRect(_In_ LPCRECT, _In_ POINT)
UINT WINAPI MapVirtualKeyW(_In_ UINT, _In_ UINT)
BOOL WINAPI PeekMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT, _In_ UINT)
int WINAPI GetKeyNameTextW(_In_ LONG lParam, _Out_writes_(cchSize) LPWSTR lpString, _In_ int cchSize)
BOOL WINAPI WaitMessage(void)
#define SPI_SETDOUBLECLICKTIME
#define KLF_SUBSTITUTE_OK
VOID WINAPI keybd_event(_In_ BYTE, _In_ BYTE, _In_ DWORD, _In_ ULONG_PTR)
BOOL WINAPI SystemParametersInfoW(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
int WINAPI ToUnicodeEx(_In_ UINT wVirtKey, _In_ UINT wScanCode, _In_reads_bytes_(256) CONST BYTE *lpKeyState, _Out_writes_(cchBuff) LPWSTR pwszBuff, _In_ int cchBuff, _In_ UINT wFlags, _In_opt_ HKL dwhkl)
SHORT WINAPI GetAsyncKeyState(_In_ int)
DWORD WINAPI OemKeyScan(_In_ WORD)
int WINAPI ToAsciiEx(_In_ UINT, _In_ UINT, _In_reads_opt_(256) CONST BYTE *, _Out_ LPWORD, _In_ UINT, _In_opt_ HKL)
SHORT WINAPI VkKeyScanW(_In_ WCHAR)
int WINAPI GetSystemMetrics(_In_ int)
UINT WINAPI GetKBCodePage(void)
SHORT WINAPI GetKeyState(_In_ int)
_Must_inspect_result_ _In_ ULONG Flags
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList