[ros-diffs] [jimtabor] 41905: - Start initializing client pfn arrays so that they can be loaded into the server information structure and help register class atoms in win32k.

jimtabor at svn.reactos.org jimtabor at svn.reactos.org
Sun Jul 12 04:09:51 CEST 2009


Author: jimtabor
Date: Sun Jul 12 06:09:49 2009
New Revision: 41905

URL: http://svn.reactos.org/svn/reactos?rev=41905&view=rev
Log:
- Start initializing client pfn arrays so that they can be loaded into the server information structure and help register class atoms in win32k.

Modified:
    trunk/reactos/dll/win32/user32/controls/regcontrol.c
    trunk/reactos/include/reactos/win32k/ntuser.h

Modified: trunk/reactos/dll/win32/user32/controls/regcontrol.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/controls/regcontrol.c?rev=41905&r1=41904&r2=41905&view=diff
==============================================================================
--- trunk/reactos/dll/win32/user32/controls/regcontrol.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/user32/controls/regcontrol.c [iso-8859-1] Sun Jul 12 06:09:49 2009
@@ -61,3 +61,81 @@
 
     return NtUserRegisterSystemClasses(sizeof(cls) / sizeof(cls[0]), cls);
 }
+
+
+#if 0
+static PFNCLIENT pfnClientA;
+static PFNCLIENT pfnClientW;
+static PFNCLIENTWORKER pfnClientWorker;
+
+BOOL WINAPI RegisterClientPFN(VOID)
+{
+  NTSTATUS Status;
+
+  pfnClientA.pfnScrollBarWndProc      = ScrollBarWndProcA;
+  pfnClientW.pfnScrollBarWndProc      = ScrollBarWndProcW;
+  pfnClientA.pfnTitleWndProc          = IconTitleWndProc;
+  pfnClientW.pfnTitleWndProc          = IconTitleWndProc;
+  pfnClientA.pfnMenuWndProc           = PopupMenuWndProcA;
+  pfnClientW.pfnMenuWndProc           = PopupMenuWndProcW;
+  pfnClientA.pfnDesktopWndProc        = DesktopWndProc; // Fixme!
+  pfnClientW.pfnDesktopWndProc        = DesktopWndProc;
+  pfnClientA.pfnDefWindowProc         = DefWindowProcA;
+  pfnClientW.pfnDefWindowProc         = DefWindowProcW;
+  pfnClientA.pfnMessageWindowProc     = DefWindowProcA;
+  pfnClientW.pfnMessageWindowProc     = DefWindowProcW;
+  pfnClientA.pfnSwitchWindowProc      = DefWindowProcA;
+  pfnClientW.pfnSwitchWindowProc      = DefWindowProcW;
+  pfnClientA.pfnButtonWndProc         = ButtonWndProcA;
+  pfnClientW.pfnButtonWndProc         = ButtonWndProcW
+  pfnClientA.pfnComboBoxWndProc       = ComboWndProcA;
+  pfnClientW.pfnComboBoxWndProc       = ComboWndProcW;
+  pfnClientA.pfnComboListBoxProc      = ListBoxWndProcA;
+  pfnClientW.pfnComboListBoxProc      = ListBoxWndProcW;
+  pfnClientA.pfnDialogWndProc         = DefDlgProcA;
+  pfnClientW.pfnDialogWndProc         = DefDlgProcW;
+  pfnClientA.pfnEditWndProc           = EditWndProcA;
+  pfnClientW.pfnEditWndProc           = EditWndProcW;
+  pfnClientA.pfnListBoxWndProc        = ListBoxWndProcA;
+  pfnClientW.pfnListBoxWndProc        = ListBoxWndProcW;
+  pfnClientA.pfnMDIClientWndProc      = MDIClientWndProcA;
+  pfnClientW.pfnMDIClientWndProc      = MDIClientWndProcW;
+  pfnClientA.pfnStaticWndProc         = StaticWndProcA;
+  pfnClientW.pfnStaticWndProc         = StaticWndProcW;
+  pfnClientA.pfnImeWndProc            = DefWindowProcA;
+  pfnClientW.pfnImeWndProc            = DefWindowProcW;
+  pfnClientA.pfnGhostWndProc          = DefWindowProcA;
+  pfnClientW.pfnGhostWndProc          = DefWindowProcW;
+  pfnClientA.pfnHkINLPCWPSTRUCT       = DefWindowProcA;
+  pfnClientW.pfnHkINLPCWPSTRUCT       = DefWindowProcW;
+  pfnClientA.pfnHkINLPCWPRETSTRUCT    = DefWindowProcA;
+  pfnClientW.pfnHkINLPCWPRETSTRUCT    = DefWindowProcW;
+  pfnClientA.pfnDispatchHook          = DefWindowProcA;
+  pfnClientW.pfnDispatchHook          = DefWindowProcW;
+  pfnClientA.pfnDispatchDefWindowProc = DefWindowProcA;
+  pfnClientW.pfnDispatchDefWindowProc = DefWindowProcW;
+  pfnClientA.pfnDispatchMessage       = DefWindowProcA;
+  pfnClientW.pfnDispatchMessage       = DefWindowProcW;
+  pfnClientA.pfnMDIActivateDlgProc    = DefWindowProcA;
+  pfnClientW.pfnMDIActivateDlgProc    = DefWindowProcW;
+
+  pfnClientWorker.pfnButtonWndProc    = ButtonWndProc_common;
+  pfnClientWorker.pfnComboBoxWndProc  = ComboWndProc_common;
+  pfnClientWorker.pfnComboListBoxProc = ListBoxWndProc_common;
+//  pfnClientWorker.pfnDialogWndProc    = DefDlgProc_common;
+  pfnClientWorker.pfnEditWndProc      = EditWndProc_common;
+  pfnClientWorker.pfnListBoxWndProc   = ListBoxWndProc_common;
+  pfnClientWorker.pfnMDIClientWndProc = MDIClientWndProc_common;
+  pfnClientWorker.pfnStaticWndProc    = StaticWndProc_common;
+  pfnClientWorker.pfnImeWndProc       = User32DefWindowProc;
+  pfnClientWorker.pfnGhostWndProc     = User32DefWindowProc;
+  pfnClientWorker.pfnCtfHookProc      = User32DefWindowProc;
+
+  Status = NtUserInitializeClientPfnArrays( &pfnClientA,
+                                            &pfnClientW,
+                                            &pfnClientWorker,
+                                            User32Instance);
+  
+  return NT_SUCCESS(Status) ? TRUE : FALSE;
+}
+#endif

