Slightly rearrange WIN16/WIN32A/WIN32 window creation.
diff --git a/windows/win.c b/windows/win.c
index 57c458e..60569e1 100644
--- a/windows/win.c
+++ b/windows/win.c
@@ -7,7 +7,6 @@
#include <stdlib.h>
#include <string.h>
#include "windef.h"
-#include "wingdi.h"
#include "wine/winbase16.h"
#include "wine/winuser16.h"
#include "wine/unicode.h"
@@ -21,16 +20,12 @@
#include "hook.h"
#include "menu.h"
#include "message.h"
-#include "nonclient.h"
#include "queue.h"
#include "winpos.h"
-#include "clipboard.h"
-#include "winproc.h"
#include "task.h"
#include "thread.h"
#include "winerror.h"
#include "mdi.h"
-#include "local.h"
#include "stackframe.h"
#include "debugtools.h"
@@ -643,7 +638,7 @@
/***********************************************************************
- * WIN_CreateWindowEx
+ * WIN_FixCoordinates
*
* Fix the coordinates - Helper for WIN_CreateWindowEx.
* returns default show mode in sw.
@@ -713,7 +708,7 @@
* Implementation of CreateWindowEx().
*/
static HWND WIN_CreateWindowEx( CREATESTRUCTA *cs, ATOM classAtom,
- BOOL win32, BOOL unicode )
+ WINDOWPROCTYPE type )
{
INT sw = SW_SHOW;
CLASS *classPtr;
@@ -724,11 +719,14 @@
LRESULT (CALLBACK *localSend32)(HWND, UINT, WPARAM, LPARAM);
TRACE("%s %s %08lx %08lx %d,%d %dx%d %04x %04x %08x %p\n",
- unicode ? debugres_w((LPWSTR)cs->lpszName) : debugres_a(cs->lpszName),
- unicode ? debugres_w((LPWSTR)cs->lpszClass) : debugres_a(cs->lpszClass),
+ (type == WIN_PROC_32W) ? debugres_w((LPWSTR)cs->lpszName) : debugres_a(cs->lpszName),
+ (type == WIN_PROC_32W) ? debugres_w((LPWSTR)cs->lpszClass) : debugres_a(cs->lpszClass),
cs->dwExStyle, cs->style, cs->x, cs->y, cs->cx, cs->cy,
cs->hwndParent, cs->hMenu, cs->hInstance, cs->lpCreateParams );
+ TRACE("winproc type is %d (%s)\n", type, (type == WIN_PROC_16) ? "WIN_PROC_16" :
+ ((type == WIN_PROC_32A) ? "WIN_PROC_32A" : "WIN_PROC_32W") );
+
/* Find the parent window */
if (cs->hwndParent)
@@ -745,7 +743,7 @@
}
/* Find the window class */
- if (!(classPtr = CLASS_FindClassByAtom( classAtom, win32?cs->hInstance:GetExePtr(cs->hInstance) )))
+ if (!(classPtr = CLASS_FindClassByAtom( classAtom, (type == WIN_PROC_16) ? GetExePtr(cs->hInstance) : cs->hInstance )))
{
WARN("Bad class '%s'\n", cs->lpszClass );
return 0;
@@ -806,7 +804,7 @@
wndPtr->dwExStyle = cs->dwExStyle;
wndPtr->wIDmenu = 0;
wndPtr->helpContext = 0;
- wndPtr->flags = win32 ? WIN_ISWIN32 : 0;
+ wndPtr->flags = (type == WIN_PROC_16) ? 0 : WIN_ISWIN32;
wndPtr->pVScroll = NULL;
wndPtr->pHScroll = NULL;
wndPtr->pProp = NULL;
@@ -829,7 +827,7 @@
cbtc.lpcs = cs;
cbtc.hwndInsertAfter = hwndLinkAfter;
- ret = unicode ? HOOK_CallHooksW(WH_CBT, HCBT_CREATEWND, hwnd, (LPARAM)&cbtc)
+ ret = (type == WIN_PROC_32W) ? HOOK_CallHooksW(WH_CBT, HCBT_CREATEWND, hwnd, (LPARAM)&cbtc)
: HOOK_CallHooksA(WH_CBT, HCBT_CREATEWND, hwnd, (LPARAM)&cbtc);
if (ret)
{
@@ -891,7 +889,7 @@
wndPtr->rectWindow.bottom = cs->y + cs->cy;
wndPtr->rectClient = wndPtr->rectWindow;
- if(!wndPtr->pDriver->pCreateWindow(wndPtr, classPtr, cs, unicode))
+ if(!wndPtr->pDriver->pCreateWindow(wndPtr, classPtr, cs, type == WIN_PROC_32W))
{
retvalue = FALSE;
goto end;
@@ -926,7 +924,7 @@
maxPos.x = wndPtr->rectWindow.left; maxPos.y = wndPtr->rectWindow.top;
- localSend32 = unicode ? SendMessageW : SendMessageA;
+ localSend32 = (type == WIN_PROC_32W) ? SendMessageW : SendMessageA;
if( (*localSend32)( hwnd, WM_NCCREATE, 0, (LPARAM)cs) )
{
/* Insert the window in the linked list */
@@ -949,10 +947,10 @@
WARN("sending bogus WM_SIZE message 0x%08lx\n",
MAKELONG(wndPtr->rectClient.right-wndPtr->rectClient.left,
wndPtr->rectClient.bottom-wndPtr->rectClient.top));
- SendMessageA( hwnd, WM_SIZE, SIZE_RESTORED,
+ (*localSend32)( hwnd, WM_SIZE, SIZE_RESTORED,
MAKELONG(wndPtr->rectClient.right-wndPtr->rectClient.left,
wndPtr->rectClient.bottom-wndPtr->rectClient.top));
- SendMessageA( hwnd, WM_MOVE, 0,
+ (*localSend32)( hwnd, WM_MOVE, 0,
MAKELONG( wndPtr->rectClient.left,
wndPtr->rectClient.top ) );
}
@@ -1076,7 +1074,7 @@
cs.lpszClass = className;
cs.dwExStyle = exStyle;
- return WIN_CreateWindowEx( &cs, classAtom, FALSE, FALSE );
+ return WIN_CreateWindowEx( &cs, classAtom, WIN_PROC_16 );
}
@@ -1135,7 +1133,7 @@
cs.lpszClass = className;
cs.dwExStyle = exStyle;
- return WIN_CreateWindowEx( &cs, classAtom, TRUE, FALSE );
+ return WIN_CreateWindowEx( &cs, classAtom, WIN_PROC_32A );
}
@@ -1196,7 +1194,7 @@
/* Note: we rely on the fact that CREATESTRUCTA and */
/* CREATESTRUCTW have the same layout. */
- return WIN_CreateWindowEx( (CREATESTRUCTA *)&cs, classAtom, TRUE, TRUE );
+ return WIN_CreateWindowEx( (CREATESTRUCTA *)&cs, classAtom, WIN_PROC_32W );
}
/***********************************************************************
@@ -2020,7 +2018,7 @@
retval = SetWindowWord( hwnd, offset, newval );
goto end;
case GWL_WNDPROC:
- retval = (LONG)WINPROC_GetProc( wndPtr->winproc, type );
+ retval = (LONG)WINPROC_GetProc( wndPtr->winproc, type );
WINPROC_SetProc( &wndPtr->winproc, (WNDPROC16)newval,
type, WIN_PROC_WINDOW );
goto end;