OSDN Git Service

* NEWS: Add and adjust release notes for 4.0.
[mingw/mingw-org-wsl.git] / include / rpc.h
1 /**
2  * @file rpc.h
3  * Copyright 2012, 2013 MinGW.org project
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  * 
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  * 
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 #ifndef _RPC_H
25 #define _RPC_H
26 #pragma GCC system_header
27 #include <_mingw.h>
28
29 #ifndef RPC_NO_WINDOWS_H
30 #include <windows.h>
31 #endif
32
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36
37 #define __RPC_WIN32__
38 #ifndef _WIN95
39 #define __RPC_NT__
40 #define RPC_UNICODE_SUPPORTED
41 #endif
42
43 #ifdef _RPCRT4_
44 #define RPCRTAPI DECLSPEC_EXPORT
45 #else
46 #define RPCRTAPI DECLSPEC_IMPORT
47 #endif
48
49 #ifndef __MIDL_USER_DEFINED
50 #define midl_user_allocate MIDL_user_allocate
51 #define midl_user_free     MIDL_user_free
52 #define __MIDL_USER_DEFINED
53 #endif
54 #define RPC_UNICODE_SUPPORTED
55 #define __RPC_FAR
56 #define __RPC_API  __stdcall
57 #define __RPC_USER __stdcall
58 #define __RPC_STUB __stdcall
59 #define RPC_ENTRY  __stdcall
60 typedef void *I_RPC_HANDLE;
61 typedef long RPC_STATUS;
62
63 #include <rpcdce.h>
64 #include <rpcnsi.h>
65 #include <rpcnterr.h>
66
67 #include <winerror.h>
68
69 /* SEH is not supported */
70 #if 0
71 #include <excpt.h>
72 #define RpcTryExcept __try {
73 #define RpcExcept(x) } __except (x) {
74 #define RpcEndExcept }
75 #define RpcTryFinally __try {
76 #define RpcFinally } __finally {
77 #define RpcEndFinally }
78 #define RpcExceptionCode() GetExceptionCode()
79 #define RpcAbnormalTermination() AbnormalTermination()
80 #endif /* 0 */
81
82 RPC_STATUS RPC_ENTRY RpcImpersonateClient(RPC_BINDING_HANDLE);
83 RPC_STATUS RPC_ENTRY RpcRevertToSelf(void);
84 long RPC_ENTRY I_RpcMapWin32Status(RPC_STATUS);
85
86 #ifdef __cplusplus
87 }
88 #endif
89
90 #endif