/*
* 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:
*
* http://www.reactos.org/wiki/RegisterUserApiHook
*
*/
-#include <user32.h>
-#include <wine/debug.h>
+#include <user32.h>
WINE_DEFAULT_DEBUG_CHANNEL(user32);
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;
}
BOOL
-FASTCALL
+WINAPI
ForceResetUserApiHook(HINSTANCE hInstance)
{
if ( ghmodUserApiHook == hInstance &&
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->GetScrollInfo = RealGetScrollInfo;
+ puah->SetScrollInfo = RealSetScrollInfo;
+ puah->EnableScrollBar = NtUserEnableScrollBar;
+ puah->AdjustWindowRectEx = RealAdjustWindowRectEx;
puah->SetWindowRgn = NtUserSetWindowRgn;
puah->PreWndProc = DefaultOWP;
puah->PostWndProc = 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
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);
}
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
+ ERR("Got exception in hooked MDIRedrawFrame!\n");
}
_SEH2_END;
RealDefWindowProcA,
RealDefWindowProcW,
{NULL, 0},
- (FARPROC)RealGetScrollInfo,
- (FARPROC)RealSetScrollInfo,
- (FARPROC)NtUserEnableScrollBar,
- (FARPROC)RealAdjustWindowRectEx,
+ RealGetScrollInfo,
+ RealSetScrollInfo,
+ NtUserEnableScrollBar,
+ RealAdjustWindowRectEx,
NtUserSetWindowRgn,
DefaultOWP,
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 *****************************************************************/