Home | History | Annotate | Download | only in include
      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