xref: /reactos/win32ss/pch.h (revision 9ecf552f)
1 /*
2  * COPYRIGHT:       See COPYING in the top level directory
3  * PROJECT:         ReactOS Win32k subsystem
4  * FILE:            win32ss/pch.h
5  * PURPOSE:         Main Win32K Header
6  * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
7  */
8 
9 #ifndef __W32K_H
10 #define __W32K_H
11 
12 /* INCLUDES ******************************************************************/
13 
14 #define _NO_COM
15 #define STRICT
16 
17 /* C headers */
18 #include <stdarg.h>
19 #define _USE_MATH_DEFINES
20 #include <math.h>
21 #include <intrin.h>
22 
23 /* DDK headers */
24 #undef NTDDI_VERSION
25 #define NTDDI_VERSION NTDDI_WS03SP1
26 #include <ntifs.h>
27 #include <ntddkbd.h>
28 #include <ntddmou.h>
29 #include <ntddvdeo.h>
30 #include <ntstrsafe.h>
31 #include <ntintsafe.h>
32 
33 /* Win32 PSDK headers */
34 /* FIXME: Defines in winbase.h that we need... */
35 typedef struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
36 #define MAKEINTATOM(i) (LPWSTR)((ULONG_PTR)((WORD)(i)))
37 #define WINBASEAPI
38 #define STARTF_USESHOWWINDOW 1
39 #define STARTF_USESIZE 2
40 #define STARTF_USEPOSITION 4
41 #include <windef.h>
42 
43 // Needed because windef.h messes up CDECL for whatever
44 #undef CDECL
45 #define CDECL __cdecl
46 
47 /* Avoid type casting, by defining RECT to RECTL */
48 #define RECT RECTL
49 #define PRECT PRECTL
50 #define LPRECT LPRECTL
51 #define LPCRECT LPCRECTL
52 #define POINT POINTL
53 #define LPPOINT PPOINTL
54 #define PPOINT PPOINTL
55 
56 #include <winerror.h>
57 #include <wingdi.h>
58 #define _ENGINE_EXPORT_
59 #include <winddi.h>
60 #define OEMRESOURCE
61 #include <winuser.h>
62 #include <prntfont.h>
63 #define _NOCSECT_TYPE
64 #include <ddrawi.h>
65 #include <imm.h>
66 #include <dbt.h>
67 
68 /* NDK headers */
69 #include <ndk/exfuncs.h>
70 #include <ndk/iofuncs.h>
71 #include <ndk/kdfuncs.h>
72 #include <ndk/kefuncs.h>
73 #include <ndk/mmfuncs.h>
74 #include <ndk/obfuncs.h>
75 #include <ndk/psfuncs.h>
76 #include <ndk/sefuncs.h>
77 #include <ndk/rtlfuncs.h>
78 
79 /* SEH support with PSEH */
80 #include <pseh/pseh2.h>
81 
82 /* The native x64 definition of FLOATOBJ_GetFloat in winddi.h is retarded. Use this instead. */
83 #ifndef _M_IX86
84 #undef FLOATOBJ_GetFloat
85 #define FLOATOBJ_GetFloat(pf) (*(pf))
86 #endif
87 
88 #ifdef __cplusplus
89 extern "C" {
90 #endif
91 
92 /* Public Win32K headers */
93 #include <include/ntgdityp.h>
94 #include <ntgdi.h>
95 #include <include/ntgdihdl.h>
96 #include <include/ntgdibad.h>
97 
98 #ifndef __cplusplus
99 #include <include/ntusrtyp.h>
100 #include <include/ntuser.h>
101 #include <include/callback.h>
102 #endif // __cplusplus
103 
104 /* Undocumented user definitions */
105 #include <undocuser.h>
106 
107 /* Freetype headers */
108 #include <ft2build.h>
109 #include FT_FREETYPE_H
110 
111 #define InterlockedIncrementUL(Value) (ULONG)InterlockedIncrement((PLONG)(Value))
112 #define InterlockedDecrementUL(Value) (ULONG)InterlockedDecrement((PLONG)(Value))
113 
114 /* Internal Win32K header */
115 #include "win32kp.h"
116 
117 #ifdef __cplusplus
118 } /* extern "C" */
119 #endif
120 
121 #endif /* __W32K_H */
122