[BROWSEUI] SHExplorerParseCmdLine: Fix parsing of /root (#6752)
[reactos.git] / win32ss / pch.h
index 3d13221..dd49055 100644 (file)
@@ -1,5 +1,3 @@
-#ifndef __W32K_H
-#define __W32K_H
 /*
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS Win32k subsystem
@@ -8,38 +6,43 @@
  * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
  */
 
+#ifndef __W32K_H
+#define __W32K_H
+
 /* INCLUDES ******************************************************************/
 
 #define _NO_COM
 #define STRICT
 
-/* DDK/NDK/SDK headers */
+/* C headers */
+#include <stdarg.h>
+#define _USE_MATH_DEFINES
+#include <math.h>
+#include <intrin.h>
+
+/* DDK headers */
 #undef NTDDI_VERSION
 #define NTDDI_VERSION NTDDI_WS03SP1
 #include <ntifs.h>
+#include <ntddkbd.h>
 #include <ntddmou.h>
-#include <ndk/exfuncs.h>
-#include <ndk/kdfuncs.h>
-#include <ndk/kefuncs.h>
-#include <ndk/mmfuncs.h>
-#include <ndk/obfuncs.h>
-#include <ndk/psfuncs.h>
-#include <ndk/rtlfuncs.h>
+#include <ntddvdeo.h>
 #include <ntstrsafe.h>
-#include <ntddkbd.h>
+#include <ntintsafe.h>
 
-/* Win32 headers */
+/* Win32 PSDK headers */
 /* FIXME: Defines in winbase.h that we need... */
 typedef struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
 #define MAKEINTATOM(i) (LPWSTR)((ULONG_PTR)((WORD)(i)))
 #define WINBASEAPI
+#define STARTF_USESHOWWINDOW 1
 #define STARTF_USESIZE 2
 #define STARTF_USEPOSITION 4
-#include <stdarg.h>
 #include <windef.h>
-#define _USE_MATH_DEFINES
-#include <math.h>
-#include <intrin.h>
+
+// Needed because windef.h messes up CDECL for whatever
+#undef CDECL
+#define CDECL __cdecl
 
 /* Avoid type casting, by defining RECT to RECTL */
 #define RECT RECTL
@@ -52,25 +55,54 @@ typedef struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
 
 #include <winerror.h>
 #include <wingdi.h>
-#define NT_BUILD_ENVIRONMENT
 #define _ENGINE_EXPORT_
 #include <winddi.h>
+#define OEMRESOURCE
 #include <winuser.h>
+#include <ndk/rtltypes.h>
 #include <prntfont.h>
 #define _NOCSECT_TYPE
 #include <ddrawi.h>
+#include <imm.h>
+#include <immdev.h>
+#include <imm32_undoc.h>
+#include <dbt.h>
+
+/* NDK headers */
+#include <ndk/exfuncs.h>
+#include <ndk/iofuncs.h>
+#include <ndk/kdfuncs.h>
+#include <ndk/kefuncs.h>
+#include <ndk/mmfuncs.h>
+#include <ndk/obfuncs.h>
+#include <ndk/psfuncs.h>
+#include <ndk/sefuncs.h>
+#include <ndk/rtlfuncs.h>
 
 /* SEH support with PSEH */
 #include <pseh/pseh2.h>
 
+/* The native x64 definition of FLOATOBJ_GetFloat in winddi.h is retarded. Use this instead. */
+#ifndef _M_IX86
+#undef FLOATOBJ_GetFloat
+#define FLOATOBJ_GetFloat(pf) (*(pf))
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* Public Win32K headers */
-#include <include/callback.h>
-#include <include/ntusrtyp.h>
-#include <include/ntuser.h>
 #include <include/ntgdityp.h>
-#include <include/ntgdibad.h>
-#include <include/ntgdihdl.h>
 #include <ntgdi.h>
+#include <include/ntgdihdl.h>
+#include <include/ntgdibad.h>
+
+#ifndef __cplusplus
+#include <include/ntusrtyp.h>
+#include <include/ntuser.h>
+#include <include/callback.h>
+#endif // __cplusplus
 
 /* Undocumented user definitions */
 #include <undocuser.h>
@@ -79,7 +111,14 @@ typedef struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
 #include <ft2build.h>
 #include FT_FREETYPE_H
 
+#define InterlockedIncrementUL(Value) (ULONG)InterlockedIncrement((PLONG)(Value))
+#define InterlockedDecrementUL(Value) (ULONG)InterlockedDecrement((PLONG)(Value))
+
 /* Internal Win32K header */
 #include "win32kp.h"
 
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
 #endif /* __W32K_H */