partial fix for for Bug #42: activate Ansi window procedures for standard controls

svn path=/trunk/; revision=6581
This commit is contained in:
Martin Fuchs 2003-11-08 15:39:13 +00:00
parent 9c02db5a95
commit adb5c12b85
11 changed files with 147 additions and 50 deletions

View file

@ -1,3 +1,17 @@
2003-11-08 Martin Fuchs <martin-fuchs@gmx.net>
* controls/button.c partial fix for for Bug #42:
activate Ansi window procedures for standard controls
* controls/combo.c Ditto.
* controls/edit.c Ditto.
* controls/icontitle.c Ditto.
* controls/listbox.c Ditto.
* controls/static.c Ditto.
* windows/dialog.c Ditto.
* windows/mdi.c Ditto.
* windows/menu.c Ditto.
* windows/defwnd.c Fixed WM_GETTEXT error handling in DefWindowProcW().
2003-10-06 Casper S. Hornstrup <chorns@users.sourceforge.net>
* Makefile: New target uboot for simple unattended setup.

View file

@ -1,4 +1,4 @@
/* $Id: regcontrol.h,v 1.5 2003/08/15 15:55:02 weiden Exp $
/* $Id: regcontrol.h,v 1.6 2003/11/08 15:39:13 mf Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS User32
@ -23,6 +23,7 @@ struct builtin_class_descr
LPCWSTR name; /* class name */
UINT style; /* class style */
WNDPROC procW; /* Unicode window procedure */
WNDPROC procA; /* Ansi window procedure */
INT extra; /* window extra bytes */
LPCWSTR cursor; /* cursor name */
HBRUSH brush; /* brush or system color */

View file

