1 #ifndef __WIN32K_WINDOW_H
2 #define __WIN32K_WINDOW_H
6 #include <include/class.h>
7 #include <include/msgqueue.h>
8 #include <include/winsta.h>
9 #include <include/dce.h>
11 typedef struct _PROPERTY
13 LIST_ENTRY PropListEntry;
16 } PROPERTY, *PPROPERTY;
19 WinPosSetupInternalPos(VOID);
21 typedef struct _WINDOW_OBJECT
23 /* Pointer to the window class. */
24 PWNDCLASS_OBJECT Class;
28 UNICODE_STRING WindowName;
31 /* Initial window position. */
36 /* Parent window handle. */
38 /* Window menu handle. */
40 /* Handle of the module that created the window. */
44 /* Entry in the thread's list of windows. */
46 /* Entry in the global list of windows. */
47 LIST_ENTRY DesktopListEntry;
48 /* Pointer to the extra data associated with the window. */
50 /* Size of the extra data associated with the window. */
52 /* Position of the window. */
54 /* Position of the window's client area. */
56 /* Handle for the window. */
60 /* FIXME: Don't know. */
62 /* Handle of region of the window to be updated. */
64 /* Pointer to the message queue associated with the window. */
65 PUSER_MESSAGE_QUEUE MessageQueue;
66 /* Head of the list of child windows. */
67 LIST_ENTRY ChildrenListHead;
68 /* Lock for the list of child windows. */
69 FAST_MUTEX ChildrenListLock;
70 /* Entry in the parent's list of child windows. */
71 LIST_ENTRY SiblingListEntry;
72 /* Entry in the list of thread windows. */
73 LIST_ENTRY ThreadListEntry;
74 /* Pointer to the parent window. */
75 struct _WINDOW_OBJECT* Parent;
76 /* DC Entries (DCE) */
78 /* Property list head.*/
79 LIST_ENTRY PropListHead;
81 PSCROLLBARINFO pHScroll;
82 PSCROLLBARINFO pVScroll;
83 PSCROLLBARINFO wExtra;
84 } WINDOW_OBJECT, *PWINDOW_OBJECT;
87 #define WINDOWOBJECT_NEED_SIZE (0x00000001)
88 #define WINDOWOBJECT_NEED_BEGINPAINT (0x00000002)
89 #define WINDOWOBJECT_NEED_ERASEBACKGRD (0x00000004)
90 #define WINDOWOBJECT_NEED_NCPAINT (0x00000008)
91 #define WINDOWOBJECT_NEED_INTERNALPAINT (0x00000010)
92 #define WINDOWOBJECT_RESTOREMAX (0x00000020)
97 CleanupWindowImpl(VOID);
99 W32kGetClientRect(PWINDOW_OBJECT WindowObject, PRECT Rect);
101 W32kGetWindowObject(HWND hWnd);
103 W32kReleaseWindowObject(PWINDOW_OBJECT Window);
105 W32kCreateDesktopWindow(PWINSTATION_OBJECT WindowStation,
106 PWNDCLASS_OBJECT DesktopClass,
107 ULONG Width, ULONG Height);
109 W32kIsDesktopWindow(HWND hWnd);
111 W32kGetActiveWindow(VOID);
113 W32kIsWindowVisible(HWND Wnd);
115 W32kIsChildWindow(HWND Parent, HWND Child);
116 HWND W32kGetDesktopWindow();
118 #endif /* __WIN32K_WINDOW_H */