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)
98 DWORD dwValue, cbValue;
101 cbValue =
sizeof(dwValue);
132#define MOD_ALL_MODS (MOD_ALT | MOD_CONTROL | MOD_SHIFT | MOD_WIN)
148 DWORD cbValue, dwType;
155 L"Keyboard Layout\\Preload",
161 for (nNumber = 1; nNumber <= 1000; ++nNumber)
163 _ultow(nNumber, szNumber, 10);
165 cbValue =
sizeof(szValue);
215 L"Control Panel\\Input Method\\Hot Keys\\%08lX", dwID);
226 bRevertOnFailure =
TRUE;
230 (
LPBYTE)&uVirtualKey,
sizeof(uVirtualKey));
235 (
LPBYTE)&uModifiers,
sizeof(uModifiers));
240 (
LPBYTE)&hKL,
sizeof(hKL));
245 bRevertOnFailure =
FALSE;
252 if (bRevertOnFailure)
273 if (uVirtualKey == 0)
297 DWORD dwHotKeyId = 0;
298 UINT uModifiers = 0, uVirtualKey = 0;
323 DWORD dwIndex, cchKeyName;
327 L"Control Panel\\Input Method\\Hot Keys",
334 for (dwIndex = 0; dwIndex < 1000; ++dwIndex)
341 szKeyName[
_countof(szKeyName) - 1] = 0;
353 WCHAR szValueName[33], szValue[16];
355 DWORD dwKL, cbValue, dwType;
364 for (iNumber = 1; iNumber < 1000; ++iNumber)
366 _ultow(iNumber, szValueName, 10);
368 cbValue =
sizeof(szValue);
389 UINT uVirtualKey, uModifiers;
438 for (iIndex = 0; iIndex < nCount; ++iIndex)
535 if (vKey < 0 || vKey > 256)
582 lpString,
nSize,
".", &defChar);
636 RtlInitEmptyUnicodeString(&
Name,
680 wszKLID,
sizeof(wszKLID)/
sizeof(wszKLID[0])))
700#define ENGLISH_US MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US)
718 WCHAR wszRegKey[256] =
L"SYSTEM\\CurrentControlSet\\Control\\Keyboard Layouts\\";
743 dwSize =
sizeof(wszNewKLID);
749 pwszKLID = wszNewKLID;
765 dwSize =
sizeof(wszLayoutId);
776 dwSize =
sizeof(szImeFileName);
782 ERR(
"0x%X\n", dwKLID);
791 if (dwType !=
REG_SZ || szImeFileName[0] == 0 ||
807 ERR(
"Could not find keyboard layout %S.\n", pwszKLID);
917 if (!Scan)
return -1;
922 return ((Vk & 0xff00) << 8) | Scan;
980 CharCount = (Ret < 0 ? 1 : Ret);
998 return ToUnicodeEx(wVirtKey, wScanCode, lpKeyState, pwszBuff, cchBuff,
1093 Input.ki.dwExtraInfo = dwExtraInfo;
1119 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)
_ACRTIMP __msvcrt_ulong __cdecl wcstoul(const wchar_t *, wchar_t **, int)
_ACRTIMP wchar_t *__cdecl _ultow(__msvcrt_ulong, wchar_t *, int)
_ACRTIMP size_t __cdecl wcsspn(const wchar_t *, const wchar_t *)
_ACRTIMP size_t __cdecl wcslen(const wchar_t *)
_ACRTIMP size_t __cdecl wcscspn(const wchar_t *, const wchar_t *)
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
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 NtUserSystemParametersInfo(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni)
DWORD NTAPI NtUserGetKeyNameText(LONG lParam, LPWSTR lpString, int nSize)
BOOL NTAPI NtUserSetImeHotKey(_In_ DWORD dwHotKeyId, _In_ UINT uModifiers, _In_ UINT uVirtualKey, _In_opt_ HKL hKL, _In_ DWORD dwAction)
UINT NTAPI NtUserMapVirtualKeyEx(UINT keyCode, UINT transType, DWORD keyboardId, HKL dwhkl)
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)
BOOL NTAPI NtUserGetImeHotKey(_In_ DWORD dwHotKeyId, _Out_ PUINT lpuModifiers, _Out_ PUINT lpuVirtualKey, _Out_opt_ LPHKL lphKL)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
static HANDLE ULONG_PTR dwData
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
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[]
_In_opt_ LPCSTR pszSubKey
#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
WINBASEAPI _In_ DWORD _Out_ _In_ WORD wFlags
#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