@ -1,4 +1,4 @@
/* $Id: button.c,v 1.12 2003/10/06 17:53:55 navaraf Exp $
/* $Id: button.c,v 1.13 2003/11/08 15:35:58 mf Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS User32
@ -36,7 +36,7 @@ static void GB_Paint( HWND hwnd, HDC hDC, UINT action );
static void UB_Paint( HWND hwnd, HDC hDC, UINT action );
static void OB_Paint( HWND hwnd, HDC hDC, UINT action );
static void BUTTON_CheckAutoRadioButton( HWND hwnd );
// static LRESULT WINAPI ButtonWndProcA( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
static LRESULT WINAPI ButtonWndProcA( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
static LRESULT WINAPI ButtonWndProcW( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
#define MAX_BTN_TYPE 12
@ -86,6 +86,7 @@ const struct builtin_class_descr BUTTON_builtin_class =
L"Button", /* name */
CS_GLOBALCLASS | CS_DBLCLKS | CS_VREDRAW | CS_HREDRAW | CS_PARENTDC, /* style */
(WNDPROC) ButtonWndProcW, /* procW */
(WNDPROC) ButtonWndProcA, /* procA */
NB_EXTRA_BYTES, /* extra */
(LPCWSTR) IDC_ARROW, /* cursor */
0 /* brush */
@ -459,9 +460,7 @@ static LRESULT WINAPI ButtonWndProc_common(HWND hWnd, UINT uMsg,
/***********************************************************************
* ButtonWndProcW
* The button window procedure. This is just a wrapper which locks
* the passed HWND and calls the real window procedure (with a WND*
* pointer pointing to the locked windowstructure).
* The button window procedure.
*/
static LRESULT WINAPI ButtonWndProcW( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
@ -470,7 +469,6 @@ static LRESULT WINAPI ButtonWndProcW( HWND hWnd, UINT uMsg, WPARAM wParam, LPARA
}
#if 0
/***********************************************************************
* ButtonWndProcA
*/
@ -479,7 +477,6 @@ static LRESULT WINAPI ButtonWndProcA( HWND hWnd, UINT uMsg, WPARAM wParam, LPARA
if (!IsWindow( hWnd )) return 0;
return ButtonWndProc_common( hWnd, uMsg, wParam, lParam, FALSE );
}
#endif
/**********************************************************************
@ -593,9 +590,10 @@ static UINT BUTTON_CalcLabelRect(HWND hwnd, HDC hdc, RECT *rc)
r.bottom = r.top + bm.bmHeight;
break;
default:
empty_rect:
DbgPrint("[button] EMPTY RECT!\n");
default: /* BS_OWNERDRAW, ... */
r.right = r.left;
r.bottom = r.top;
return (UINT)(LONG)-1;

View file

@ -74,7 +74,7 @@ static UINT CBitHeight, CBitWidth;
#define COMBO_EDITBUTTONSPACE() ( 0 )
#define EDIT_CONTROL_PADDING() ( 1 )
// static LRESULT WINAPI ComboWndProcA( 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 );
/*********************************************************************
@ -85,6 +85,7 @@ const struct builtin_class_descr COMBO_builtin_class =
L"ComboBox", /* name */
CS_GLOBALCLASS | CS_PARENTDC | CS_DBLCLKS, /* style */
(WNDPROC) ComboWndProcW, /* procW */
(WNDPROC) ComboWndProcA, /* procA */
sizeof(HEADCOMBO *), /* extra */
(LPCWSTR) IDC_ARROW, /* cursor */
0 /* brush */
@ -2181,19 +2182,14 @@ static LRESULT ComboWndProc_common( HWND hwnd, UINT message,
DefWindowProcA(hwnd, message, wParam, lParam);
}
#if 0
/***********************************************************************
* ComboWndProcA
*
* This is just a wrapper for the real ComboWndProc which locks/unlocks
* window structs.
*/
static LRESULT WINAPI ComboWndProcA( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam )
{
if (!IsWindow(hwnd)) return 0;
return ComboWndProc_common( hwnd, message, wParam, lParam, FALSE );
}
#endif
/***********************************************************************
* ComboWndProcW

View file

@ -306,6 +306,7 @@ const struct builtin_class_descr EDIT_builtin_class =
/*TODO: Fix ExtTextOut so that we can have the CS_PARENTDC style*/
/*CS_GLOBALCLASS | CS_DBLCLKS | CS_PARENTDC,*/ /* style */
(WNDPROC) EditWndProcW, /* procW */
(WNDPROC) EditWndProcA, /* procA */
sizeof(EDITSTATE *), /* extra */
(LPCWSTR) IDC_ARROW, /* cursor */ /* FIXME Wine uses IDC_ARROWA */
0 /* brush */

View file

@ -35,7 +35,8 @@
static BOOL bMultiLineTitle;
static HFONT hIconTitleFont;
static LRESULT CALLBACK IconTitleWndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam );
static LRESULT CALLBACK IconTitleWndProcW( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam );
static LRESULT CALLBACK IconTitleWndProcA( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam );
/*********************************************************************
* icon title class descriptor
@ -44,7 +45,8 @@ const struct builtin_class_descr ICONTITLE_builtin_class =
{
L"ICONTITLE_CLASS_ATOM", /* name */
CS_GLOBALCLASS, /* style */
(WNDPROC) IconTitleWndProc, /* procW */
(WNDPROC) IconTitleWndProcW, /* procW */
(WNDPROC) IconTitleWndProcA, /* procA */
0, /* extra */
(LPCWSTR) IDC_ARROW, /* cursor */ /* FIXME Wine uses IDC_ARROWA */
0 /* brush */
@ -192,8 +194,8 @@ static BOOL ICONTITLE_Paint( HWND hwnd, HWND owner, HDC hDC, BOOL bActive )
/***********************************************************************
* IconTitleWndProc
*/
LRESULT WINAPI IconTitleWndProc( HWND hWnd, UINT msg,
WPARAM wParam, LPARAM lParam )
LRESULT WINAPI IconTitleWndProc_common( HWND hWnd, UINT msg,
WPARAM wParam, LPARAM lParam, BOOL unicode )
{
HWND owner = GetWindow( hWnd, GW_OWNER );
@ -214,7 +216,8 @@ LRESULT WINAPI IconTitleWndProc( HWND hWnd, UINT msg,
return HTCAPTION;
case WM_NCMOUSEMOVE:
case WM_NCLBUTTONDBLCLK:
return SendMessageW( owner, msg, wParam, lParam );
return unicode ? SendMessageW(owner, msg, wParam, lParam) :
SendMessageA(owner, msg, wParam, lParam);
case WM_ACTIVATE:
if( wParam ) SetActiveWindow( owner );
return 0;
@ -232,5 +235,25 @@ LRESULT WINAPI IconTitleWndProc( HWND hWnd, UINT msg,
ValidateRect( hWnd, NULL );
return 1;
}
return DefWindowProcW( hWnd, msg, wParam, lParam );
return unicode ? DefWindowProcW(hWnd, msg, wParam, lParam) :
DefWindowProcA(hWnd, msg, wParam, lParam);
}
/*********************************************************************
*
* IconTitleWndProcW (USER32.@)
*/
LRESULT CALLBACK IconTitleWndProcW(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
return IconTitleWndProc_common(hWnd, uMsg, wParam, lParam, TRUE);
}
/*********************************************************************
*
* IconTitleWndProc (USER32.@)
*/
LRESULT CALLBACK IconTitleWndProcA(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
return IconTitleWndProc_common(hWnd, uMsg, wParam, lParam, FALSE);
}

View file

@ -1,4 +1,4 @@
/* $Id: listbox.c,v 1.12 2003/10/04 22:36:36 weiden Exp $
/* $Id: listbox.c,v 1.13 2003/11/08 15:35:58 mf Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS User32
@ -155,7 +155,7 @@ typedef enum
static TIMER_DIRECTION LISTBOX_Timer = LB_TIMER_NONE;
//static LRESULT WINAPI ComboLBWndProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
static LRESULT WINAPI ComboLBWndProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
static LRESULT WINAPI ComboLBWndProcW( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
static LRESULT WINAPI ListBoxWndProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
static LRESULT WINAPI ListBoxWndProcW( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
@ -170,6 +170,7 @@ const struct builtin_class_descr LISTBOX_builtin_class =
L"ListBox", /* name */
CS_GLOBALCLASS | CS_DBLCLKS /*| CS_PARENTDC*/, /* style */
(WNDPROC)ListBoxWndProcW, /* procW */
(WNDPROC)ListBoxWndProcA, /* procA */
sizeof(LB_DESCR *), /* extra */
(LPCWSTR) IDC_ARROW, /* cursor */
0 /* brush */
@ -184,6 +185,7 @@ const struct builtin_class_descr COMBOLBOX_builtin_class =
L"ComboLBox", /* name */
CS_GLOBALCLASS | CS_DBLCLKS | CS_SAVEBITS, /* style */
(WNDPROC)ComboLBWndProcW, /* procW */
(WNDPROC)ComboLBWndProcA, /* procA */
sizeof(LB_DESCR *), /* extra */
(LPCWSTR) IDC_ARROW, /* cursor */
0 /* brush */
@ -2967,9 +2969,6 @@ static LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,
/***********************************************************************
* ListBoxWndProcA
*
* This is just a wrapper for the real wndproc, it only does window locking
* and unlocking.
*/
static LRESULT WINAPI ListBoxWndProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
@ -3140,11 +3139,11 @@ static LRESULT WINAPI ComboLBWndProc_common( HWND hwnd, UINT msg,
* NOTE: in Windows, winproc address of the ComboLBox is the same
* as that of the Listbox.
*/
//LRESULT WINAPI ComboLBWndProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
//{
// if (!IsWindow(hwnd)) return 0;
// return ComboLBWndProc_common( hwnd, msg, wParam, lParam, FALSE );
//}
LRESULT WINAPI ComboLBWndProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
if (!IsWindow(hwnd)) return 0;
return ComboLBWndProc_common( hwnd, msg, wParam, lParam, FALSE );
}
/***********************************************************************
* ComboLBWndProcW

View file

@ -1,4 +1,4 @@
/* $Id: static.c,v 1.9 2003/11/07 21:02:41 navaraf Exp $
/* $Id: static.c,v 1.10 2003/11/08 15:35:58 mf Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS User32
@ -18,7 +18,7 @@ static void STATIC_PaintRectfn( HWND hwnd, HDC hdc, DWORD style );
static void STATIC_PaintIconfn( HWND hwnd, HDC hdc, DWORD style );
static void STATIC_PaintBitmapfn( HWND hwnd, HDC hdc, DWORD style );
static void STATIC_PaintEtchedfn( HWND hwnd, HDC hdc, DWORD style );
//static LRESULT CALLBACK StaticWndProcA( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
static LRESULT CALLBACK StaticWndProcA( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
static LRESULT CALLBACK StaticWndProcW( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
static COLORREF color_black, color_gray, color_white;
@ -62,6 +62,7 @@ const struct builtin_class_descr STATIC_builtin_class =
L"Static", /* name */
CS_GLOBALCLASS | CS_DBLCLKS, /* style */
(WNDPROC) StaticWndProcW, /* procW */
(WNDPROC) StaticWndProcA, /* procA */
STATIC_EXTRA_BYTES, /* extra */
(LPCWSTR) IDC_ARROW, /* cursor */ /* FIXME Wine uses IDC_ARROWA */
0 /* brush */
@ -155,6 +156,19 @@ static HICON STATIC_LoadIconW( HWND hwnd, LPCWSTR name )
return hicon;
}
/***********************************************************************
* STATIC_LoadIconA
*
* Load the icon for an SS_ICON control.
*/
static HICON STATIC_LoadIconA( HWND hwnd, LPCSTR name )
{
HINSTANCE hInstance = (HINSTANCE)GetWindowLongA( hwnd, GWL_HINSTANCE );
HICON hicon = LoadIconA( hInstance, name );
if (!hicon) hicon = LoadIconA( 0, name );
return hicon;
}
/***********************************************************************
* STATIC_LoadBitmapW
*
@ -169,6 +183,20 @@ static HBITMAP STATIC_LoadBitmapW( HWND hwnd, LPCWSTR name )
return hbitmap;
}
/***********************************************************************
* STATIC_LoadBitmapA
*
* Load the bitmap for an SS_BITMAP control.
*/
static HBITMAP STATIC_LoadBitmapA( HWND hwnd, LPCSTR name )
{
HINSTANCE hInstance = (HINSTANCE)GetWindowLongA( hwnd, GWL_HINSTANCE );
HBITMAP hbitmap = LoadBitmapA( hInstance, name );
if (!hbitmap) /* Try OEM icon (FIXME: is this right?) */
hbitmap = LoadBitmapA( 0, name );
return hbitmap;
}
/***********************************************************************
* STATIC_TryPaintFcn
*
@ -190,9 +218,9 @@ static VOID STATIC_TryPaintFcn(HWND hwnd, LONG full_style)
}
/***********************************************************************
* StaticWndProcW
* StaticWndProc_common
*/
static LRESULT CALLBACK StaticWndProcW( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
static LRESULT CALLBACK StaticWndProc_common( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL unicode )
{
LRESULT lResult = 0;
LONG full_style = GetWindowLongA( hwnd, GWL_STYLE );
@ -225,7 +253,9 @@ static LRESULT CALLBACK StaticWndProcW( HWND hwnd, UINT uMsg, WPARAM wParam, LPA
*/
break;
}
else return DefWindowProcW(hwnd, uMsg, wParam, lParam);
else
return unicode ? DefWindowProcW(hwnd, uMsg, wParam, lParam) :
DefWindowProcA(hwnd, uMsg, wParam, lParam);
case WM_PAINT:
{
@ -260,7 +290,10 @@ static LRESULT CALLBACK StaticWndProcW( HWND hwnd, UINT uMsg, WPARAM wParam, LPA
case SS_ICON:
{
HICON hIcon;
hIcon = STATIC_LoadIconW(hwnd, (LPCWSTR)lParam);
if (unicode)
hIcon = STATIC_LoadIconW(hwnd, (LPCWSTR)lParam);
else
hIcon = STATIC_LoadIconA(hwnd, (LPCSTR)lParam);
/* FIXME : should we also return the previous hIcon here ??? */
STATIC_SetIcon(hwnd, hIcon, style);
break;
@ -268,7 +301,10 @@ static LRESULT CALLBACK StaticWndProcW( HWND hwnd, UINT uMsg, WPARAM wParam, LPA
case SS_BITMAP:
{
HBITMAP hBitmap;
hBitmap = STATIC_LoadBitmapW(hwnd, (LPCWSTR)lParam);
if (unicode)
hBitmap = STATIC_LoadBitmapW(hwnd, (LPCWSTR)lParam);
else
hBitmap = STATIC_LoadBitmapA(hwnd, (LPCSTR)lParam);
STATIC_SetBitmap(hwnd, hBitmap, style);
break;
}
@ -280,7 +316,8 @@ static LRESULT CALLBACK StaticWndProcW( HWND hwnd, UINT uMsg, WPARAM wParam, LPA
{
if (HIWORD(lParam))
{
lResult = DefWindowProcW( hwnd, WM_SETTEXT, wParam, lParam );
lResult = unicode? DefWindowProcW(hwnd, WM_SETTEXT, wParam, lParam) :
DefWindowProcA(hwnd, uMsg, wParam, lParam);
}
if (uMsg == WM_SETTEXT)
STATIC_TryPaintFcn( hwnd, full_style );
@ -317,14 +354,22 @@ static LRESULT CALLBACK StaticWndProcW( HWND hwnd, UINT uMsg, WPARAM wParam, LPA
case WM_LBUTTONDOWN:
if (! (full_style & SS_NOTIFY)) return 0;
SendMessageW(GetParent(hwnd), WM_COMMAND,
MAKEWPARAM((WORD) GetWindowLongW(hwnd, GWL_ID), STN_CLICKED), (LPARAM) hwnd);
if (unicode)
SendMessageW(GetParent(hwnd), WM_COMMAND,
MAKEWPARAM((WORD) GetWindowLongW(hwnd, GWL_ID), STN_CLICKED), (LPARAM) hwnd);
else
SendMessageA(GetParent(hwnd), WM_COMMAND,
MAKEWPARAM((WORD) GetWindowLongA(hwnd, GWL_ID), STN_CLICKED), (LPARAM) hwnd);
return 0;
case WM_LBUTTONDBLCLK:
if (! (full_style & SS_NOTIFY)) return 0;
SendMessageW(GetParent(hwnd), WM_COMMAND,
if (unicode)
SendMessageW(GetParent(hwnd), WM_COMMAND,
MAKEWPARAM((WORD) GetWindowLongW(hwnd, GWL_ID), STN_DBLCLK), (LPARAM) hwnd);
else
SendMessageA(GetParent(hwnd), WM_COMMAND,
MAKEWPARAM((WORD) GetWindowLongA(hwnd, GWL_ID), STN_DBLCLK), (LPARAM) hwnd);
return 0;
case STM_GETIMAGE:
@ -352,11 +397,32 @@ static LRESULT CALLBACK StaticWndProcW( HWND hwnd, UINT uMsg, WPARAM wParam, LPA
break;
default:
return DefWindowProcW(hwnd, uMsg, wParam, lParam);
return unicode ? DefWindowProcW(hwnd, uMsg, wParam, lParam) :
DefWindowProcA(hwnd, uMsg, wParam, lParam);
}
return lResult;
}
/*********************************************************************
*
* StaticWndProcW (USER32.@)
*/
LRESULT CALLBACK StaticWndProcW(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
return StaticWndProc_common(hWnd, uMsg, wParam, lParam, TRUE);
}
/*********************************************************************
*
* StaticWndProc (USER32.@)
*/
LRESULT CALLBACK StaticWndProcA(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
return StaticWndProc_common(hWnd, uMsg, wParam, lParam, FALSE);
}
static void STATIC_PaintOwnerDrawfn( HWND hwnd, HDC hdc, DWORD style )
{
DRAWITEMSTRUCT dis;

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: dialog.c,v 1.20 2003/10/31 16:25:08 navaraf Exp $
/* $Id: dialog.c,v 1.21 2003/11/08 15:35:58 mf Exp $
*
* PROJECT: ReactOS user32.dll
* FILE: lib/user32/windows/dialog.c
@ -125,6 +125,7 @@ const struct builtin_class_descr DIALOG_builtin_class =
DIALOG_CLASS_ATOMW, /* name */
CS_GLOBALCLASS | CS_SAVEBITS | CS_DBLCLKS, /* style */
(WNDPROC) DefDlgProcW, /* procW */
(WNDPROC) DefDlgProcA, /* procA */
DWL_INIT + sizeof(LONG), /* extra */
(LPCWSTR) IDC_ARROW, /* cursor */
0 /* brush */

View file

@ -153,9 +153,7 @@ static LONG MDI_ChildActivate( HWND, HWND );
static HWND MDI_MoreWindowsDialog(HWND);
static void MDI_SwapMenuItems(HWND, UINT, UINT);
#ifndef __REACTOS__
static LRESULT WINAPI MDIClientWndProcA( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam );
#endif
static LRESULT WINAPI MDIClientWndProcW( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam );
#ifdef __REACTOS__
@ -223,14 +221,15 @@ const struct builtin_class_descr MDICLIENT_builtin_class =
L"MDIClient", /* name */
CS_GLOBALCLASS, /* style */
MDIClientWndProcW, /* procW */
MDIClientWndProcA, /* procA */
sizeof(MDICLIENTINFO), /* extra */
IDC_ARROW, /* cursor */
(HBRUSH)(COLOR_APPWORKSPACE+1) /* brush */
#else
"MDIClient", /* name */
CS_GLOBALCLASS, /* style */
MDIClientWndProcA, /* procA */
MDIClientWndProcW, /* procW */
MDIClientWndProcA, /* procA */
sizeof(MDICLIENTINFO), /* extra */
IDC_ARROW, /* cursor */
(HBRUSH)(COLOR_APPWORKSPACE+1) /* brush */
@ -1533,7 +1532,6 @@ static LRESULT MDIClientWndProc_common( HWND hwnd, UINT message,
DefWindowProcA( hwnd, message, wParam, lParam );
}
#ifndef __REACTOS__
/***********************************************************************
* MDIClientWndProcA
*/
@ -1542,7 +1540,6 @@ static LRESULT WINAPI MDIClientWndProcA( HWND hwnd, UINT message, WPARAM wParam,
if (!IsWindow(hwnd)) return 0;
return MDIClientWndProc_common( hwnd, message, wParam, lParam, FALSE );
}
#endif
/***********************************************************************
* MDIClientWndProcW

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: menu.c,v 1.34 2003/10/25 22:57:34 navaraf Exp $
/* $Id: menu.c,v 1.35 2003/11/08 15:35:58 mf Exp $
*
* PROJECT: ReactOS user32.dll
* FILE: lib/user32/windows/menu.c
@ -72,6 +72,7 @@ const struct builtin_class_descr POPUPMENU_builtin_class =
POPUPMENU_CLASS_ATOMW, /* name */
CS_GLOBALCLASS | CS_SAVEBITS | CS_DBLCLKS, /* style */
(WNDPROC) NULL, /* FIXME - procW */
(WNDPROC) NULL, /* FIXME - procA */
sizeof(MENUINFO *), /* extra */
(LPCWSTR) IDC_ARROW, /* cursor */
(HBRUSH)COLOR_MENU /* brush */