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>
10 typedef struct _INTERNALPOS
16 } INTERNALPOS
, *PINTERNALPOS
;
18 typedef struct _WINDOW_OBJECT
20 /* Internal position. */
21 PINTERNALPOS InternalPos
;
22 /* Pointer to the window class. */
23 PWNDCLASS_OBJECT Class
;
27 UNICODE_STRING WindowName
;
30 /* Initial window position. */
35 /* Parent window handle. */
37 /* Window menu handle. */
39 /* Handle of the module that created the window. */
43 /* Entry in the thread's list of windows. */
45 /* Entry in the global list of windows. */
46 LIST_ENTRY DesktopListEntry
;
47 /* Pointer to the extra data associated with the window. */
49 /* Size of the extra data associated with the window. */
51 /* Position of the window. */
53 /* Position of the window's client area. */
55 /* Handle for the window. */
59 /* FIXME: Don't know. */
61 /* Handle of region of the window to be updated. */
63 /* Pointer to the message queue associated with the window. */
64 PUSER_MESSAGE_QUEUE MessageQueue
;
65 /* Head of the list of child windows. */
66 LIST_ENTRY ChildrenListHead
;
67 /* Lock for the list of child windows. */
68 FAST_MUTEX ChildrenListLock
;
69 /* Entry in the parent's list of child windows. */
70 LIST_ENTRY SiblingListEntry
;
71 /* Entry in the list of thread windows. */
72 LIST_ENTRY ThreadListEntry
;
73 /* Pointer to the parent window. */
74 struct _WINDOW_OBJECT
* Parent
;
75 } WINDOW_OBJECT
, *PWINDOW_OBJECT
;
78 #define WINDOWOBJECT_NEED_SIZE (0x00000001)
79 #define WINDOWOBJECT_NEED_BEGINPAINT (0x00000002)
80 #define WINDOWOBJECT_NEED_ERASEBACKGRD (0x00000004)
81 #define WINDOWOBJECT_NEED_NCPAINT (0x00000008)
82 #define WINDOWOBJECT_NEED_INTERNALPAINT (0x00000010)
83 #define WINDOWOBJECT_RESTOREMAX (0x00000020)
88 CleanupWindowImpl(VOID
);
90 W32kGetClientRect(PWINDOW_OBJECT WindowObject
, PRECT Rect
);
92 W32kGetWindowObject(HWND hWnd
);
94 W32kReleaseWindowObject(PWINDOW_OBJECT Window
);
96 W32kCreateDesktopWindow(PWINSTATION_OBJECT WindowStation
,
97 PWNDCLASS_OBJECT DesktopClass
,
98 ULONG Width
, ULONG Height
);
100 W32kIsDesktopWindow(HWND hWnd
);
102 W32kGetActiveWindow(VOID
);
104 W32kIsWindowVisible(HWND Wnd
);
106 W32kIsChildWindow(HWND Parent
, HWND Child
);
108 #endif /* __WIN32K_WINDOW_H */