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
 23extern "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