1 #ifndef __WIN32K_WINDOW_H
2 #define __WIN32K_WINDOW_H
6 #include <include/class.h>
7 #include <include/msgqueue.h>
9 typedef struct _INTERNALPOS
15 } INTERNALPOS
, *PINTERNALPOS
;
17 typedef struct _WINDOW_OBJECT
19 /* Internal position. */
20 PINTERNALPOS InternalPos
;
21 /* Pointer to the window class. */
22 PWNDCLASS_OBJECT Class
;
26 UNICODE_STRING WindowName
;
29 /* Initial window position. */
34 /* Parent window handle. */
36 /* Window menu handle. */
38 /* Handle of the module that created the window. */
42 /* Entry in the thread's list of windows. */
44 /* Entry in the global list of windows. */
45 LIST_ENTRY DesktopListEntry
;
46 /* Pointer to the extra data associated with the window. */
48 /* Size of the extra data associated with the window. */
50 /* Position of the window. */
52 /* Position of the window's client area. */
54 /* Handle for the window. */
58 /* FIXME: Don't know. */
60 /* Handle of region of the window to be updated. */
62 /* Pointer to the message queue associated with the window. */
63 PUSER_MESSAGE_QUEUE MessageQueue
;
64 /* Head of the list of child windows. */
65 LIST_ENTRY ChildrenListHead
;
66 /* Lock for the list of child windows. */
67 FAST_MUTEX ChildrenListLock
;
68 /* Entry in the parent's list of child windows. */
69 LIST_ENTRY SiblingListEntry
;
70 /* Entry in the list of thread windows. */
71 LIST_ENTRY ThreadListEntry
;
72 /* Pointer to the parent window. */
73 struct _WINDOW_OBJECT
* Parent
;
74 } WINDOW_OBJECT
, *PWINDOW_OBJECT
;
77 #define WINDOWOBJECT_NEED_SIZE (0x00000001)
78 #define WINDOWOBJECT_NEED_BEGINPAINT (0x00000002)
79 #define WINDOWOBJECT_NEED_ERASEBACKGRD (0x00000004)
80 #define WINDOWOBJECT_NEED_NCPAINT (0x00000008)
81 #define WINDOWOBJECT_NEED_INTERNALPAINT (0x00000010)
82 #define WINDOWOBJECT_RESTOREMAX (0x00000020)
87 CleanupWindowImpl(VOID
);
89 W32kGetClientRect(PWINDOW_OBJECT WindowObject
, PRECT Rect
);
91 W32kGetWindowObject(HWND hWnd
);
93 W32kReleaseWindowObject(PWINDOW_OBJECT Window
);
95 #endif /* __WIN32K_WINDOW_H */