3 http://www.ietf.org/internet-drafts/draft-brown-dcom-v1-spec-04.txt
7 uuid("18f70770-8e64-11cf-9af1-0020af6e72f4"),
8 pointer_default(unique),
10 ] interface dcom_Unknown
13 void GetCustomProtseqInfo();
14 void UpdateResolverBindings();
19 uuid("00000000-0000-0000-C000-000000000046"),
20 pointer_default(unique),
21 helpstring("Base interface for all COM interfaces")
27 /* Returns the interface with the specified IID
28 if implemented by this object */
29 [local] WERROR QueryInterface([in,unique] GUID *iid,
30 [out,iid_is(riid)] IUnknown **data);
34 [local] uint32 AddRef();
38 [local] uint32 Release();
44 uuid("00000001-0000-0000-C000-000000000046"),
45 pointer_default(unique)
46 ] interface IClassFactory : IUnknown
48 [local] WERROR CreateInstance([in,unique] MInterfacePointer *pUnknown,
49 [in,unique] GUID *iid,
50 [out, iid_is(riid)] MInterfacePointer **ppv);
52 [call_as(CreateInstance)] WERROR RemoteCreateInstance();
54 /* Set lock to TRUE when you want to do a lock
55 and set it to FALSE when you want to unlock */
56 [local] WERROR LockServer([in] uint8 lock);
58 [call_as(LockServer)] WERROR RemoteLockServer();
61 /* The remote version of IUnknown. This interface exists on every */
62 /* OXID (whether an OXID represents either a thread or a process is */
63 /* implementation specific). It is used by clients to query for new */
64 /* interfaces, get additional references (for marshaling), and release */
65 /* outstanding references. */
66 /* This interface is passed along during OXID resolution. */
69 uuid("00000131-0000-0000-C000-000000000046"),
71 pointer_default(unique),
72 helpstring("Remote version of IUnknown")
74 interface IRemUnknown : IUnknown
76 typedef [public] struct
78 WERROR hResult; /* result of call */
79 STDOBJREF std; /* data for returned interface */
83 [call_as(QueryInterface)] WERROR RemQueryInterface (
84 [in,unique] GUID *ripid, /* interface to QI on */
85 [in] uint32 cRefs, /* count of AddRefs requested */
86 [in] uint16 cIids, /* count of IIDs that follow */
87 [in, unique, size_is(cIids)] GUID *iids, /* IIDs to QI for */
88 [out, size_is(cIids)] MInterfacePointer **ip
93 GUID ipid; /* ipid to AddRef/Release */
98 [call_as(AddRef)] WERROR RemAddRef (
99 [in] uint16 cInterfaceRefs,
100 [in, size_is(cInterfaceRefs)] REMINTERFACEREF InterfaceRefs[],
101 [out, size_is(cInterfaceRefs)] WERROR **pResults
104 [call_as(Release)] WERROR RemRelease (
105 [in] uint16 cInterfaceRefs,
106 [in, size_is(cInterfaceRefs)] REMINTERFACEREF InterfaceRefs[]
111 uuid("00000140-0000-0000-c000-000000000046"),
112 pointer_default(unique),
114 ] interface IClassActivator : IUnknown
116 void GetClassObject([in] GUID clsid,
120 [out, iid_is(iid)] MInterfacePointer *data);
124 uuid("00000136-0000-0000-c000-000000000046"),
125 pointer_default(unique),
127 ] interface ISCMLocalActivator : IClassActivator
129 WERROR ISCMLocalActivator_CreateInstance( );
133 pointer_default(unique),
134 uuid("c6f3ee72-ce7e-11d1-b71e-00c04fc3111a")
135 ] interface IMachineLocalActivator
137 WERROR IMachineLocalActivator_foo();
141 pointer_default(unique),
142 uuid("e60c73e6-88f9-11cf-9af1-0020af6e72f4")
143 ] interface ILocalObjectExporter
145 WERROR ILocalObjectExporter_Foo();
148 /* Looks like this is the equivalent of .NET's
149 System.Activator class */
151 uuid("000001a0-0000-0000-c000-000000000046"),
152 pointer_default(unique),
155 interface ISystemActivator : IClassActivator
157 WERROR ISystemActivatorRemoteCreateInstance([in] hyper unknown1, /* OXID ? */
158 [in] MInterfacePointer iface1,
160 [out,ref] uint32 *unknown3,
161 [out,ref] 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)] GUID **iids,
181 [out, size_is(cIids)] WERROR **phr,
182 [out, size_is(cIids)] MInterfacePointer **ppMIF
188 pointer_default(unique),
189 uuid("00020400-0000-0000-C000-000000000046")
190 ] interface IDispatch : IUnknown
194 WERROR GetTypeInfoCount([out] uint16 *pctinfo);
204 [out] REF_ITypeInfo **ppTInfo);
208 WERROR GetIDsOfNames(
209 [in, unique] GUID *riid,
210 /*FIXME[in,size_is(cNames)] OLESTR *rgszNames[], */
213 [out,size_is(cNames)] uint32 **rgDispId);
217 uint16 unknown /* FIXME */;
221 uint16 unknown /* FIXME */;
226 uint16 unknown /* FIXME */;
232 [in] uint32 dispIdMember,
233 [in, unique] GUID *riid,
236 [out,in, unique] DISPPARAMS *pDispParams,
237 [out] VARIANT **pVarResult,
238 [out] EXCEPINFO **pExcepInfo,
239 [out] uint16 **puArgErr);
245 uuid("00000003-0000-0000-C000-000000000046")
246 ] interface IMarshal : IUnknown
248 WERROR MarshalInterface();
249 WERROR UnMarshalInterface();
253 uuid(DA23F6DB-6F45-466C-9EED-0B65286F2D78),
254 helpstring("ICoffeeMachine Interface"),
255 pointer_default(unique),
257 ] interface ICoffeeMachine : IUnknown
259 WERROR MakeCoffee([in,string,charset(UTF16)] uint16 *flavor);
263 uuid("db7c21f8-fe33-4c11-aea5-ceb56f076fbb"),
264 helpstring("coffeemachine class")
265 ] coclass coffeemachine
267 interface icoffeemachine;
272 pointer_default(unique),
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,ref] uint32 *num_read
286 [in,size_is(num_requested),unique] uint8 *data,
287 [in] uint32 num_requested,
288 [out,ref] uint32 *num_written);
292 uuid("5e9ddec7-5767-11cf-beab-00aa006c3606"),
293 progid("Samba.Simple"),
294 helpstring("simple class"),