- Improve user api hook definitions. Add prototype of RegisterUserApiHook for xp
authorGiannis Adamopoulos <gadamopoulos@reactos.org>
Sat, 14 May 2011 18:17:58 +0000 (18:17 +0000)
committerGiannis Adamopoulos <gadamopoulos@reactos.org>
Sat, 14 May 2011 18:17:58 +0000 (18:17 +0000)
- Add some helper macros

svn path=/branches/GSoC_2011/ThemesSupport/; revision=51740

include/reactos/undocuser.h

index 22bd858..591c1f0 100644 (file)
@@ -116,24 +116,6 @@ HWND WINAPI GetProgmanWindow(VOID);
 // User api hook
 //
 
-typedef struct _USERAPIHOOKINFO
-{
-  DWORD m_size;
-  LPCWSTR m_dllname1;
-  LPCWSTR m_funname1;
-  LPCWSTR m_dllname2;
-  LPCWSTR m_funname2;
-} USERAPIHOOKINFO,*PUSERAPIHOOKINFO;
-
-typedef enum _UAPIHK
-{
-  uahLoadInit,
-  uahStop,
-  uahShutdown
-} UAPIHK, *PUAPIHK;
-
-typedef DWORD (CALLBACK * USERAPIHOOKPROC)(UAPIHK State, ULONG_PTR Info);
-
 typedef LRESULT(CALLBACK *WNDPROC_OWP)(HWND,UINT,WPARAM,LPARAM,ULONG_PTR,PDWORD);
 
 typedef struct _UAHOWP
@@ -142,34 +124,61 @@ typedef struct _UAHOWP
   DWORD  Size;
 } UAHOWP, *PUAHOWP;
 
+#define UAH_HOOK_MESSAGE(uahowp, msg) uahowp.MsgBitArray[msg/8] |= (1 << (msg % 8));
+#define UAH_IS_MESSAGE_HOOKED(uahowp, msg) (uahowp.MsgBitArray[msg/8] & (1 << (msg % 8)))
+#define UAHOWP_MAX_SIZE WM_USER/8
+
 typedef struct tagUSERAPIHOOK
 {
-  DWORD   size;
-  WNDPROC DefWindowProcA;
-  WNDPROC DefWindowProcW;
-  UAHOWP  DefWndProcArray;
-  FARPROC GetScrollInfo;
-  FARPROC SetScrollInfo;
-  FARPROC EnableScrollBar;
-  FARPROC AdjustWindowRectEx;
-  FARPROC SetWindowRgn;
+  DWORD       size;
+  WNDPROC     DefWindowProcA;
+  WNDPROC     DefWindowProcW;
+  UAHOWP      DefWndProcArray;
+  FARPROC     GetScrollInfo;
+  FARPROC     SetScrollInfo;
+  FARPROC     EnableScrollBar;
+  FARPROC     AdjustWindowRectEx;
+  FARPROC     SetWindowRgn;
   WNDPROC_OWP PreWndProc;
   WNDPROC_OWP PostWndProc;
-  UAHOWP  WndProcArray;
+  UAHOWP      WndProcArray;
   WNDPROC_OWP PreDefDlgProc;
   WNDPROC_OWP PostDefDlgProc;
-  UAHOWP  DlgProcArray;
-  FARPROC GetSystemMetrics;
-  FARPROC SystemParametersInfoA;
-  FARPROC SystemParametersInfoW;
-  FARPROC ForceResetUserApiHook;
-  FARPROC DrawFrameControl;
-  FARPROC DrawCaption;
-  FARPROC MDIRedrawFrame;
-  FARPROC GetRealWindowOwner;
+  UAHOWP      DlgProcArray;
+  FARPROC     GetSystemMetrics;
+  FARPROC     SystemParametersInfoA;
+  FARPROC     SystemParametersInfoW;
+  FARPROC     ForceResetUserApiHook;
+  FARPROC     DrawFrameControl;
+  FARPROC     DrawCaption;
+  FARPROC     MDIRedrawFrame;
+  FARPROC     GetRealWindowOwner;
 } USERAPIHOOK, *PUSERAPIHOOK;
 
+typedef enum _UAPIHK
+{
+  uahLoadInit,
+  uahStop,
+  uahShutdown
+} UAPIHK, *PUAPIHK;
+
+typedef BOOL(CALLBACK *USERAPIHOOKPROC)(UAPIHK State, PUSERAPIHOOK puah);
+
+typedef struct _USERAPIHOOKINFO
+{
+  DWORD m_size;
+  LPCWSTR m_dllname1;
+  LPCWSTR m_funname1;
+  LPCWSTR m_dllname2;
+  LPCWSTR m_funname2;
+} USERAPIHOOKINFO,*PUSERAPIHOOKINFO;
+
+#if (WINVER == _WIN32_WINNT_WINXP)
+BOOL WINAPI RegisterUserApiHook(HINSTANCE hInstance, USERAPIHOOKPROC CallbackFunc);
+#elif (WINVER == _WIN32_WINNT_WS03)
 BOOL WINAPI RegisterUserApiHook(PUSERAPIHOOKINFO puah);
+#endif
+
 BOOL WINAPI UnregisterUserApiHook(VOID);
 
 #endif