ReactOS 0.4.15-dev-7788-g1ad9096
dcom.idl
Go to the documentation of this file.
1/*
2 * Copyright 2003 Ove Kåven, TransGaming Technologies
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19/* see the official DCOM specification
20 * (there's a copy at http://www.grimes.demon.co.uk/DCOM/DCOMSpec.htm) */
21
22#pragma makedep proxy
23#pragma makedep register
24
25import "unknwn.idl";
26
27[
28 threading(both),
29 uuid(00000320-0000-0000-c000-000000000046)
30]
31coclass PSFactoryBuffer { interface IFactoryBuffer; }
32
33[
34 uuid(99fcfe60-5260-101b-bbcb-00aa0021347a),
36]
37interface ObjectRpcBaseTypes
38{
39 typedef unsigned hyper ID;
40 typedef ID MID;
41 typedef ID OXID;
42 typedef ID OID;
43 typedef ID SETID;
44 typedef GUID IPID;
45 typedef GUID CID;
46 typedef REFGUID REFIPID;
47
48 const unsigned short COM_MINOR_VERSION_1 = 1;
49 const unsigned short COM_MINOR_VERSION_2 = 2;
50
51 const unsigned short COM_MAJOR_VERSION = 5;
52 const unsigned short COM_MINOR_VERSION = 3;
53
54 typedef struct tagCOMVERSION {
55 unsigned short MajorVersion;
56 unsigned short MinorVersion;
57 } COMVERSION;
58
59 const unsigned long ORPCF_NULL = 0;
60 const unsigned long ORPCF_LOCAL = 1;
61 const unsigned long ORPCF_RESERVED1 = 2;
62 const unsigned long ORPCF_RESERVED2 = 4;
63 const unsigned long ORPCF_RESERVED3 = 8;
64 const unsigned long ORPCF_RESERVED4 = 16;
65
66 typedef struct tagORPC_EXTENT {
67 GUID id;
68 unsigned long size;
69 [size_is((size+7)&~7)] byte data[];
70 } ORPC_EXTENT;
71
72 typedef struct tagORPC_EXTENT_ARRAY {
73 unsigned long size;
74 unsigned long reserved;
75 [size_is((size+1)&~1,), unique] ORPC_EXTENT **extent;
76 } ORPC_EXTENT_ARRAY;
77
78 typedef struct tagORPCTHIS {
79 COMVERSION version;
80 unsigned long flags;
81 unsigned long reserved1;
82 CID cid;
83 [unique] ORPC_EXTENT_ARRAY *extensions;
84 } ORPCTHIS;
85
86 typedef struct tagORPCTHAT {
87 unsigned long flags;
88 [unique] ORPC_EXTENT_ARRAY *extensions;
89 } ORPCTHAT;
90
91 const unsigned short NCADG_IP_UDP = 0x08;
92 const unsigned short NCACN_IP_TCP = 0x07;
93 const unsigned short NCADG_IPX = 0x0E;
94 const unsigned short NCACN_SPX = 0x0C;
95 const unsigned short NCACN_NB_NB = 0x12;
96 const unsigned short NCACN_NB_IPX = 0x0D;
97 const unsigned short NCACN_DNET_NSP = 0x04;
98 const unsigned short NCACN_HTTP = 0x1F;
99
100 typedef struct tagSTRINGBINDING {
101 unsigned short wTowerId;
102 [string] WCHAR aNetworkAddr[];
103 } STRINGBINDING;
104
105 const unsigned short COM_C_AUTHZ_NONE = 0xffff;
106
107 typedef struct tagSECURITYBINDING {
108 unsigned short wAuthnSvc;
109 unsigned short wAuthzSvc;
110 [string] WCHAR aPrincName[];
111 } SECURITYBINDING;
112
113 typedef struct tagDUALSTRINGARRAY {
114 unsigned short wNumEntries;
115 unsigned short wSecurityOffset;
116 [size_is(wNumEntries)] unsigned short aStringArray[];
118
119 typedef struct tagOXID_INFO {
120 DWORD dwTid;
121 DWORD dwPid;
122 IPID ipidRemUnknown;
123 DWORD dwAuthnHint;
125 } OXID_INFO;
126
127 const unsigned long OBJREF_SIGNATURE = 0x574f454d; /* "MEOW" */
128 const unsigned long OBJREF_STANDARD = 0x1;
129 const unsigned long OBJREF_HANDLER = 0x2;
130 const unsigned long OBJREF_CUSTOM = 0x4;
131 const unsigned long SORF_OXRES1 = 0x1;
132 const unsigned long SORF_OXRES2 = 0x20;
133 const unsigned long SORF_OXRES3 = 0x40;
134 const unsigned long SORF_OXRES4 = 0x80;
135 const unsigned long SORF_OXRES5 = 0x100;
136 const unsigned long SORF_OXRES6 = 0x200;
137 const unsigned long SORF_OXRES7 = 0x400;
138 const unsigned long SORF_OXRES8 = 0x800;
139 const unsigned long SORF_NULL = 0x0;
140 const unsigned long SORF_NOPING = 0x1000;
141
142 typedef struct tagSTDOBJREF {
143 unsigned long flags;
144 unsigned long cPublicRefs;
145 OXID oxid;
146 OID oid;
147 IPID ipid;
148 } STDOBJREF;
149
150 typedef struct tagOBJREF {
151 unsigned long signature;
152 unsigned long flags;
153 GUID iid;
154 [switch_is(flags)] union {
155 [case(OBJREF_STANDARD)] struct OR_STANDARD {
157 DUALSTRINGARRAY saResAddr;
158 } u_standard;
159 [case(OBJREF_HANDLER)] struct OR_HANDLER {
161 CLSID clsid;
162 DUALSTRINGARRAY saResAddr;
163 } u_handler;
164 [case(OBJREF_CUSTOM)] struct OR_CUSTOM {
165 CLSID clsid;
166 unsigned long cbExtension;
167 ULONG size;
168 [size_is(size), ref] byte *pData;
169 } u_custom;
170 } u_objref;
171 } OBJREF;
172
173 typedef struct tagMInterfacePointer {
174 ULONG ulCntData;
175 [size_is(ulCntData)] BYTE abData[];
176 } MInterfacePointer;
177
178 typedef [unique] MInterfacePointer *PMInterfacePointer;
179
180} /* interface ObjectRpcBaseTypes */
181
182[
183 object,
184 uuid(00000131-0000-0000-C000-000000000046)
185]
187{
189
190 typedef struct tagREMQIRESULT {
194
195 typedef struct tagREMINTERFACEREF {
197 unsigned long cPublicRefs;
198 unsigned long cPrivateRefs;
200
202 [in] REFIPID ripid,
203 [in] ULONG cRefs,
204 [in] unsigned short cIids,
205 [in, size_is(cIids)] IID *iids,
206 [out, size_is(,cIids)] REMQIRESULT **ppQIResults);
207
209 [in] unsigned short cInterfaceRefs,
210 [in, size_is(cInterfaceRefs)] REMINTERFACEREF* InterfaceRefs,
211 [out, size_is(cInterfaceRefs)] HRESULT *pResults);
212
214 [in] unsigned short cInterfaceRefs,
215 [in, size_is(cInterfaceRefs)] REMINTERFACEREF* InterfaceRefs);
216}
217
218[
219 object,
220 uuid(00000142-0000-0000-C000-000000000046)
221]
223{
225
227 [in] REFIPID ripid,
228 [in] unsigned short cIids,
229 [in, size_is(cIids)] IID *iids,
230 [out, size_is(cIids)] HRESULT *phr,
231 [out, size_is(cIids)] MInterfacePointer **ppMIF);
232}
233
234[
235 uuid(99fcfec4-5260-101b-bbcb-00aa0021347a),
237]
239{
241 [in] handle_t hRpc,
242 [in] OXID *pOxid,
243 [in] unsigned short cRequestedProtseqs,
244 [in, ref, size_is(cRequestedProtseqs)] unsigned short arRequestedProtseqs[],
245 [out, ref] DUALSTRINGARRAY **ppdsaOxidBindings,
246 [out, ref] IPID *pipidRemUnknown,
247 [out, ref] DWORD *pAuthnHint);
248
250 [in] handle_t hRpc,
251 [in] SETID *pSetId);
252
254 [in] handle_t hRpc,
255 [in, out] SETID *pSetId,
256 [in] unsigned short SequenceNum,
257 [in] unsigned short cAddToSet,
258 [in] unsigned short cDelFromSet,
259 [in, unique, size_is(cAddToSet)] OID AddToSet[],
260 [in, unique, size_is(cDelFromSet)] OID DelFromSet[],
261 [out] unsigned short *pPingBackoffFactor);
262
264 [in] handle_t hRpc);
265
267 [in] handle_t hRpc,
268 [in] OXID *pOxid,
269 [in] unsigned short cRequestedProtseqs,
270 [in, ref, size_is(cRequestedProtseqs)] unsigned short arRequestedProtseqs[],
271 [out, ref] DUALSTRINGARRAY **ppdsaOxidBindings,
272 [out, ref] IPID *pipidRemUnknown,
273 [out, ref] DWORD *pAuthnHint,
274 [out, ref] COMVERSION *pComVersion);
275}
276
277[
278 uuid(4d9f4ab8-7d1c-11cf-861e-0020af6e7c57),
280]
282{
283 const unsigned long MODE_GET_CLASS_OBJECT = 0xffffffff;
284
286 [in] handle_t hRpc,
287 [in] ORPCTHIS *ORPCthis,
288 [out] ORPCTHAT *ORPCthat,
289 [in] GUID *Clsid,
290 [in, string, unique] WCHAR *pwszObjectName,
291 [in, unique] MInterfacePointer *pObjectStorage,
292 [in] DWORD ClientImpLevel,
293 [in] DWORD Mode,
294 [in] DWORD Interfaces,
295 [in, unique, size_is(Interfaces)] IID *pIIDs,
296 [in] unsigned short cRequestedProtseqs,
297 [in, size_is(cRequestedProtseqs)] unsigned short RequestedProtseqs[],
298 [out] OXID *pOxid,
299 [out] DUALSTRINGARRAY **ppdsaOxidBindings,
300 [out] IPID *pipidRemUnknown,
301 [out] DWORD *pAuthnHint,
302 [out] COMVERSION *pServerVersion,
303 [out] HRESULT *phr,
304 [out,size_is(Interfaces)] MInterfacePointer **ppInterfaceData,
305 [out,size_is(Interfaces)] HRESULT *pResults);
306}
unsigned long error_status_t
Definition: basetyps.h:83
coclass PSFactoryBuffer pointer_default(unique)] interface ObjectRpcBaseTypes
Definition: dcom.idl:35
static const WCHAR version[]
Definition: asmname.c:66
r reserved
Definition: btrfs.c:3006
#define threading(model)
Definition: exdisp.idl:30
ULONG MajorVersion
Definition: ros_glue.cpp:4
ULONG MinorVersion
Definition: ros_glue.cpp:5
unsigned long DWORD
Definition: ntddk_ex.h:95
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLsizeiptr size
Definition: glext.h:5919
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
GLuint in
Definition: glext.h:9616
GLbitfield flags
Definition: glext.h:7161
GLuint id
Definition: glext.h:5910
_In_ ULONG Mode
Definition: hubbusif.h:303
error_status_t SimplePing([in] handle_t hRpc, [in] SETID *pSetId)
error_status_t ResolveOxid2([in] handle_t hRpc, [in] OXID *pOxid, [in] unsigned short cRequestedProtseqs, [in, ref, size_is(cRequestedProtseqs)] unsigned short arRequestedProtseqs[], [out, ref] DUALSTRINGARRAY **ppdsaOxidBindings, [out, ref] IPID *pipidRemUnknown, [out, ref] DWORD *pAuthnHint, [out, ref] COMVERSION *pComVersion)
error_status_t ResolveOxid([in] handle_t hRpc, [in] OXID *pOxid, [in] unsigned short cRequestedProtseqs, [in, ref, size_is(cRequestedProtseqs)] unsigned short arRequestedProtseqs[], [out, ref] DUALSTRINGARRAY **ppdsaOxidBindings, [out, ref] IPID *pipidRemUnknown, [out, ref] DWORD *pAuthnHint)
error_status_t ComplexPing([in] handle_t hRpc, [in, out] SETID *pSetId, [in] unsigned short SequenceNum, [in] unsigned short cAddToSet, [in] unsigned short cDelFromSet, [in, unique, size_is(cAddToSet)] OID AddToSet[], [in, unique, size_is(cDelFromSet)] OID DelFromSet[], [out] unsigned short *pPingBackoffFactor)
error_status_t ServerAlive([in] handle_t hRpc)
IRemUnknown2 * LPREMUNKNOWN2
Definition: dcom.idl:224
HRESULT RemQueryInterface2([in] REFIPID ripid, [in] unsigned short cIids, [in, size_is(cIids)] IID *iids, [out, size_is(cIids)] HRESULT *phr, [out, size_is(cIids)] MInterfacePointer **ppMIF)
IRemUnknown * LPREMUNKNOWN
Definition: dcom.idl:188
HRESULT RemAddRef([in] unsigned short cInterfaceRefs, [in, size_is(cInterfaceRefs)] REMINTERFACEREF *InterfaceRefs, [out, size_is(cInterfaceRefs)] HRESULT *pResults)
HRESULT RemQueryInterface([in] REFIPID ripid, [in] ULONG cRefs, [in] unsigned short cIids, [in, size_is(cIids)] IID *iids, [out, size_is(, cIids)] REMQIRESULT **ppQIResults)
struct IRemUnknown::tagREMINTERFACEREF REMINTERFACEREF
HRESULT RemRelease([in] unsigned short cInterfaceRefs, [in, size_is(cInterfaceRefs)] REMINTERFACEREF *InterfaceRefs)
struct IRemUnknown::tagREMQIRESULT REMQIRESULT
const unsigned long MODE_GET_CLASS_OBJECT
Definition: dcom.idl:283
HRESULT RemoteActivation([in] handle_t hRpc, [in] ORPCTHIS *ORPCthis, [out] ORPCTHAT *ORPCthat, [in] GUID *Clsid, [in, string, unique] WCHAR *pwszObjectName, [in, unique] MInterfacePointer *pObjectStorage, [in] DWORD ClientImpLevel, [in] DWORD Mode, [in] DWORD Interfaces, [in, unique, size_is(Interfaces)] IID *pIIDs, [in] unsigned short cRequestedProtseqs, [in, size_is(cRequestedProtseqs)] unsigned short RequestedProtseqs[], [out] OXID *pOxid, [out] DUALSTRINGARRAY **ppdsaOxidBindings, [out] IPID *pipidRemUnknown, [out] DWORD *pAuthnHint, [out] COMVERSION *pServerVersion, [out] HRESULT *phr, [out, size_is(Interfaces)] MInterfacePointer **ppInterfaceData, [out, size_is(Interfaces)] HRESULT *pResults)
Definition: msctf.idl:550
#define e
Definition: ke_i.h:82
char string[160]
Definition: util.h:11
static TfClientId cid
#define OBJREF_CUSTOM
Definition: marshal.c:79
struct tagOBJREF OBJREF
struct tagDUALSTRINGARRAY DUALSTRINGARRAY
UINT64 OID
Definition: marshal.c:88
#define OBJREF_SIGNATURE
Definition: marshal.c:77
GUID IPID
Definition: marshal.c:89
UINT64 OXID
Definition: marshal.c:87
#define OBJREF_STANDARD
Definition: marshal.c:78
struct tagSTDOBJREF STDOBJREF
static SCRIPT_CACHE SCRIPT_ANALYSIS * psa
Definition: usp10.c:64
REFCLSID clsid
Definition: msctf.c:82
Definition: features.h:417
static FILE * out
Definition: regtests2xml.c:44
#define NCACN_DNET_NSP
Definition: rpc_defs.h:237
#define NCACN_HTTP
Definition: rpc_defs.h:238
#define NCADG_IPX
Definition: rpc_defs.h:233
#define NCADG_IP_UDP
Definition: rpc_defs.h:231
#define NCACN_IP_TCP
Definition: rpc_defs.h:232
#define NCACN_NB_NB
Definition: rpc_defs.h:235
#define NCACN_SPX
Definition: rpc_defs.h:234
#define NCACN_NB_IPX
Definition: rpc_defs.h:236
INT64 hyper
Definition: rpcndr.h:117
#define ID
Definition: ruserpass.c:36
unsigned long cPrivateRefs
Definition: dcom.idl:198
Definition: scsiwmi.h:51
Definition: send.c:48
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
Definition: twain.h:1830
uint32_t ULONG
Definition: typedefs.h:59
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned char BYTE
Definition: xxhash.c:193