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/…
==============================================================================
--- 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/ntu…
==============================================================================
--- 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;