CreateWindowEx32[AW] now creates an MDI chils when the WM_EX_MDICHILD
extended style is specified. Also implemented CreateMDIWindow32A() call - single thread only -.
This commit is contained in:
parent
0d3f09f3a4
commit
5c6fc1bb91
|
@ -37,5 +37,9 @@ typedef struct
|
|||
HWND32 self;
|
||||
} MDICLIENTINFO;
|
||||
|
||||
extern HWND32 MDI_CreateMDIWindow32A(LPCSTR,LPCSTR,DWORD,INT32,INT32,
|
||||
INT32,INT32,HWND32,HINSTANCE32,LPARAM);
|
||||
extern HWND32 MDI_CreateMDIWindow32W(LPCWSTR,LPCWSTR,DWORD,INT32,INT32,
|
||||
INT32,INT32,HWND32,HINSTANCE32,LPARAM);
|
||||
#endif /* __WINE_MDI_H */
|
||||
|
||||
|
|
|
@ -7557,6 +7557,11 @@ HWND32 WINAPI CreateWindowEx32A(DWORD,LPCSTR,LPCSTR,DWORD,INT32,INT32,
|
|||
HWND32 WINAPI CreateWindowEx32W(DWORD,LPCWSTR,LPCWSTR,DWORD,INT32,INT32,
|
||||
INT32,INT32,HWND32,HMENU32,HINSTANCE32,LPVOID);
|
||||
#define CreateWindowEx WINELIB_NAME_AW(CreateWindowEx)
|
||||
HWND32 WINAPI CreateMDIWindow32A(LPCSTR,LPCSTR,DWORD,INT32,INT32,
|
||||
INT32,INT32,HWND32,HINSTANCE32,LPARAM);
|
||||
HWND32 WINAPI CreateMDIWindow32W(LPCWSTR,LPCWSTR,DWORD,INT32,INT32,
|
||||
INT32,INT32,HWND32,HINSTANCE32,LPARAM);
|
||||
#define CreateMDIWindow WINELIB_NAME_AW(CreateMDIWindow)
|
||||
LRESULT WINAPI DefDlgProc16(HWND16,UINT16,WPARAM16,LPARAM);
|
||||
LRESULT WINAPI DefDlgProc32A(HWND32,UINT32,WPARAM32,LPARAM);
|
||||
LRESULT WINAPI DefDlgProc32W(HWND32,UINT32,WPARAM32,LPARAM);
|
||||
|
|
|
@ -79,8 +79,8 @@ type win32
|
|||
76 stdcall CreateIconFromResource (ptr long long long) CreateIconFromResource32
|
||||
77 stdcall CreateIconFromResourceEx(ptr long long long long long long) CreateIconFromResourceEx32
|
||||
78 stdcall CreateIconIndirect(ptr) CreateIconIndirect
|
||||
79 stdcall CreateMDIWindowA(ptr ptr long long long long long long long long) CreateMDIWindowA
|
||||
80 stdcall CreateMDIWindowW(ptr ptr long long long long long long long long) CreateMDIWindowW
|
||||
79 stdcall CreateMDIWindowA(ptr ptr long long long long long long long long) CreateMDIWindow32A
|
||||
80 stdcall CreateMDIWindowW(ptr ptr long long long long long long long long) CreateMDIWindow32W
|
||||
81 stdcall CreateMenu() CreateMenu32
|
||||
82 stdcall CreatePopupMenu() CreatePopupMenu32
|
||||
83 stdcall CreateWindowExA(long str str long long long long long long long long ptr) CreateWindowEx32A
|
||||
|
|
|
@ -1527,9 +1527,36 @@ LRESULT WINAPI DefMDIChildProc32W( HWND32 hwnd, UINT32 message,
|
|||
|
||||
|
||||
/**********************************************************************
|
||||
* CreateMDIWindowA [USER32.79]
|
||||
* CreateMDIWindowA [USER32.79] Creates a MDI child in new thread
|
||||
* FIXME: its in the same thread now
|
||||
*
|
||||
* RETURNS
|
||||
* Success: Handle to created window
|
||||
* Failure: NULL
|
||||
*/
|
||||
HWND32 WINAPI CreateMDIWindowA(
|
||||
HWND32 CreateMDIWindow32A(
|
||||
LPCSTR lpClassName, /* [in] Pointer to registered child class name */
|
||||
LPCSTR lpWindowName, /* [in] Pointer to window name */
|
||||
DWORD dwStyle, /* [in] Window style */
|
||||
INT32 X, /* [in] Horizontal position of window */
|
||||
INT32 Y, /* [in] Vertical position of window */
|
||||
INT32 nWidth, /* [in] Width of window */
|
||||
INT32 nHeight, /* [in] Height of window */
|
||||
HWND32 hWndParent, /* [in] Handle to parent window */
|
||||
HINSTANCE32 hInstance, /* [in] Handle to application instance */
|
||||
LPARAM lParam) /* [in] Application-defined value */
|
||||
{
|
||||
WARN(mdi,"is only single threaded!\n");
|
||||
return MDI_CreateMDIWindow32A(lpClassName, lpWindowName, dwStyle, X, Y,
|
||||
nWidth, nHeight, hWndParent, hInstance, lParam);
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
* MDI_CreateMDIWindowA
|
||||
* single threaded version of CreateMDIWindowA
|
||||
* called by CreateWindowEx32A
|
||||
*/
|
||||
HWND32 MDI_CreateMDIWindow32A(
|
||||
LPCSTR lpClassName,
|
||||
LPCSTR lpWindowName,
|
||||
DWORD dwStyle,
|
||||
|
@ -1541,20 +1568,65 @@ HWND32 WINAPI CreateMDIWindowA(
|
|||
HINSTANCE32 hInstance,
|
||||
LPARAM lParam)
|
||||
{
|
||||
FIXME(mdi, "(%s,%s,%ld,...): stub\n",debugstr_a(lpClassName),
|
||||
debugstr_a(lpWindowName),dwStyle);
|
||||
return (HWND32)NULL;
|
||||
MDICLIENTINFO* pCi;
|
||||
MDICREATESTRUCT32A cs;
|
||||
WND *pWnd=WIN_FindWndPtr(hWndParent);
|
||||
|
||||
TRACE(mdi, "(%s,%s,%ld,%d,%d,%d,%d,%x,%d,%ld)\n",
|
||||
debugstr_a(lpClassName),debugstr_a(lpWindowName),dwStyle,X,Y,
|
||||
nWidth,nHeight,hWndParent,hInstance,lParam);
|
||||
|
||||
if(!pWnd){
|
||||
ERR(mdi," bad hwnd for MDI-client: %d\n",hWndParent);
|
||||
return 0;
|
||||
}
|
||||
cs.szClass=lpClassName;
|
||||
cs.szTitle=lpWindowName;
|
||||
cs.hOwner=hInstance;
|
||||
cs.x=X;
|
||||
cs.y=Y;
|
||||
cs.cx=nWidth;
|
||||
cs.cy=nHeight;
|
||||
cs.style=dwStyle;
|
||||
cs.lParam=lParam;
|
||||
|
||||
pCi=(MDICLIENTINFO *)pWnd->wExtra;
|
||||
|
||||
return MDICreateChild(pWnd,pCi,hWndParent,&cs);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* CreateMDIWindowW [USER32.80] Creates a MDI child window
|
||||
/***************************************
|
||||
* CreateMDIWindow32W [USER32.80] Creates a MDI child in new thread
|
||||
*
|
||||
* RETURNS
|
||||
* Success: Handle to created window
|
||||
* Failure: NULL
|
||||
*/
|
||||
HWND32 WINAPI CreateMDIWindowW(
|
||||
HWND32 CreateMDIWindow32W(
|
||||
LPCWSTR lpClassName, /* [in] Pointer to registered child class name */
|
||||
LPCWSTR lpWindowName, /* [in] Pointer to window name */
|
||||
DWORD dwStyle, /* [in] Window style */
|
||||
INT32 X, /* [in] Horizontal position of window */
|
||||
INT32 Y, /* [in] Vertical position of window */
|
||||
INT32 nWidth, /* [in] Width of window */
|
||||
INT32 nHeight, /* [in] Height of window */
|
||||
HWND32 hWndParent, /* [in] Handle to parent window */
|
||||
HINSTANCE32 hInstance, /* [in] Handle to application instance */
|
||||
LPARAM lParam) /* [in] Application-defined value */
|
||||
{
|
||||
FIXME(mdi, "(%s,%s,%ld,%d,%d,%d,%d,%x,%d,%ld): stub\n",
|
||||
debugstr_w(lpClassName),debugstr_w(lpWindowName),dwStyle,X,Y,
|
||||
nWidth,nHeight,hWndParent,hInstance,lParam);
|
||||
return (HWND32)NULL;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* CreateMDIWindow32W [USER32.80] Creates a MDI child window
|
||||
* single threaded version of CreateMDIWindow
|
||||
* called by CreateWindowEx32W().
|
||||
*/
|
||||
HWND32 MDI_CreateMDIWindow32W(
|
||||
LPCWSTR lpClassName, /* [in] Pointer to registered child class name */
|
||||
LPCWSTR lpWindowName, /* [in] Pointer to window name */
|
||||
DWORD dwStyle, /* [in] Window style */
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include "process.h"
|
||||
#include "debug.h"
|
||||
#include "winerror.h"
|
||||
#include "mdi.h"
|
||||
|
||||
/* Desktop window */
|
||||
static WND *pWndDesktop = NULL;
|
||||
|
@ -885,6 +886,8 @@ HWND32 WINAPI CreateWindowEx32A( DWORD exStyle, LPCSTR className,
|
|||
ATOM classAtom;
|
||||
CREATESTRUCT32A cs;
|
||||
|
||||
if(exStyle & WS_EX_MDICHILD)
|
||||
return MDI_CreateMDIWindow32A(className, windowName, style, x, y, width, height, parent, instance, data);
|
||||
/* Find the class atom */
|
||||
|
||||
if (!(classAtom = GlobalFindAtom32A( className )))
|
||||
|
@ -925,6 +928,9 @@ HWND32 WINAPI CreateWindowEx32W( DWORD exStyle, LPCWSTR className,
|
|||
ATOM classAtom;
|
||||
CREATESTRUCT32W cs;
|
||||
|
||||
if(exStyle & WS_EX_MDICHILD)
|
||||
return MDI_CreateMDIWindow32W(className, windowName, style, x, y, width, height, parent, instance, data);
|
||||
|
||||
/* Find the class atom */
|
||||
|
||||
if (!(classAtom = GlobalFindAtom32W( className )))
|
||||
|
|
Loading…
Reference in New Issue