xref: /reactos/win32ss/pch.h (revision 0c2cdcae)
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 <ndk/rtltypes.h>
63 #include <prntfont.h>
64 #define _NOCSECT_TYPE
65 #include <ddrawi.h>
66 #include <imm.h>
67 #include <immdev.h>
68 #include <imm32_undoc.h>
69 #include <dbt.h>
70 
71 /* NDK headers */
72 #include <ndk/exfuncs.h>
73 #include <ndk/iofuncs.h>
74 #include <ndk/kdfuncs.h>
75 #include <ndk/kefuncs.h>
76 #include <ndk/mmfuncs.h>
77 #include <ndk/obfuncs.h>
78 #include <ndk/psfuncs.h>
79 #include <ndk/sefuncs.h>
80 #include <ndk/rtlfuncs.h>
81 
82 /* SEH support with PSEH */
83 #include <pseh/pseh2.h>
84 
85 /* The native x64 definition of FLOATOBJ_GetFloat in winddi.h is retarded. Use this instead. */
86 #ifndef _M_IX86
87 #undef FLOATOBJ_GetFloat
88 #define FLOATOBJ_GetFloat(pf) (*(pf))
89 #endif
90 
91 #ifdef __cplusplus
92 extern "C" {
93 #endif
94 
95 /* Public Win32K headers */
96 #include <include/ntgdityp.h>
97 #include <ntgdi.h>
98 #include <include/ntgdihdl.h>
99 #include <include/ntgdibad.h>
100 
101 #ifndef __cplusplus
102 #include <include/ntusrtyp.h>
103 #include <include/ntuser.h>
104 #include <include/callback.h>
105 #endif // __cplusplus
106 
107 /* Undocumented user definitions */
108 #include <undocuser.h>
109 
110 /* Freetype headers */
111 #include <ft2build.h>
112 #include FT_FREETYPE_H
113 
114 #define InterlockedIncrementUL(Value) (ULONG)InterlockedIncrement((PLONG)(Value))
115 #define InterlockedDecrementUL(Value) (ULONG)InterlockedDecrement((PLONG)(Value))
116 
117 /* Internal Win32K header */
118 #include "win32kp.h"
119 
120 #ifdef __cplusplus
121 } /* extern "C" */
122 #endif
123 
124 #endif /* __W32K_H */
125