[WIN32K]
[reactos.git] / reactos / subsystems / win32 / win32k / include / class.h
1 #pragma once
2
3 #define IS_ATOM(x) \
4 (((ULONG_PTR)(x) > 0x0) && ((ULONG_PTR)(x) < 0x10000))
5
6 typedef struct _WNDPROC_INFO
7 {
8 WNDPROC WindowProc;
9 BOOL IsUnicode;
10 } WNDPROC_INFO, *PWNDPROC_INFO;
11
12 static __inline BOOL
13 IsCallProcHandle(IN WNDPROC lpWndProc)
14 {
15 /* FIXME: Check for 64-bit architectures... */
16 return ((ULONG_PTR)lpWndProc & 0xFFFF0000) == 0xFFFF0000;
17 }
18
19 VOID
20 DestroyCallProc(IN PDESKTOPINFO Desktop,
21 IN OUT PCALLPROCDATA CallProc);
22
23 PCALLPROCDATA
24 CreateCallProc(IN PDESKTOP Desktop,
25 IN WNDPROC WndProc,
26 IN BOOL Unicode,
27 IN PPROCESSINFO pi);
28
29 BOOL
30 UserGetCallProcInfo(IN HANDLE hCallProc,
31 OUT PWNDPROC_INFO wpInfo);
32
33 void FASTCALL
34 DestroyProcessClasses(PPROCESSINFO Process );
35
36 VOID
37 IntDereferenceClass(IN OUT PCLS Class,
38 IN PDESKTOPINFO Desktop,
39 IN PPROCESSINFO pi);
40
41 PCLS
42 IntGetAndReferenceClass(PUNICODE_STRING ClassName, HINSTANCE hInstance);
43
44 BOOL FASTCALL UserRegisterSystemClasses(VOID);
45
46 VOID
47 UserAddCallProcToClass(IN OUT PCLS Class,
48 IN PCALLPROCDATA CallProc);
49
50 BOOL
51 IntGetAtomFromStringOrAtom(IN PUNICODE_STRING ClassName,
52 OUT RTL_ATOM *Atom);
53
54 BOOL
55 IntCheckProcessDesktopClasses(IN PDESKTOP Desktop,
56 IN BOOL FreeOnFailure);
57
58 ULONG_PTR FASTCALL UserGetCPD(PVOID,GETCPD,ULONG_PTR);
59
60 /* EOF */