55 TRACE(
"Start up the debugger hotkeys!! If you see this you enabled debugprints. Congrats!\n");
98 phkNext = pHotKey->
pNext;
101 if (pHotKey->
pWnd == pWnd)
108 pLink = &pHotKey->
pNext;
128 phkNext = pHotKey->
pNext;
131 if (pHotKey->
pti == pti)
138 pLink = &pHotKey->
pNext;
165 pHotKey = pHotKey->
pNext;
205 pHotKey =
IsHotKey(fModifiers, wVk);
227 TRACE(
"Hot key pressed (pWnd %p, id %d)\n", pHotKey->
pWnd, pHotKey->
id);
247 TRACE(
"System Hot key Id %d Key %u\n", pHotKey->
id, wVk );
269 TRACE(
"UPTM Hot key Id %d Key %u\n", pHotKey->
id, wVk );
276 pWnd = pHotKey->
pWnd;
295 TRACE(
"UPM Hot key Id %d Key %u\n", pHotKey->
id, wVk );
317 WARN(
"DefWndGetHotKey\n");
328 pHotKey = pHotKey->
pNext;
346 WARN(
"DefWndSetHotKey wParam 0x%x\n",
wParam);
372 if (pHotKey->
pWnd != pWnd)
378 pHotKey = pHotKey->
pNext;
386 if (pHotKey->
pWnd == pWnd &&
394 pLink = &pHotKey->
pNext;
395 pHotKey = pHotKey->
pNext;
407 pHotKey->
pWnd = pWnd;
422 *pLink = pHotKey->
pNext;
446 pHotKeyThread = pWnd->
head.pti;
453 WARN(
"Hotkey already exists\n");
465 pHotKey->
pti = pHotKeyThread;
466 pHotKey->
pWnd = pWnd;
487 phkNext = pHotKey->
pNext;
490 if (pHotKey->
pWnd == pWnd && pHotKey->
id ==
id)
499 pLink = &pHotKey->
pNext;
522 TRACE(
"Enter NtUserRegisterHotKey\n");
526 WARN(
"Invalid modifiers: %x\n", fsModifiers);
544 pHotKeyThread = pWnd->
head.pti;
550 WARN(
"Must be from the same Thread.\n");
559 WARN(
"Hotkey already exists\n");
571 pHotKey->
pti = pHotKeyThread;
572 pHotKey->
pWnd = pWnd;
584 TRACE(
"Leave NtUserRegisterHotKey, ret=%i\n", bRet);
597 TRACE(
"Enter NtUserUnregisterHotKey\n");
607 phkNext = pHotKey->
pNext;
610 if (pHotKey->
pWnd == pWnd && pHotKey->
id ==
id)
619 pLink = &pHotKey->
pNext;
626 TRACE(
"Leave NtUserUnregisterHotKey, ret=%i\n", bRet);
#define DBG_DEFAULT_CHANNEL(ch)
#define ERROR_NOT_ENOUGH_MEMORY
#define ValidateHwndNoErr(hwnd)
static void cleanup(void)
#define ExAllocatePoolWithTag(hernya, size, tag)
PUSER_MESSAGE_QUEUE gpqForeground
HWND FASTCALL UserGetForegroundWindow(VOID)
#define UserHMGetHandle(obj)
#define ExFreePoolWithTag(_P, _T)
#define ENHANCED_KEYBOARD(Id)
PVOID NTAPI PsGetCurrentThreadWin32Thread(VOID)
PWINSTATION_OBJECT InputWindowStation
VOID FASTCALL UserLeave(VOID)
VOID FASTCALL UserEnterExclusive(VOID)
KEYBOARD_ID KeyboardIdentifier
PWND FASTCALL UserGetWindowObject(HWND hWnd)
VOID co_IntShellHookNotify(WPARAM Message, WPARAM wParam, LPARAM lParam)
BOOL APIENTRY NtUserUnregisterHotKey(HWND hWnd, int id)
BOOL FASTCALL UserRegisterHotKey(PWND pWnd, int id, UINT fsModifiers, UINT vk)
static PHOT_KEY FASTCALL IsHotKey(UINT fsModifiers, WORD wVk)
BOOL NTAPI co_UserProcessHotKeys(WORD wVk, BOOL bIsDown)
BOOL APIENTRY NtUserRegisterHotKey(HWND hWnd, int id, UINT fsModifiers, UINT vk)
VOID FASTCALL StartDebugHotKeys(VOID)
UINT FASTCALL DefWndGetHotKey(PWND pWnd)
VOID FASTCALL UnregisterThreadHotKeys(PTHREADINFO pti)
static UINT FASTCALL IntGetModifiers(PBYTE pKeyState)
VOID FASTCALL UnregisterWindowHotKeys(PWND pWnd)
INT FASTCALL DefWndSetHotKey(PWND pWnd, WPARAM wParam)
BOOL FASTCALL UserUnregisterHotKey(PWND pWnd, int id)
BOOL FASTCALL UserPostMessage(HWND Wnd, UINT Msg, WPARAM wParam, LPARAM lParam)
BOOL FASTCALL UserPostThreadMessage(PTHREADINFO pti, UINT Msg, WPARAM wParam, LPARAM lParam)
ENGAPI VOID APIENTRY EngSetLastError(_In_ ULONG iError)
#define ERROR_WINDOW_OF_OTHER_THREAD
#define ERROR_HOTKEY_ALREADY_REGISTERED
#define ERROR_INVALID_FLAGS