Modified: trunk/reactos/include/reactos/win32k/ntuser.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/win32k/ntuser.h?rev=41905&r1=41904&r2=41905&view=diff
==============================================================================
--- trunk/reactos/include/reactos/win32k/ntuser.h [iso-8859-1] (original)
+++ trunk/reactos/include/reactos/win32k/ntuser.h [iso-8859-1] Sun Jul 12 06:09:49 2009
@@ -231,19 +231,26 @@
     WNDPROC pfnMDIActivateDlgProc;
 } PFNCLIENT, *PPFNCLIENT;
 
+/*
+  Wine Common proc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL Unicode );
+  Windows uses Ansi == TRUE, Wine uses Unicode == TRUE.
+ */
+
+typedef LRESULT(CALLBACK *WNDPROC_EX)(HWND,UINT,WPARAM,LPARAM,BOOL);
+
 typedef struct _PFNCLIENTWORKER
 {
-    WNDPROC pfnButtonWndProc;
-    WNDPROC pfnComboBoxWndProc;
-    WNDPROC pfnComboListBoxProc;
-    WNDPROC pfnDialogWndProc;
-    WNDPROC pfnEditWndProc;
-    WNDPROC pfnListBoxWndProc;
-    WNDPROC pfnMDIClientWndProc;
-    WNDPROC pfnStaticWndProc;
-    WNDPROC pfnImeWndProc;
-    WNDPROC pfnGhostWndProc;
-    WNDPROC pfnCtfHookProc;
+    WNDPROC_EX pfnButtonWndProc;
+    WNDPROC_EX pfnComboBoxWndProc;
+    WNDPROC_EX pfnComboListBoxProc;
+    WNDPROC_EX pfnDialogWndProc;
+    WNDPROC_EX pfnEditWndProc;
+    WNDPROC_EX pfnListBoxWndProc;
+    WNDPROC_EX pfnMDIClientWndProc;
+    WNDPROC_EX pfnStaticWndProc;
+    WNDPROC_EX pfnImeWndProc;
+    WNDPROC_EX pfnGhostWndProc;
+    WNDPROC_EX pfnCtfHookProc;
 } PFNCLIENTWORKER, *PPFNCLIENTWORKER;
 
 struct _WND;



More information about the Ros-diffs mailing list