fix bug 838 (Sol.exe is missing it's menubar)
[reactos.git] / reactos / subsys / win32k / include / class.h
1 #ifndef _WIN32K_CLASS_H
2 #define _WIN32K_CLASS_H
3
4 #define IS_ATOM(x) \
5 (((ULONG_PTR)(x) > 0x0) && ((ULONG_PTR)(x) < 0x10000))
6
7 typedef struct _WNDCLASS_OBJECT
8 {
9 UINT cbSize;
10 LONG refs; /* windows using this class (is 0 after class creation) */
11 UINT style;
12 WNDPROC lpfnWndProcA;
13 WNDPROC lpfnWndProcW;
14 int cbClsExtra;
15 int cbWndExtra;
16 HANDLE hInstance;
17 HICON hIcon;
18 HCURSOR hCursor;
19 HBRUSH hbrBackground;
20 HMENU hMenu;
21 UNICODE_STRING lpszMenuName;
22 RTL_ATOM Atom;
23 HICON hIconSm;
24 BOOL Unicode;
25 BOOL Global;
26 LIST_ENTRY ListEntry; /* linked into owning process */
27 PCHAR ExtraData;
28 } WNDCLASS_OBJECT, *PWNDCLASS_OBJECT;
29
30 NTSTATUS FASTCALL
31 InitClassImpl(VOID);
32
33 NTSTATUS FASTCALL
34 CleanupClassImpl(VOID);
35
36 void FASTCALL DestroyProcessClasses(PW32PROCESS Process );
37
38 inline VOID FASTCALL
39 ClassDerefObject(PWNDCLASS_OBJECT Class);
40
41 inline VOID FASTCALL
42 ClassRefObject(PWNDCLASS_OBJECT Class);
43
44 PWNDCLASS_OBJECT FASTCALL
45 ClassGetClassByAtom(
46 RTL_ATOM Atom,
47 HINSTANCE hInstance);
48
49 PWNDCLASS_OBJECT FASTCALL
50 ClassGetClassByName(
51 LPCWSTR ClassName,
52 HINSTANCE hInstance);
53
54 PWNDCLASS_OBJECT FASTCALL
55 ClassGetClassByNameOrAtom(
56 LPCWSTR ClassNameOrAtom,
57 HINSTANCE hInstance);
58
59 struct _WINDOW_OBJECT;
60 ULONG FASTCALL
61 IntGetClassLong(struct _WINDOW_OBJECT *WindowObject, ULONG Offset, BOOL Ansi);
62
63 #endif /* _WIN32K_CLASS_H */
64
65 /* EOF */