3
http://www.ietf.org/internet-drafts/draft-brown-dcom-v1-spec-04.txt
9
uuid("18f70770-8e64-11cf-9af1-0020af6e72f4"),
10
pointer_default(unique),
12
] interface dcom_Unknown
15
void GetCustomProtseqInfo();
16
void UpdateResolverBindings();
21
uuid("00000000-0000-0000-C000-000000000046"),
22
pointer_default(unique),
23
helpstring("Base interface for all COM interfaces")
29
/* Returns the interface with the specified IID
30
if implemented by this object */
31
[local] WERROR QueryInterface([in,unique] GUID *iid,
32
[out,iid_is(riid)] IUnknown **data);
36
[local] uint32 AddRef();
40
[local] uint32 Release();
46
uuid("00000001-0000-0000-C000-000000000046"),
47
pointer_default(unique)
48
] interface IClassFactory : IUnknown
50
[local] WERROR CreateInstance([in,unique] MInterfacePointer *pUnknown,
51
[in,unique] GUID *iid,
52
[out, iid_is(riid),unique] MInterfacePointer *ppv);
54
[call_as(CreateInstance)] WERROR RemoteCreateInstance();
56
/* Set lock to TRUE when you want to do a lock
57
and set it to FALSE when you want to unlock */
58
[local] WERROR LockServer([in] uint8 lock);
60
[call_as(LockServer)] WERROR RemoteLockServer();
63
/* The remote version of IUnknown. This interface exists on every */
64
/* OXID (whether an OXID represents either a thread or a process is */
65
/* implementation specific). It is used by clients to query for new */
66
/* interfaces, get additional references (for marshaling), and release */
67
/* outstanding references. */
68
/* This interface is passed along during OXID resolution. */
71
uuid("00000131-0000-0000-C000-000000000046"),
73
pointer_default(unique),
74
helpstring("Remote version of IUnknown")
76
interface IRemUnknown : IUnknown
78
typedef [public] struct
80
WERROR hResult; /* result of call */
81
STDOBJREF std; /* data for returned interface */
85
[call_as(QueryInterface)] WERROR RemQueryInterface (
86
[in,unique] GUID *ripid, /* interface to QI on */
87
[in] uint32 cRefs, /* count of AddRefs requested */
88
[in] uint16 cIids, /* count of IIDs that follow */
89
[in, unique, size_is(cIids)] GUID *iids, /* IIDs to QI for */
90
[out, size_is(cIids), unique] MInterfacePointer *ip
95
GUID ipid; /* ipid to AddRef/Release */
100
[call_as(AddRef)] WERROR RemAddRef (
101
[in] uint16 cInterfaceRefs,
102
[in, size_is(cInterfaceRefs)] REMINTERFACEREF InterfaceRefs[],
103
[out, size_is(cInterfaceRefs), unique] WERROR *pResults
106
[call_as(Release)] WERROR RemRelease (
107
[in] uint16 cInterfaceRefs,
108
[in, size_is(cInterfaceRefs)] REMINTERFACEREF InterfaceRefs[]
113
uuid("00000140-0000-0000-c000-000000000046"),
115
] interface IClassActivator : IUnknown
117
void GetClassObject([in] GUID clsid,
121
[out, iid_is(iid)] MInterfacePointer *data);
125
uuid("00000136-0000-0000-c000-000000000046"),
126
pointer_default(unique),
128
] interface ISCMLocalActivator : IClassActivator
130
WERROR ISCMLocalActivator_CreateInstance( );
134
pointer_default(unique),
135
uuid("c6f3ee72-ce7e-11d1-b71e-00c04fc3111a")
136
] interface IMachineLocalActivator
138
WERROR IMachineLocalActivator_foo();
142
pointer_default(unique),
143
uuid("e60c73e6-88f9-11cf-9af1-0020af6e72f4")
144
] interface ILocalObjectExporter
146
WERROR ILocalObjectExporter_Foo();
149
/* Looks like this is the equivalent of .NET's
150
System.Activator class */
152
uuid("000001a0-0000-0000-c000-000000000046"),
155
interface ISystemActivator : IClassActivator
157
WERROR ISystemActivatorRemoteCreateInstance([in] hyper unknown1, /* OXID ? */
158
[in] MInterfacePointer iface1,
160
[out] uint32 *unknown3,
161
[out] MInterfacePointer *iface2);
166
/* Derived from IRemUnknown, this interface supports Remote Query interface */
167
/* for objects that supply additional data beyond the STDOBJREF in their */
168
/* marshaled interface packets. */
171
pointer_default(unique),
172
uuid("00000143-0000-0000-C000-000000000046")
175
interface IRemUnknown2 : IRemUnknown
177
[call_as(QueryInterface2)] WERROR RemQueryInterface2 (
178
[in, unique] GUID *ripid,
180
[in, size_is(cIids), unique] GUID *iids,
181
[out, size_is(cIids), unique] WERROR *phr,
182
[out, size_is(cIids), unique] MInterfacePointer *ppMIF
188
pointer_default(unique),
189
uuid("00020400-0000-0000-C000-000000000046")
190
] interface IDispatch : IUnknown
194
WERROR GetTypeInfoCount(
195
[out, unique] uint16 *pctinfo);
205
[out, unique] REF_ITypeInfo *ppTInfo);
209
WERROR GetIDsOfNames(
210
[in, unique] GUID *riid,
211
/*FIXME[in,size_is(cNames)] OLESTR *rgszNames[], */
214
[out,size_is(cNames), unique] uint32 *rgDispId);
233
[in] uint32 dispIdMember,
234
[in, unique] GUID *riid,
237
[out,in, unique] DISPPARAMS *pDispParams,
238
[out, unique] VARIANT *pVarResult,
239
[out, unique] EXCEPINFO *pExcepInfo,
240
[out, unique] uint16 *puArgErr);
246
uuid("00000003-0000-0000-C000-000000000046")
247
] interface IMarshal : IUnknown
249
WERROR MarshalInterface();
250
WERROR UnMarshalInterface();
254
uuid(DA23F6DB-6F45-466C-9EED-0B65286F2D78),
255
helpstring("ICoffeeMachine Interface"),
256
pointer_default(unique),
258
] interface ICoffeeMachine : IUnknown
260
WERROR MakeCoffee([in,string,charset(UTF16)] uint16 *flavor);
264
uuid("db7c21f8-fe33-4c11-aea5-ceb56f076fbb"),
265
helpstring("coffeemachine class")
266
] coclass coffeemachine
268
interface icoffeemachine;
273
uuid("0000000C-0000-0000-C000-000000000046"),
276
interface IStream : IUnknown
279
[out, size_is(num_requested), length_is(*num_read)] uint8 pv[],
280
[in] uint32 num_requested,
281
[in, unique] uint32 *num_readx,
282
[out] uint32 *num_read
286
[in,size_is(num_requested),unique] uint8 *data,
287
[in] uint32 num_requested,
288
[out] uint32 *num_written);
292
uuid("5e9ddec7-5767-11cf-beab-00aa006c3606"),
293
progid("Samba.Simple"),
294
helpstring("simple class"),