dd49055606bb2dedea54abefe5e7dc683dafd6d2
[reactos.git] / win32ss / pch.h
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 */