[WIN32SS][FONT] Fix font metrics (#713)
[reactos.git] / win32ss / user / ntuser / 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 BOOLEAN
20 DestroyCallProc(_Inout_ PVOID Object);
21
22 PCALLPROCDATA
23 CreateCallProc(IN PDESKTOP Desktop,
24 IN WNDPROC WndProc,
25 IN BOOL Unicode,
26 IN PPROCESSINFO pi);
27
28 BOOL
29 UserGetCallProcInfo(IN HANDLE hCallProc,
30 OUT PWNDPROC_INFO wpInfo);
31
32 void FASTCALL
33 DestroyProcessClasses(PPROCESSINFO Process );
34
35 VOID
36 IntDereferenceClass(IN OUT PCLS Class,
37 IN PDESKTOPINFO Desktop,
38 IN PPROCESSINFO pi);
39
40 PCLS
41 IntGetAndReferenceClass(PUNICODE_STRING ClassName, HINSTANCE hInstance, BOOL bDesktopThread);
42
43 BOOL FASTCALL UserRegisterSystemClasses(VOID);
44
45 VOID
46 UserAddCallProcToClass(IN OUT PCLS Class,
47 IN PCALLPROCDATA CallProc);
48
49 _Success_(return)
50 BOOL
51 NTAPI
52 IntGetAtomFromStringOrAtom(
53 _In_ PUNICODE_STRING ClassName,
54 _Out_ RTL_ATOM *Atom);
55
56 BOOL
57 IntCheckProcessDesktopClasses(IN PDESKTOP Desktop,
58 IN BOOL FreeOnFailure);
59
60 ULONG_PTR FASTCALL UserGetCPD(PVOID,GETCPD,ULONG_PTR);
61
62 _Must_inspect_result_
63 NTSTATUS
64 NTAPI
65 ProbeAndCaptureUnicodeStringOrAtom(
66 _Out_ _When_(return>=0, _At_(pustrOut->Buffer, _Post_ _Notnull_)) PUNICODE_STRING pustrOut,
67 __in_data_source(USER_MODE) _In_ PUNICODE_STRING pustrUnsafe);
68
69 /* EOF */