user32: Pre-allocate the window procedure for the edit class.

This commit is contained in:
Alexandre Julliard 2009-12-17 12:57:40 +01:00
parent 05cf0ff29f
commit 6400dabf40
3 changed files with 16 additions and 20 deletions

View File

@ -35,6 +35,7 @@ enum builtin_winprocs
{
WINPROC_BUTTON = 0,
WINPROC_COMBO,
WINPROC_EDIT,
NB_BUILTIN_WINPROCS
};

View File

@ -4970,24 +4970,6 @@ LRESULT EditWndProc_common( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, B
}
/*********************************************************************
*
* EditWndProc (USER32.@)
*/
LRESULT WINAPI EditWndProcA(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
return wow_handlers.edit_proc(hWnd, uMsg, wParam, lParam, FALSE);
}
/*********************************************************************
*
* EditWndProcW
*/
static LRESULT WINAPI EditWndProcW(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
return wow_handlers.edit_proc(hWnd, uMsg, wParam, lParam, TRUE);
}
/*********************************************************************
* edit class descriptor
*/
@ -4996,8 +4978,8 @@ const struct builtin_class_descr EDIT_builtin_class =
{
editW, /* name */
CS_DBLCLKS | CS_PARENTDC, /* style */
EditWndProcA, /* procA */
EditWndProcW, /* procW */
NULL, /* procA */
BUILTIN_WINPROC(WINPROC_EDIT), /* procW */
#ifdef __i386__
sizeof(EDITSTATE *) + sizeof(HLOCAL16), /* extra */
#else

View File

@ -55,11 +55,14 @@ static LRESULT WINAPI ButtonWndProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM
static LRESULT WINAPI ButtonWndProcW( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
static LRESULT WINAPI ComboWndProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
static LRESULT WINAPI ComboWndProcW( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
LRESULT WINAPI EditWndProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
static LRESULT WINAPI EditWndProcW( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
static WINDOWPROC winproc_array[MAX_WINPROCS] =
{
{ ButtonWndProcA, ButtonWndProcW }, /* WINPROC_BUTTON */
{ ComboWndProcA, ComboWndProcW }, /* WINPROC_COMBO */
{ EditWndProcA, EditWndProcW }, /* WINPROC_EDIT */
};
static UINT builtin_used = NB_BUILTIN_WINPROCS;
@ -1065,6 +1068,16 @@ static LRESULT WINAPI ComboWndProcW( HWND hwnd, UINT message, WPARAM wParam, LPA
return wow_handlers.combo_proc( hwnd, message, wParam, lParam, TRUE );
}
LRESULT WINAPI EditWndProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
return wow_handlers.edit_proc( hwnd, msg, wParam, lParam, FALSE );
}
static LRESULT WINAPI EditWndProcW( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
return wow_handlers.edit_proc( hwnd, msg, wParam, lParam, TRUE );
}
/**********************************************************************
* UserRegisterWowHandlers (USER32.@)