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