[YAROTOWS] Reintegrate the branch. For a brighter future.
[reactos.git] / reactos / subsystems / win32 / win32k / include / window.h
index 46deb3f..39a55b2 100644 (file)
@@ -1,5 +1,4 @@
-#ifndef _WIN32K_WINDOW_H
-#define _WIN32K_WINDOW_H
+#pragma once
 
 struct _PROPERTY;
 struct _WINDOW_OBJECT;
@@ -14,68 +13,10 @@ typedef struct _WINDOW_OBJECT *PWINDOW_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)
-#define WINDOWOBJECT_NEED_ERASEBKGND      (0x00000002)
-#define WINDOWOBJECT_NEED_NCPAINT         (0x00000004)
-#define WINDOWOBJECT_NEED_INTERNALPAINT   (0x00000008)
-#define WINDOWOBJECT_RESTOREMAX           (0x00000020)
-
-#define WINDOWSTATUS_DESTROYING         (0x1)
-#define WINDOWSTATUS_DESTROYED          (0x2)
-
 #define HAS_DLGFRAME(Style, ExStyle) \
             (((ExStyle) & WS_EX_DLGMODALFRAME) || \
             (((Style) & WS_DLGFRAME) && (!((Style) & WS_THICKFRAME))))
@@ -88,28 +29,26 @@ typedef struct _WINDOW_OBJECT
             (((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);
@@ -118,60 +57,56 @@ NTSTATUS FASTCALL
 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);
-
-BOOL FASTCALL
-IntAnyPopup(VOID);
+IntGetWindowBorderMeasures(PWND WindowObject, UINT *cx, UINT *cy);
 
 BOOL FASTCALL
-IntIsWindowInDestroy(PWINDOW_OBJECT Window);
+IntIsWindowInDestroy(PWND 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);
-#endif /* _WIN32K_WINDOW_H */
+PWND FASTCALL co_UserCreateWindowEx(CREATESTRUCTW*, PUNICODE_STRING, PLARGE_STRING);
+WNDPROC FASTCALL IntGetWindowProc(PWND,BOOL);
 
 /* EOF */