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;
|
HWND32 self;
|
||||||
} MDICLIENTINFO;
|
} 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 */
|
#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,
|
HWND32 WINAPI CreateWindowEx32W(DWORD,LPCWSTR,LPCWSTR,DWORD,INT32,INT32,
|
||||||
INT32,INT32,HWND32,HMENU32,HINSTANCE32,LPVOID);
|
INT32,INT32,HWND32,HMENU32,HINSTANCE32,LPVOID);
|
||||||
#define CreateWindowEx WINELIB_NAME_AW(CreateWindowEx)
|
#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 DefDlgProc16(HWND16,UINT16,WPARAM16,LPARAM);
|
||||||
LRESULT WINAPI DefDlgProc32A(HWND32,UINT32,WPARAM32,LPARAM);
|
LRESULT WINAPI DefDlgProc32A(HWND32,UINT32,WPARAM32,LPARAM);
|
||||||
LRESULT WINAPI DefDlgProc32W(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
|
76 stdcall CreateIconFromResource (ptr long long long) CreateIconFromResource32
|
||||||
77 stdcall CreateIconFromResourceEx(ptr long long long long long long) CreateIconFromResourceEx32
|
77 stdcall CreateIconFromResourceEx(ptr long long long long long long) CreateIconFromResourceEx32
|
||||||
78 stdcall CreateIconIndirect(ptr) CreateIconIndirect
|
78 stdcall CreateIconIndirect(ptr) CreateIconIndirect
|
||||||
79 stdcall CreateMDIWindowA(ptr ptr long long long long long long long long) CreateMDIWindowA
|
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) CreateMDIWindowW
|
80 stdcall CreateMDIWindowW(ptr ptr long long long long long long long long) CreateMDIWindow32W
|
||||||
81 stdcall CreateMenu() CreateMenu32
|
81 stdcall CreateMenu() CreateMenu32
|
||||||
82 stdcall CreatePopupMenu() CreatePopupMenu32
|
82 stdcall CreatePopupMenu() CreatePopupMenu32
|
||||||
83 stdcall CreateWindowExA(long str str long long long long long long long long ptr) CreateWindowEx32A
|
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 lpClassName,
|
||||||
LPCSTR lpWindowName,
|
LPCSTR lpWindowName,
|
||||||
DWORD dwStyle,
|
DWORD dwStyle,
|
||||||
@ -1541,20 +1568,65 @@ HWND32 WINAPI CreateMDIWindowA(
|
|||||||
HINSTANCE32 hInstance,
|
HINSTANCE32 hInstance,
|
||||||
LPARAM lParam)
|
LPARAM lParam)
|
||||||
{
|
{
|
||||||
FIXME(mdi, "(%s,%s,%ld,...): stub\n",debugstr_a(lpClassName),
|
MDICLIENTINFO* pCi;
|
||||||
debugstr_a(lpWindowName),dwStyle);
|
MDICREATESTRUCT32A cs;
|
||||||
return (HWND32)NULL;
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***************************************
|
||||||
/******************************************************************************
|
* CreateMDIWindow32W [USER32.80] Creates a MDI child in new thread
|
||||||
* CreateMDIWindowW [USER32.80] Creates a MDI child window
|
|
||||||
*
|
*
|
||||||
* RETURNS
|
* RETURNS
|
||||||
* Success: Handle to created window
|
* Success: Handle to created window
|
||||||
* Failure: NULL
|
* 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 lpClassName, /* [in] Pointer to registered child class name */
|
||||||
LPCWSTR lpWindowName, /* [in] Pointer to window name */
|
LPCWSTR lpWindowName, /* [in] Pointer to window name */
|
||||||
DWORD dwStyle, /* [in] Window style */
|
DWORD dwStyle, /* [in] Window style */
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
#include "process.h"
|
#include "process.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
|
#include "mdi.h"
|
||||||
|
|
||||||
/* Desktop window */
|
/* Desktop window */
|
||||||
static WND *pWndDesktop = NULL;
|
static WND *pWndDesktop = NULL;
|
||||||
@ -885,6 +886,8 @@ HWND32 WINAPI CreateWindowEx32A( DWORD exStyle, LPCSTR className,
|
|||||||
ATOM classAtom;
|
ATOM classAtom;
|
||||||
CREATESTRUCT32A cs;
|
CREATESTRUCT32A cs;
|
||||||
|
|
||||||
|
if(exStyle & WS_EX_MDICHILD)
|
||||||
|
return MDI_CreateMDIWindow32A(className, windowName, style, x, y, width, height, parent, instance, data);
|
||||||
/* Find the class atom */
|
/* Find the class atom */
|
||||||
|
|
||||||
if (!(classAtom = GlobalFindAtom32A( className )))
|
if (!(classAtom = GlobalFindAtom32A( className )))
|
||||||
@ -925,6 +928,9 @@ HWND32 WINAPI CreateWindowEx32W( DWORD exStyle, LPCWSTR className,
|
|||||||
ATOM classAtom;
|
ATOM classAtom;
|
||||||
CREATESTRUCT32W cs;
|
CREATESTRUCT32W cs;
|
||||||
|
|
||||||
|
if(exStyle & WS_EX_MDICHILD)
|
||||||
|
return MDI_CreateMDIWindow32W(className, windowName, style, x, y, width, height, parent, instance, data);
|
||||||
|
|
||||||
/* Find the class atom */
|
/* Find the class atom */
|
||||||
|
|
||||||
if (!(classAtom = GlobalFindAtom32W( className )))
|
if (!(classAtom = GlobalFindAtom32W( className )))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user