[USER32] ForceResetUserApiHook is WINAPI, not FASTCALL. CORE-14450
[reactos.git] / win32ss / user / user32 / misc / usrapihk.c
index 8ed33e8..c2e91d5 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS user32.dll
- * FILE:            dll/win32/user32/misc/usrapihk.c
+ * FILE:            win32ss/user/user32/misc/usrapihk.c
  * PURPOSE:         User32.dll User32 Api Hook interface and support functions
  * PROGRAMMER:
  *
@@ -11,9 +11,8 @@
  *   http://www.reactos.org/wiki/RegisterUserApiHook
  *
  */
-#include <user32.h>
 
-#include <wine/debug.h>
+#include <user32.h>
 
 WINE_DEFAULT_DEBUG_CHANNEL(user32);
 
@@ -28,12 +27,13 @@ INT WINAPI RealSetScrollInfo(HWND,int,LPCSCROLLINFO,BOOL);
 BOOL WINAPI RealSystemParametersInfoA(UINT,UINT,PVOID,UINT);
 BOOL WINAPI RealSystemParametersInfoW(UINT,UINT,PVOID,UINT);
 DWORD WINAPI GetRealWindowOwner(HWND);
+BOOL WINAPI RealUserDrawCaption(HWND hWnd, HDC hDC, LPCRECT lpRc, UINT uFlags);
 
 /* GLOBALS *******************************************************************/
 
 DWORD gcLoadUserApiHook = 0;
 LONG gcCallUserApiHook = 0;
-DWORD gfUserApiHook;
+DWORD gfUserApiHook = 0;
 HINSTANCE ghmodUserApiHook = NULL;
 USERAPIHOOKPROC gpfnInitUserApi;
 RTL_CRITICAL_SECTION gcsUserApiHook;
@@ -113,7 +113,7 @@ BeginIfHookedUserApiHook(VOID)
 }
 
 BOOL
