OSDN Git Service

cf58f3841db36c4c0d4d10ab6507b29fb552b5c5
[mingw/mingw-org-wsl.git] / include / rpc.h
1 /**
2  * @file rpc.h
3  * @copy 2012 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
28 #ifndef RPC_NO_WINDOWS_H
29 #include <windows.h>
30 #endif
31
32
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36 #define __RPC_WIN32__
37 #ifndef _WIN95
38 #define __RPC_NT__
39 #define RPC_UNICODE_SUPPORTED
40 #endif
41
42 #ifdef _RPCRT4_
43 #define RPCRTAPI DECLSPEC_EXPORT
44 #else
45 #define RPCRTAPI DECLSPEC_IMPORT
46 #endif
47
48 #ifndef __MIDL_USER_DEFINED
49 #define midl_user_allocate MIDL_user_allocate
50 #define midl_user_free     MIDL_user_free
51 #define __MIDL_USER_DEFINED
52 #endif
53 #define RPC_UNICODE_SUPPORTED
54 #define __RPC_FAR
55 #define __RPC_API  __stdcall
56 #define __RPC_USER __stdcall
57 #define __RPC_STUB __stdcall
58 #define RPC_ENTRY  __stdcall
59 typedef void *I_RPC_HANDLE;
60 typedef long RPC_STATUS;
61
62 #include <rpcdce.h>
63 #include <rpcnsi.h>
64 #include <rpcnterr.h>
65
66 #include <winerror.h>
67
68 /* SEH is not supported */
69 #if 0
70 #include <excpt.h>
71 #define RpcTryExcept __try {
72 #define RpcExcept(x) } __except (x) {
73 #define RpcEndExcept }
74 #define RpcTryFinally __try {
75 #define RpcFinally } __finally {
76 #define RpcEndFinally }
77 #define RpcExceptionCode() GetExceptionCode()
78 #define RpcAbnormalTermination() AbnormalTermination()
79 #endif /* 0 */
80
81 RPC_STATUS RPC_ENTRY RpcImpersonateClient(RPC_BINDING_HANDLE);
82 RPC_STATUS RPC_ENTRY RpcRevertToSelf(void);
83 long RPC_ENTRY I_RpcMapWin32Status(RPC_STATUS);
84 #ifdef __cplusplus
85 }
86 #endif
87 #endif