xref: /reactos/sdk/include/psdk/rpc.h (revision 9393fc32)
1 
2 #if !defined( RPC_NO_WINDOWS_H ) && !defined( MAC ) && !defined( _MAC )
3 #ifndef _INC_WINDOWS
4 #include <windows.h>
5 #endif /* _INC_WINDOWS */
6 #endif
7 
8 #if defined(__USE_PSEH2__) && !defined(RC_INVOKED)
9 #include  <pseh/pseh2.h>
10 #endif
11 
12 #ifndef __RPC_H__
13 #define __RPC_H__
14 
15 #if _MSC_VER > 1000
16 #pragma once
17 #endif
18 
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
24 #if defined( MAC ) || defined( _MAC ) || defined(__powerpc__) && !defined(__REACTOS__)
25     #define __RPC_MAC__
26     #define __RPC_WIN32__
27     #include <pshpack2.h>
28 
29 #else
30     #if defined(_M_IA64) || defined(_M_AMD64) || defined(_WIN64)
31         #define __RPC_WIN64__
32     #else
33         #define __RPC_WIN32__
34     #endif
35 #endif
36 
37 #include <basetsd.h>
38 
39 #if defined(__RPC_WIN64__)
40     #include <pshpack8.h>
41 #endif
42 
43 #ifndef __MIDL_USER_DEFINED
44     #define midl_user_allocate MIDL_user_allocate
45     #define midl_user_free MIDL_user_free
46     #define __MIDL_USER_DEFINED
47 #endif
48 
49 
50 typedef void * I_RPC_HANDLE;
51 #ifndef __ROS_LONG64__
52 typedef long RPC_STATUS;
53 #else
54 typedef int RPC_STATUS;
55 #endif
56 #define __RPC_FAR
57 
58 #if defined(__RPC_WIN32__) || defined(__RPC_WIN64__)
59     #define RPC_UNICODE_SUPPORTED
60 #endif
61 
62 
63 #if !defined(__RPC_MAC__)
64     #define __RPC_API  __stdcall
65     #define __RPC_USER __stdcall
66     #define __RPC_STUB __stdcall
67     #define  RPC_ENTRY __stdcall
68 #else
69     #define __RPC_API
70     #define __RPC_USER
71     #define __RPC_STUB
72     #define RPC_ENTRY
73 #endif
74 
75 
76 #ifndef __GNUC__
77     #if !defined(DECLSPEC_IMPORT)
78             #define DECLSPEC_IMPORT
79     #endif
80 
81     #if !defined(_RPCRT4_)
82         #define RPCRTAPI DECLSPEC_IMPORT
83     #else
84         #define RPCRTAPI
85     #endif
86 
87     #if !defined(_RPCNS4_)
88         #define RPCNSAPI DECLSPEC_IMPORT
89     #else
90         #define RPCNSAPI
91     #endif
92 #else
93     #define RPCRTAPI
94     #define RPCNSAPI
95 #endif
96 
97 #ifdef __RPC_MAC__
98     #include <setjmp.h>
99     #define RPCXCWORD (sizeof(jmp_buf)/sizeof(int))
100 
101     #pragma warning(push)
102     #pragma warning( disable: 4005 )
103     #include <rpcdce.h>
104     #include <rpcnsi.h>
105     #include <rpcerr.h>
106     #include <rpcmac.h>
107     #pragma warning(pop)
108 
109     typedef void  (RPC_ENTRY *MACYIELDCALLBACK)(short *) ;
110     RPC_STATUS RPC_ENTRY
111     RpcMacSetYieldInfo(MACYIELDCALLBACK pfnCallback) ;
112 
113     #if !defined(UNALIGNED)
114         #define UNALIGNED
115     #endif
116 
117     #include <poppack.h>
118 #else
119     #include <rpcdce.h>
120     /* #include <rpcnsi.h> */
121     #include <rpcnterr.h>
122     #include <excpt.h>
123     #include <winerror.h>
124 
125     #ifndef __USE_PSEH2__
126         #define RpcTryExcept __try {
127         #define RpcExcept(expr) } __except (expr) {
128         #define RpcEndExcept }
129         #define RpcTryFinally __try {
130         #define RpcFinally } __finally {
131         #define RpcEndFinally }
132         #define RpcExceptionCode() GetExceptionCode()
133         #define RpcAbnormalTermination() AbnormalTermination()
134     #else
135         #define RpcTryExcept _SEH2_TRY
136         #define RpcExcept(expr) _SEH2_EXCEPT((expr))
137         #define RpcEndExcept _SEH2_END;
138         #define RpcTryFinally _SEH2_TRY
139         #define RpcFinally _SEH2_FINALLY
140         #define RpcEndFinally _SEH2_END;
141         #define RpcExceptionCode() _SEH2_GetExceptionCode()
142         #define RpcAbnormalTermination() (_SEH2_GetExceptionCode() != 0)
143     #endif
144 #endif
145 
146 #if defined(__RPC_WIN64__)
147     #include <poppack.h>
148 #endif
149 
150 #ifndef RPC_NO_WINDOWS_H
151 #include <rpcasync.h>
152 #endif
153 
154 #ifdef __cplusplus
155 }
156 #endif
157 
158 #endif
159 
160 
161