return ((LRESULT)LoadIconW(0, IDI_APPLICATION));
}
- /* FIXME: WM_ISACTIVEICON */
+ case WM_ISACTIVEICON:
+ {
+ PWND pWnd;
+ BOOL isai;
+ pWnd = ValidateHwnd(hWnd);
+ if (!pWnd) return 0;
+ isai = (pWnd->state & WNDS_ACTIVEFRAME) != 0;
+ return isai;
+ }
case WM_NOTIFYFORMAT:
{
/* Pack the information and call win32k */
if (Change)
{
- if (!NtUserCallTwoParam((DWORD)hWnd, (DWORD)Flags | ((DWORD)Action << 3), TWOPARAM_ROUTINE_ROS_UPDATEUISTATE))
+ if (!NtUserCallTwoParam((DWORD_PTR)hWnd, (DWORD_PTR)Flags | ((DWORD_PTR)Action << 3), TWOPARAM_ROUTINE_ROS_UPDATEUISTATE))
break;
}
LRESULT WINAPI
-DefWindowProcA(HWND hWnd,
- UINT Msg,
- WPARAM wParam,
- LPARAM lParam)
+RealDefWindowProcA(HWND hWnd,
+ UINT Msg,
+ WPARAM wParam,
+ LPARAM lParam)
{
LRESULT Result = 0;
PWND Wnd;
LRESULT WINAPI
-DefWindowProcW(HWND hWnd,
- UINT Msg,
- WPARAM wParam,
- LPARAM lParam)
+RealDefWindowProcW(HWND hWnd,
+ UINT Msg,
+ WPARAM wParam,
+ LPARAM lParam)
{
LRESULT Result = 0;
PWND Wnd;
return Result;
}
+LRESULT WINAPI
+DefWindowProcA(HWND hWnd,
+ UINT Msg,
+ WPARAM wParam,
+ LPARAM lParam)
+{
+ BOOL Hook, msgOverride = FALSE;
+ LRESULT Result = 0;
+
+ LOADUSERAPIHOOK
+
+ Hook = BeginIfHookedUserApiHook();
+ if (Hook)
+ msgOverride = IsMsgOverride(Msg, &guah.DefWndProcArray);
+
+ /* Bypass SEH and go direct. */
+ if (!Hook || !msgOverride)
+ return RealDefWindowProcA(hWnd, Msg, wParam, lParam);
+
+ _SEH2_TRY
+ {
+ Result = guah.DefWindowProcA(hWnd, Msg, wParam, lParam);
+ }
+ _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
+ {
+ }
+ _SEH2_END;
+
+ EndUserApiHook();
+
+ return Result;
+}
+
+LRESULT WINAPI
+DefWindowProcW(HWND hWnd,
+ UINT Msg,
+ WPARAM wParam,
+ LPARAM lParam)
+{
+ BOOL Hook, msgOverride = FALSE;
+ LRESULT Result = 0;
+
+ LOADUSERAPIHOOK
+
+ Hook = BeginIfHookedUserApiHook();
+ if (Hook)
+ msgOverride = IsMsgOverride(Msg, &guah.DefWndProcArray);
+
+ /* Bypass SEH and go direct. */
+ if (!Hook || !msgOverride)
+ return RealDefWindowProcW(hWnd, Msg, wParam, lParam);
+
+ _SEH2_TRY
+ {
+ Result = guah.DefWindowProcW(hWnd, Msg, wParam, lParam);
+ }
+ _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
+ {
+ }
+ _SEH2_END;
+
+ EndUserApiHook();
+
+ return Result;
+}