- Fix incompatible IO_STACK_LOCATION definition in W32api ddk/winddk.k
[reactos.git] / reactos / w32api / include / rpc.h
1 #ifndef RPC_NO_WINDOWS_H
2 #include <windows.h>
3 #endif
4
5 #ifndef _RPC_H
6 #define _RPC_H
7 #if __GNUC__ >=3
8 #pragma GCC system_header
9 #endif
10
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 #define __RPC_WIN32__
15 #ifndef _WIN95
16 #define __RPC_NT__
17 #define RPC_UNICODE_SUPPORTED
18 #endif
19
20 #ifdef _RPCRT4_
21 #define RPCRTAPI DECLSPEC_EXPORT
22 #else
23 #define RPCRTAPI DECLSPEC_IMPORT
24 #endif
25
26 #ifndef __MIDL_USER_DEFINED
27 #define midl_user_allocate MIDL_user_allocate
28 #define midl_user_free MIDL_user_free
29 #define __MIDL_USER_DEFINED
30 #endif
31 #define RPC_UNICODE_SUPPORTED
32 #define __RPC_FAR
33 #define __RPC_API __stdcall
34 #define __RPC_USER __stdcall
35 #define __RPC_STUB __stdcall
36 #define RPC_ENTRY __stdcall
37 typedef void *I_RPC_HANDLE;
38 typedef long RPC_STATUS;
39
40 #include <rpcdce.h>
41 #include <rpcnsi.h>
42 #include <rpcnterr.h>
43
44 #include <winerror.h>
45
46 /* SEH is not supported */
47 #if 0
48 #include <excpt.h>
49 #define RpcTryExcept __try {
50 #define RpcExcept(x) } __except (x) {
51 #define RpcEndExcept }
52 #define RpcTryFinally __try {
53 #define RpcFinally } __finally {
54 #define RpcEndFinally }
55 #define RpcExceptionCode() GetExceptionCode()
56 #define RpcAbnormalTermination() AbnormalTermination()
57 #else
58 #define RpcTryExcept if (1) {
59 #define RpcExcept(x) } else {
60 #define RpcEndExcept }
61 #define RpcTryFinally if (1) {
62 #define RpcFinally } if (1) {
63 #define RpcEndFinally }
64 #define RpcExceptionCode() 0
65 #define RpcAbnormalTermination() AbnormalTermination()
66 #endif /* 0 */
67
68 RPC_STATUS RPC_ENTRY RpcImpersonateClient(RPC_BINDING_HANDLE);
69 RPC_STATUS RPC_ENTRY RpcRevertToSelf(void);
70 long RPC_ENTRY I_RpcMapWin32Status(RPC_STATUS);
71 #ifdef __cplusplus
72 }
73 #endif
74 #endif