Fixes for building with __MINGW32_VERSION 2.1
[reactos.git] / os2 / include / ros2.h
1 /* $ $
2 */
3 /*
4 *
5 * COPYRIGHT: See COPYING in the top level directory
6 * PROJECT: ReactOS OS/2 sub system
7 * FILE: dll/doscalls.c
8 * PURPOSE: supportheader for Kernelservices.
9 * Use this file if your dll or application
10 * is going to use both, the os2 base services
11 * as well as the native API of NTDLL.DLL
12 * PROGRAMMER: Robert K. nonvolatil@yahoo.de
13 * REVISION HISTORY:
14 * 1-08-2002 Created
15 */
16
17 /* How to use:
18 History got us another time. If you want to write a module
19 that uses either native-api or os2-services...no problem.
20 But if you want to use both of them you run into type conflicts.
21 BOOL is not very surprising. But there are many other types
22 whose names are equal. This results from the fact that NT
23 should originally become OS/2 3.0.
24 So your solution lies in including this file instead of os2.h
25 and ntddk.h. What this file here does is, it puts the os2-types+
26 functions into the namespace OS2 while the nt-types+functions are
27 put into the namespace NT. The still conflicting #defines are handled
28 like this: If ntddk.h defintes a symbol FOO and os2.h does the same,
29 this file here undefines the ntddk.h-one and renames it to NT_FOO.
30 This is only done for conflicting symbols. Of course, this ist a
31 source for errors. But is there a better solution than renaming
32 all of the symbols?
33 */
34
35 namespace NT
36 {
37 #include <ddk/ntddk.h>
38 }
39
40
41 /* rename all the symbols */
42 #define NT_FILE_CREATE FILE_CREATE
43 #undef FILE_CREATE
44 #define NT_CREATE_SUSPENDED CREATE_SUSPENDED
45 #undef CREATE_SUSPENDED
46
47 namespace OS2
48 {
49 #include "os2.h"
50 }
51
52 using namespace OS2;