update for HEAD-2003091401
[reactos.git] / subsys / win32k / include / class.h
1 #ifndef __WIN32K_CLASS_H
2 #define __WIN32K_CLASS_H
3
4 #include <windows.h>
5 #include <ddk/ntddk.h>
6 #include <napi/win32.h>
7
8 #define IS_ATOM(x) \
9   (((ULONG_PTR)(x) > 0x0) && ((ULONG_PTR)(x) < 0x10000))
10
11 typedef struct _WNDCLASS_OBJECT
12 {
13   UINT    cbSize;
14   UINT    style;
15   WNDPROC lpfnWndProcA;
16   WNDPROC lpfnWndProcW;
17   int     cbClsExtra;
18   int     cbWndExtra;
19   HANDLE  hInstance;
20   HICON   hIcon;
21   HCURSOR hCursor;
22   HBRUSH  hbrBackground;
23   PUNICODE_STRING lpszMenuName;
24   PUNICODE_STRING lpszClassName;
25   HICON   hIconSm;
26   BOOL Unicode;
27   LIST_ENTRY ListEntry;
28 } WNDCLASS_OBJECT, *PWNDCLASS_OBJECT;
29
30 NTSTATUS FASTCALL
31 InitClassImpl(VOID);
32
33 NTSTATUS FASTCALL
34 CleanupClassImpl(VOID);
35
36 NTSTATUS STDCALL
37 ClassReferenceClassByName(PWNDCLASS_OBJECT *Class,
38                           LPWSTR ClassName);
39
40 NTSTATUS FASTCALL
41 ClassReferenceClassByAtom(PWNDCLASS_OBJECT *Class,
42                           RTL_ATOM ClassAtom);
43
44 NTSTATUS FASTCALL
45 ClassReferenceClassByNameOrAtom(PWNDCLASS_OBJECT *Class,
46                                 LPWSTR ClassNameOrAtom);
47 PWNDCLASS_OBJECT FASTCALL
48 IntCreateClass(CONST WNDCLASSEXW *lpwcx,
49                 BOOL bUnicodeClass,
50                 RTL_ATOM Atom);
51 struct _WINDOW_OBJECT;
52 ULONG FASTCALL
53 IntGetClassLong(struct _WINDOW_OBJECT *WindowObject, ULONG Offset, BOOL Ansi);
54
55 #endif /* __WIN32K_CLASS_H */
56
57 /* EOF */