1 /***********************************************************************\
2 *                               rpcdce2.d                               *
3 *                                                                       *
4 *                       Windows API header module                       *
5 *                                                                       *
6 *                 Translated from MinGW Windows headers                 *
7 *                                                                       *
8 *                       Placed into public domain                       *
9 \***********************************************************************/
10 module win32.rpcdce2;
11 
12 import win32.rpcdce;
13 private import win32.basetyps;
14 
15 // FIXME: deal with RPC_UNICODE_SUPPORTED
16 // FIXME: check types of constants
17 
18 enum {
19 	RPC_C_EP_ALL_ELTS,
20 	RPC_C_EP_MATCH_BY_IF,
21 	RPC_C_EP_MATCH_BY_OBJ,
22 	RPC_C_EP_MATCH_BY_BOTH
23 }
24 
25 enum {
26 	RPC_C_VERS_ALL = 1,
27 	RPC_C_VERS_COMPATIBLE,
28 	RPC_C_VERS_EXACT,
29 	RPC_C_VERS_MAJOR_ONLY,
30 	RPC_C_VERS_UPTO
31 }
32 
33 const size_t DCE_C_ERROR_STRING_LEN = 256;
34 
35 enum {
36 	RPC_C_MGMT_INQ_IF_IDS,
37 	RPC_C_MGMT_INQ_PRINC_NAME,
38 	RPC_C_MGMT_INQ_STATS,
39 	RPC_C_MGMT_IS_SERVER_LISTEN,
40 	RPC_C_MGMT_STOP_SERVER_LISTEN
41 }
42 
43 extern (Windows) {
44 	int UuidCompare(UUID*, UUID*, RPC_STATUS*);
45 	RPC_STATUS UuidCreateNil(UUID*);
46 	int UuidEqual(UUID*, UUID*, RPC_STATUS*);
47 	ushort UuidHash(UUID*, RPC_STATUS*);
48 	int UuidIsNil(UUID*, RPC_STATUS*);
49 
50 	RPC_STATUS RpcMgmtEpEltInqBegin(RPC_BINDING_HANDLE, uint, RPC_IF_ID*,
51 	  uint, UUID*, RPC_EP_INQ_HANDLE*);
52 	RPC_STATUS RpcMgmtEpEltInqDone(RPC_EP_INQ_HANDLE*);
53 	RPC_STATUS RpcMgmtEpUnregister(RPC_BINDING_HANDLE, RPC_IF_ID*,
54 	  RPC_BINDING_HANDLE, UUID*);
55 	RPC_STATUS RpcMgmtSetAuthorizationFn(RPC_MGMT_AUTHORIZATION_FN);
56 }
57 
58 
59 //#ifdef RPC_UNICODE_SUPPORTED
60 RPC_STATUS DceErrorInqTextA(RPC_STATUS, char*);
61 RPC_STATUS DceErrorInqTextW(RPC_STATUS, wchar*);
62 RPC_STATUS RpcMgmtEpEltInqNextA(RPC_EP_INQ_HANDLE, RPC_IF_ID*,
63   RPC_BINDING_HANDLE*, UUID*, char**);
64 RPC_STATUS RpcMgmtEpEltInqNextW(RPC_EP_INQ_HANDLE, RPC_IF_ID*,
65   RPC_BINDING_HANDLE*, UUID*, wchar**);
66 version (Unicode) {
67 	alias RpcMgmtEpEltInqNextW RpcMgmtEpEltInqNext;
68 	alias DceErrorInqTextW DceErrorInqText;
69 } else {
70 	alias RpcMgmtEpEltInqNextA RpcMgmtEpEltInqNext;
71 	alias DceErrorInqTextA DceErrorInqText;
72 }
73 /+
74 #else /* RPC_UNICODE_SUPPORTED */
75 	RPC_STATUS RPC_ENTRY DceErrorInqText(RPC_STATUS,unsigned char*);
76 	RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqNext(RPC_EP_INQ_HANDLE,RPC_IF_ID*,RPC_BINDING_HANDLE*,UUID*,unsigned char**);
77 #endif
78 +/