112 if (vKey < 0 || vKey > 256)
159 lpString,
nSize,
".", &defChar);
251 wszKLID,
sizeof(wszKLID)/
sizeof(wszKLID[0])))
269 WCHAR wszRegKey[256] =
L"SYSTEM\\CurrentControlSet\\Control\\Keyboard Layouts\\";
270 WCHAR wszLayoutId[10], wszNewKLID[10];
282 dwSize =
sizeof(wszNewKLID);
286 pwszKLID = wszNewKLID;
301 dwSize =
sizeof(wszLayoutId);
310 dwhkl |= (0xf000 |
wcstol(wszLayoutId,
NULL, 16)) << 16;
318 ERR(
"Could not find keyboard layout %S.\n", pwszKLID);
324 dwhkl |= dwhkl << 16;
326 ZeroMemory(&ustrKbdName,
sizeof(ustrKbdName));
391 if (!Scan)
return -1;
396 return ((Vk & 0xff00) << 8) | Scan;
454 CharCount = (Ret < 0 ? 1 : Ret);
472 return ToUnicodeEx(wVirtKey, wScanCode, lpKeyState, pwszBuff, cchBuff,
567 Input.ki.dwExtraInfo = dwExtraInfo;
593 Input.mi.dwExtraInfo = dwExtraInfo;
#define ERROR_INVALID_PARAMETER
#define WideCharToMultiByte
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList
#define HKEY_CURRENT_USER
BOOL WINAPI WaitMessage(void)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
*nSize LPSTR _Inout_ LPDWORD nSize
static HANDLE ULONG_PTR dwData
_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)
STRSAFEAPI StringCbCatW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)
GLenum GLuint GLenum GLsizei const GLchar * buf
LONG WINAPI RegCloseKey(HKEY hKey)
EXTINLINE BOOL NtUserxEnableWindow(HWND hWnd, BOOL bEnable)
EXTINLINE HKL NtUserxGetKeyboardLayout(DWORD idThread)
SHORT NTAPI NtUserGetKeyState(INT VirtKey)
EXTINLINE INT NtUserxGetKeyboardType(INT nTypeFlag)
BOOL WINAPI IsDBCSLeadByte(BYTE TestByte)
#define KLF_SUBSTITUTE_OK
#define DECLSPEC_HOTPATCH
_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)
int WINAPI GetSystemMetrics(_In_ int)
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
BOOL NTAPI NtUserGetKeyboardLayoutName(LPWSTR lpszName)
#define SPI_SETDOUBLECLICKTIME
_In_ DWORD _Out_ _In_ WORD wFlags
HWND WINAPI SetCapture(_In_ HWND hWnd)
BOOL NTAPI NtUserSystemParametersInfo(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni)
EXTINLINE BOOL NtUserxSwapMouseButton(BOOL fSwap)
SHORT NTAPI NtUserGetAsyncKeyState(INT Key)
#define MultiByteToWideChar
BOOL WINAPI PtInRect(_In_ LPCRECT, _In_ POINT)
BOOL WINAPI ReleaseCapture(void)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
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)
BOOL WINAPI PeekMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT, _In_ UINT)
#define HeapFree(x, y, z)
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)