-FASTCALL
+WINAPI
 ForceResetUserApiHook(HINSTANCE hInstance)
 {
   if ( ghmodUserApiHook == hInstance &&
@@ -132,31 +132,31 @@ ResetUserApiHook(PUSERAPIHOOK puah)
 {
   // Setup Structure.....
   puah->size = sizeof(USERAPIHOOK);
-  puah->DefWindowProcA = (WNDPROC)RealDefWindowProcA;
-  puah->DefWindowProcW = (WNDPROC)RealDefWindowProcW;
+  puah->DefWindowProcA = RealDefWindowProcA;
+  puah->DefWindowProcW = RealDefWindowProcW;
   puah->DefWndProcArray.MsgBitArray = NULL;
   puah->DefWndProcArray.Size = 0;
-  puah->GetScrollInfo = (FARPROC)RealGetScrollInfo;
-  puah->SetScrollInfo = (FARPROC)RealSetScrollInfo;
-  puah->EnableScrollBar = (FARPROC)NtUserEnableScrollBar;
-  puah->AdjustWindowRectEx = (FARPROC)RealAdjustWindowRectEx;
-  puah->SetWindowRgn = (FARPROC)NtUserSetWindowRgn;
-  puah->PreWndProc = (WNDPROC_OWP)DefaultOWP;
-  puah->PostWndProc = (WNDPROC_OWP)DefaultOWP;
+  puah->GetScrollInfo = RealGetScrollInfo;
+  puah->SetScrollInfo = RealSetScrollInfo;
+  puah->EnableScrollBar = NtUserEnableScrollBar;
+  puah->AdjustWindowRectEx = RealAdjustWindowRectEx;
+  puah->SetWindowRgn = NtUserSetWindowRgn;
+  puah->PreWndProc = DefaultOWP;
+  puah->PostWndProc = DefaultOWP;
   puah->WndProcArray.MsgBitArray = NULL;
   puah->WndProcArray.Size = 0;
-  puah->PreDefDlgProc = (WNDPROC_OWP)DefaultOWP;
-  puah->PostDefDlgProc = (WNDPROC_OWP)DefaultOWP;
+  puah->PreDefDlgProc = DefaultOWP;
+  puah->PostDefDlgProc = DefaultOWP;
   puah->DlgProcArray.MsgBitArray = NULL;
   puah->DlgProcArray.Size = 0;
-  puah->GetSystemMetrics = (FARPROC)RealGetSystemMetrics;
-  puah->SystemParametersInfoA = (FARPROC)RealSystemParametersInfoA;
-  puah->SystemParametersInfoW = (FARPROC)RealSystemParametersInfoW;
-  puah->ForceResetUserApiHook = (FARPROC)ForceResetUserApiHook;
-  puah->DrawFrameControl = (FARPROC)RealDrawFrameControl;
-  puah->DrawCaption = (FARPROC)NtUserDrawCaption;
-  puah->MDIRedrawFrame = (FARPROC)RealMDIRedrawFrame;
-  puah->GetRealWindowOwner = (FARPROC)GetRealWindowOwner;
+  puah->GetSystemMetrics = RealGetSystemMetrics;
+  puah->SystemParametersInfoA = RealSystemParametersInfoA;
+  puah->SystemParametersInfoW = RealSystemParametersInfoW;
+  puah->ForceResetUserApiHook = ForceResetUserApiHook;
+  puah->DrawFrameControl = RealDrawFrameControl;
+  puah->DrawCaption = RealUserDrawCaption;
+  puah->MDIRedrawFrame = RealMDIRedrawFrame;
+  puah->GetRealWindowOwner = GetRealWindowOwner;
 }
 
 BOOL
@@ -261,7 +261,7 @@ InitUserApiHook(HINSTANCE hInstance, USERAPIHOOKPROC pfn)
   RtlEnterCriticalSection(&gcsUserApiHook);
 
   if (!pfn(uahLoadInit,&uah) ||  // Swap data, User32 to and Uxtheme from!
-       uah.ForceResetUserApiHook != (FARPROC)ForceResetUserApiHook ||
+       uah.ForceResetUserApiHook != ForceResetUserApiHook ||
        uah.size <= 0 )
   {
      RtlLeaveCriticalSection(&gcsUserApiHook);
@@ -332,6 +332,7 @@ MDIRedrawFrame(HWND hWnd, DWORD flags)
    }
    _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
    {
+       ERR("Got exception in hooked MDIRedrawFrame!\n");
    }
    _SEH2_END;
 
@@ -343,28 +344,28 @@ MDIRedrawFrame(HWND hWnd, DWORD flags)
 USERAPIHOOK guah =
 {
   sizeof(USERAPIHOOK),
-  (WNDPROC)RealDefWindowProcA,
-  (WNDPROC)RealDefWindowProcW,
+  RealDefWindowProcA,
+  RealDefWindowProcW,
   {NULL, 0},
-  (FARPROC)RealGetScrollInfo,
-  (FARPROC)RealSetScrollInfo,
-  (FARPROC)NtUserEnableScrollBar,
-  (FARPROC)RealAdjustWindowRectEx,
-  (FARPROC)NtUserSetWindowRgn,
-  (WNDPROC_OWP)DefaultOWP,
-  (WNDPROC_OWP)DefaultOWP,
+  RealGetScrollInfo,
+  RealSetScrollInfo,
+  NtUserEnableScrollBar,
+  RealAdjustWindowRectEx,
+  NtUserSetWindowRgn,
+  DefaultOWP,
+  DefaultOWP,
   {NULL, 0},
-  (WNDPROC_OWP)DefaultOWP,
-  (WNDPROC_OWP)DefaultOWP,
+  DefaultOWP,
+  DefaultOWP,
   {NULL, 0},
-  (FARPROC)RealGetSystemMetrics,
-  (FARPROC)RealSystemParametersInfoA,
-  (FARPROC)RealSystemParametersInfoW,
-  (FARPROC)ForceResetUserApiHook,
-  (FARPROC)RealDrawFrameControl,
-  (FARPROC)NtUserDrawCaption,
-  (FARPROC)RealMDIRedrawFrame,
-  (FARPROC)GetRealWindowOwner,
+  RealGetSystemMetrics,
+  RealSystemParametersInfoA,
+  RealSystemParametersInfoW,
+  ForceResetUserApiHook,
+  RealDrawFrameControl,
+  NtUserDrawCaption,
+  RealMDIRedrawFrame,
+  GetRealWindowOwner,
 };
 
 /* FUNCTIONS *****************************************************************/