• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 
7 /* Make sure we have internals defined.  */
8 #include <_mingw.h>
9 
10 #ifndef __OBJC__
11 #undef interface
12 #define interface struct
13 #endif
14 
15 #ifndef RPC_NO_WINDOWS_H
16 #include <windows.h>
17 #endif
18 
19 #ifndef __RPC_H__
20 #define __RPC_H__
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
26 #include <basetsd.h>
27 
28 #if defined(__ia64__) || defined(__x86_64)
29 #define __RPC_WIN64__
30 #else
31 #if !defined (_ARM_)
32 #define __RPC_WIN32__
33 #else
34 #define __RPC_ARM32__
35 #endif
36 #endif
37 
38 #ifdef __RPC_WIN64__
39 #include <pshpack8.h>
40 #endif
41 
42 #ifndef __MIDL_USER_DEFINED
43 #define __MIDL_USER_DEFINED
44 #define midl_user_allocate MIDL_user_allocate
45 #define midl_user_free MIDL_user_free
46 #endif
47 
48   typedef void *I_RPC_HANDLE;
49   typedef __LONG32 RPC_STATUS;
50 
51 #define RPC_UNICODE_SUPPORTED
52 #define __RPC_FAR
53 #if defined(_ARM_)
54 #define __RPC_API
55 #else
56 #define __RPC_API __stdcall
57 #endif
58 #define __RPC_USER __RPC_API
59 #define __RPC_STUB __RPC_API
60 #define RPC_ENTRY __RPC_API
61 
62 #ifndef DECLSPEC_IMPORT
63 #ifndef __WIDL__
64 #define DECLSPEC_IMPORT __declspec(dllimport)
65 #else
66 #define DECLSPEC_IMPORT
67 #endif
68 #endif
69 
70 #ifndef _RPCRT4_
71 #define RPCRTAPI DECLSPEC_IMPORT
72 #else
73 #define RPCRTAPI
74 #endif
75 
76 #ifndef _RPCNS4_
77 #define RPCNSAPI DECLSPEC_IMPORT
78 #else
79 #define RPCNSAPI
80 #endif
81 
82 #include <rpcdce.h>
83 #ifndef _KRPCENV_
84 #include <rpcnsi.h>
85 #endif
86 #include <rpcnterr.h>
87 #include <excpt.h>
88 #include <winerror.h>
89 
90 /* TODO:  This isn't actual working on gcc.  Either we need to implement
91    their __try/__except/__finally feature, or we need to do at least for x64
92    emulation-code via inline-assembler ...  */
93 #define RpcTryExcept __try {
94 #define RpcExcept(expr) } __except(expr) {
95 #define RpcEndExcept }
96 #define RpcTryFinally __try {
97 #define RpcFinally } __finally {
98 #define RpcEndFinally }
99 
100 #define RpcExceptionCode() GetExceptionCode()
101 #define RpcAbnormalTermination() AbnormalTermination()
102 
103 #ifndef RPC_NO_WINDOWS_H
104 #include <rpcasync.h>
105 #endif
106 
107 #ifdef __RPC_WIN64__
108 #include <poppack.h>
109 #endif
110 
111 #ifdef __cplusplus
112 }
113 #endif
114 #endif
115