- Start initializing client pfn arrays so that they can be loaded into the server information structure and help register class atoms in win32k.

svn path=/trunk/; revision=41905
This commit is contained in:
James Tabor 2009-07-12 02:09:49 +00:00
parent 1ad4b7ad1f
commit 038073d31c
2 changed files with 96 additions and 11 deletions

View file

@ -61,3 +61,81 @@ BOOL WINAPI RegisterSystemControls(VOID)
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

View file

@ -231,19 +231,26 @@ typedef struct _PFNCLIENT
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;