bcc034e5296edd966e10a5119bd6a61d30c49856
[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 UNICODE_STRING lpszMenuName;
21 RTL_ATOM Atom;
22 HICON hIconSm;
23 BOOL Unicode;
24 BOOL Global;
25 LIST_ENTRY ListEntry; /* linked into owning process */
26 PCHAR ExtraData;
27 } WNDCLASS_OBJECT, *PWNDCLASS_OBJECT;
28
29 NTSTATUS FASTCALL
30 InitClassImpl(VOID);
31
32 NTSTATUS FASTCALL
33 CleanupClassImpl(VOID);
34
35 void FASTCALL DestroyProcessClasses(PW32PROCESS Process );
36
37 inline VOID FASTCALL
38 ClassDerefObject(PWNDCLASS_OBJECT Class);
39
40 inline VOID FASTCALL
41 ClassRefObject(PWNDCLASS_OBJECT Class);
42
43 PWNDCLASS_OBJECT FASTCALL
44 ClassGetClassByAtom(
45 RTL_ATOM Atom,
46 HINSTANCE hInstance);
47
48 PWNDCLASS_OBJECT FASTCALL
49 ClassGetClassByName(
50 LPCWSTR ClassName,
51 HINSTANCE hInstance);
52
53 PWNDCLASS_OBJECT FASTCALL
54 ClassGetClassByNameOrAtom(
55 LPCWSTR ClassNameOrAtom,
56 HINSTANCE hInstance);
57
58 struct _WINDOW_OBJECT;
59 ULONG FASTCALL
60 IntGetClassLong(struct _WINDOW_OBJECT *WindowObject, ULONG Offset, BOOL Ansi);
61
62 #endif /* _WIN32K_CLASS_H */
63
64 /* EOF */