/* SEH Support with PSEH */
#include <pseh/pseh2.h>
+#define HOOKID_TO_FLAG(HookId) (1 << ((HookId) + 1))
+#define ISITHOOKED(HookId) (GetWin32ClientInfo()->fsHooks & HOOKID_TO_FLAG(HookId))
+
/* Temporarily in here for now. */
typedef struct _USERAPIHOOKINFO
{
typedef struct _USER32_THREAD_DATA
{
MSG LastMessage;
- HKL KeyboardLayoutHandle;
USER32_TRACKINGLIST tracking_info; /* TrackMouseEvent stuff */
} USER32_THREAD_DATA, *PUSER32_THREAD_DATA;
DeleteObject(DesktopRgn);
}
}
-//#if 0
-// if (ISITHOOKED(WH_CBT))
+
+ if (ISITHOOKED(WH_CBT))
{
LRESULT lResult;
NtUserMessageCall( hwnd, WM_CBT, HCBT_MOVESIZE, (LPARAM)&sizingRect, (ULONG_PTR)&lResult, FNID_DEFWINDOWPROC, FALSE);
if (lResult) moved = FALSE;
}
-//#endif
+
(void)NtUserSetGUIThreadHandle(MSQ_STATE_MOVESIZE, NULL);
SendMessageA( hwnd, WM_EXITSIZEMOVE, 0, 0 );
SendMessageA( hwnd, WM_SETVISIBLE, !IsIconic(hwnd), 0L);
if (!IsWindowEnabled( hWnd )) return 0;
-//#if 0
-// if (ISITHOOKED(WH_CBT))
+ if (ISITHOOKED(WH_CBT))
{
LRESULT lResult;
NtUserMessageCall( hWnd, WM_SYSCOMMAND, wParam, lParam, (ULONG_PTR)&lResult, FNID_DEFWINDOWPROC, FALSE);
if (lResult) return 0;
}
-//#endif
+
switch (wParam & 0xfff0)
{
case SC_MOVE:
pci->pClientThreadInfo = NULL; // FIXME Need to set it in desktop.c!
pci->ppi = ppi;
pci->fsHooks = pti->fsHooks;
+ pci->hKL = pti->KeyboardLayout->hkl;
/* CI may not have been initialized. */
if (!pci->pDeskInfo && pti->pDeskInfo)
{