-#ifndef _WIN32K_WINDOW_H
-#define _WIN32K_WINDOW_H
+#pragma once
struct _PROPERTY;
struct _WINDOW_OBJECT;
#include <include/scroll.h>
extern ATOM AtomMessage;
+extern ATOM AtomWndObj; /* WNDOBJ list */
BOOL FASTCALL UserUpdateUiState(PWND Wnd, WPARAM wParam);
-typedef struct _WINDOW_OBJECT
-{
- /* NOTE: Do *NOT* Move this pointer anywhere in this structure! This
- is a pointer to the WINDOW structure that eventually replaces
- the WINDOW_OBJECT structure! USER32 expects this pointer to
- be here until WINDOW_OBJECT has completely been superseded! */
- PWND Wnd;
-
- /* Pointer to the thread information */
- PTHREADINFO ti;
- /* Pointer to the desktop */
- PDESKTOPINFO Desktop;
- /* system menu handle. */
- HMENU SystemMenu;
- /* Entry in the thread's list of windows. */
- LIST_ENTRY ListEntry;
- /* Handle for the window. */
- HWND hSelf;
- /* Window flags. */
- ULONG Flags;
- /* Handle of region of the window to be updated. */
- HANDLE UpdateRegion;
- /* Handle of the window region. */
- HANDLE WindowRegion;
- /* Pointer to the owning thread's message queue. */
- PUSER_MESSAGE_QUEUE MessageQueue;
- struct _WINDOW_OBJECT* FirstChild;
- struct _WINDOW_OBJECT* LastChild;
- struct _WINDOW_OBJECT* NextSibling;
- struct _WINDOW_OBJECT* PrevSibling;
- /* Entry in the list of thread windows. */
- LIST_ENTRY ThreadListEntry;
- /* Handle to the parent window. */
- struct _WINDOW_OBJECT* Parent;
- /* Handle to the owner window. */
- HWND hOwner;
- /* DC Entries (DCE) */
- PDCE Dce;
- /* Scrollbar info */
- PWINDOW_SCROLLINFO Scroll;
- PETHREAD OwnerThread;
- HWND hWndLastPopup; /* handle to last active popup window (wine doesn't use pointer, for unk. reason)*/
- ULONG Status;
- /* counter for tiled child windows */
- ULONG TiledCounter;
- /* WNDOBJ list */
- LIST_ENTRY WndObjListHead;
-} WINDOW_OBJECT; /* PWINDOW_OBJECT already declared at top of file */
-
-/* Window flags. */
-#define WINDOWOBJECT_NEED_SIZE (0x00000001) // WNDS_SENDSIZEMOVEMSGS?
-#define WINDOWOBJECT_NEED_ERASEBKGND (0x00000002) // WNDS_ERASEBACKGROUND
-#define WINDOWOBJECT_NEED_NCPAINT (0x00000004) // WNDS_SENDNCPAINT
-#define WINDOWOBJECT_NEED_INTERNALPAINT (0x00000008) // WNDS_INTERNALPAINT
-#define WINDOWOBJECT_RESTOREMAX (0x00000020)
-
-#define WINDOWSTATUS_DESTROYING (0x1) // WNDS2_INDESTROY
-#define WINDOWSTATUS_DESTROYED (0x2) // WNDS_DESTROYED
-
#define HAS_DLGFRAME(Style, ExStyle) \
(((ExStyle) & WS_EX_DLGMODALFRAME) || \
(((Style) & WS_DLGFRAME) && (!((Style) & WS_THICKFRAME))))
(((Style) & WS_BORDER) || (!((Style) & (WS_CHILD | WS_POPUP))))
#define IntIsDesktopWindow(WndObj) \
- (WndObj->Parent == NULL)
+ (WndObj->spwndParent == NULL)
#define IntIsBroadcastHwnd(hWnd) \
(hWnd == HWND_BROADCAST || hWnd == HWND_TOPMOST)
#define IntWndBelongsToThread(WndObj, W32Thread) \
- (((WndObj->OwnerThread && WndObj->OwnerThread->Tcb.Win32Thread)) && \
- (WndObj->OwnerThread->Tcb.Win32Thread == W32Thread))
+ ((WndObj->head.pti) && (WndObj->head.pti == W32Thread))
#define IntGetWndThreadId(WndObj) \
- WndObj->OwnerThread->Cid.UniqueThread
+ WndObj->head.pti->pEThread->Cid.UniqueThread
#define IntGetWndProcessId(WndObj) \
- WndObj->OwnerThread->ThreadsProcess->UniqueProcessId
-
+ WndObj->head.pti->pEThread->ThreadsProcess->UniqueProcessId
BOOL FASTCALL
IntIsWindow(HWND hWnd);
HWND* FASTCALL
-IntWinListChildren(PWINDOW_OBJECT Window);
+IntWinListChildren(PWND Window);
NTSTATUS FASTCALL
InitWindowImpl (VOID);
CleanupWindowImpl (VOID);
VOID FASTCALL
-IntGetClientRect (PWINDOW_OBJECT WindowObject, RECTL *Rect);
+IntGetClientRect (PWND WindowObject, RECTL *Rect);
HWND FASTCALL
IntGetActiveWindow (VOID);
BOOL FASTCALL
-IntIsWindowVisible (PWINDOW_OBJECT Window);
+IntIsWindowVisible (PWND Window);
BOOL FASTCALL
-IntIsChildWindow (PWINDOW_OBJECT Parent, PWINDOW_OBJECT Child);
+IntIsChildWindow (PWND Parent, PWND Child);
VOID FASTCALL
-IntUnlinkWindow(PWINDOW_OBJECT Wnd);
+IntUnlinkWindow(PWND Wnd);
VOID FASTCALL
-IntLinkWindow(PWINDOW_OBJECT Wnd, PWINDOW_OBJECT WndParent, PWINDOW_OBJECT WndPrevSibling);
-
-PWINDOW_OBJECT FASTCALL
-IntGetAncestor(PWINDOW_OBJECT Wnd, UINT Type);
+IntLinkWindow(PWND Wnd, PWND WndPrevSibling);
-PWINDOW_OBJECT FASTCALL
-IntGetParent(PWINDOW_OBJECT Wnd);
+VOID FASTCALL
+IntLinkHwnd(PWND Wnd, HWND hWndPrev);
-PWINDOW_OBJECT FASTCALL
-IntGetOwner(PWINDOW_OBJECT Wnd);
+PWND FASTCALL
+IntGetAncestor(PWND Wnd, UINT Type);
+PWND FASTCALL
+IntGetParent(PWND Wnd);
INT FASTCALL
-IntGetWindowRgn(PWINDOW_OBJECT Window, HRGN hRgn);
+IntGetWindowRgn(PWND Window, HRGN hRgn);
INT FASTCALL
-IntGetWindowRgnBox(PWINDOW_OBJECT Window, RECTL *Rect);
+IntGetWindowRgnBox(PWND Window, RECTL *Rect);
BOOL FASTCALL
-IntGetWindowInfo(PWINDOW_OBJECT WindowObject, PWINDOWINFO pwi);
+IntGetWindowInfo(PWND WindowObject, PWINDOWINFO pwi);
VOID FASTCALL
-IntGetWindowBorderMeasures(PWINDOW_OBJECT WindowObject, UINT *cx, UINT *cy);
+IntGetWindowBorderMeasures(PWND WindowObject, UINT *cx, UINT *cy);
BOOL FASTCALL
-IntAnyPopup(VOID);
+IntIsWindowInDestroy(PWND Window);
BOOL FASTCALL
-IntIsWindowInDestroy(PWINDOW_OBJECT Window);
-
-BOOL FASTCALL
-IntShowOwnedPopups( PWINDOW_OBJECT owner, BOOL fShow );
+IntShowOwnedPopups( PWND owner, BOOL fShow );
LRESULT FASTCALL
-IntDefWindowProc( PWINDOW_OBJECT Window, UINT Msg, WPARAM wParam, LPARAM lParam, BOOL Ansi);
+IntDefWindowProc( PWND Window, UINT Msg, WPARAM wParam, LPARAM lParam, BOOL Ansi);
-VOID FASTCALL IntNotifyWinEvent(DWORD, PWND, LONG, LONG);
+VOID FASTCALL IntNotifyWinEvent(DWORD, PWND, LONG, LONG, DWORD);
-PWND APIENTRY co_IntCreateWindowEx(DWORD,PUNICODE_STRING,PUNICODE_STRING,DWORD,LONG,LONG,LONG,LONG,HWND,HMENU,HINSTANCE,LPVOID,DWORD,BOOL);
+PWND FASTCALL co_UserCreateWindowEx(CREATESTRUCTW*, PUNICODE_STRING, PLARGE_STRING);
WNDPROC FASTCALL IntGetWindowProc(PWND,BOOL);
-#endif /* _WIN32K_WINDOW_H */
-
/* EOF */