5 http://www.grimes.demon.co.uk/DCOM/DCOMSpec.htm
11 uuid("18f70770-8e64-11cf-9af1-0020af6e72f4"),
12 pointer_default(unique),
14 ] interface dcom_Unknown
17 void GetCustomProtseqInfo();
18 void UpdateResolverBindings();
23 uuid("00000000-0000-0000-C000-000000000046"),
24 pointer_default(unique),
25 helpstring("Base interface for all COM interfaces")
31 /* Returns the interface with the specified IID
32 if implemented by this object */
33 [local] WERROR QueryInterface([in] GUID *iid,
34 [out,iid_is(riid),ref] IUnknown **data);
38 [local] uint32 AddRef();
42 [local] uint32 Release();
48 uuid("00000001-0000-0000-C000-000000000046"),
49 pointer_default(unique)
50 ] interface IClassFactory : IUnknown
52 [local] WERROR CreateInstance([in] MInterfacePointer *pUnknown,
54 [out, iid_is(riid)] MInterfacePointer *ppv);
56 [call_as(CreateInstance)] WERROR RemoteCreateInstance();
58 /* Set lock to TRUE when you want to do a lock
59 and set it to FALSE when you want to unlock */
60 [local] WERROR LockServer([in] uint8 lock);
62 [call_as(LockServer)] WERROR RemoteLockServer();
65 /* The remote version of IUnknown. This interface exists on every */
66 /* OXID (whether an OXID represents either a thread or a process is */
67 /* implementation specific). It is used by clients to query for new */
68 /* interfaces, get additional references (for marshaling), and release */
69 /* outstanding references. */
70 /* This interface is passed along during OXID resolution. */
73 uuid("00000131-0000-0000-C000-000000000046"),
75 pointer_default(unique),
76 helpstring("Remote version of IUnknown")
78 interface IRemUnknown : IUnknown
80 typedef [public] struct
82 WERROR hResult; /* result of call */
83 STDOBJREF std; /* data for returned interface */
87 [call_as(QueryInterface)] WERROR RemQueryInterface (
88 [in] GUID *ripid, /* interface to QI on */
89 [in] uint32 cRefs, /* count of AddRefs requested */
90 [in] uint16 cIids, /* count of IIDs that follow */
91 [in, size_is(cIids)] GUID *iids[], /* IIDs to QI for */
92 [out, size_is(cIids)] MInterfacePointer *ip[]
97 GUID ipid; /* ipid to AddRef/Release */
102 [call_as(AddRef)] WERROR RemAddRef (
103 [in] uint16 cInterfaceRefs,
104 [in, size_is(cInterfaceRefs)] REMINTERFACEREF InterfaceRefs[],
105 [out, size_is(cInterfaceRefs)] WERROR *pResults[]
108 [call_as(Release)] WERROR RemRelease (
109 [in] uint16 cInterfaceRefs,
110 [in, size_is(cInterfaceRefs)] REMINTERFACEREF InterfaceRefs[]
115 uuid("00000140-0000-0000-c000-000000000046"),
116 pointer_default(unique),
118 ] interface IClassActivator : IUnknown
120 void GetClassObject([in] GUID clsid,
124 [out, iid_is(iid)] MInterfacePointer data);
128 uuid("00000136-0000-0000-c000-000000000046"),
129 pointer_default(unique),
131 ] interface ISCMLocalActivator : IClassActivator
133 WERROR ISCMLocalActivator_CreateInstance( );
137 pointer_default(unique),
138 uuid("c6f3ee72-ce7e-11d1-b71e-00c04fc3111a")
139 ] interface IMachineLocalActivator
141 WERROR IMachineLocalActivator_foo();
145 pointer_default(unique),
146 uuid("e60c73e6-88f9-11cf-9af1-0020af6e72f4")
147 ] interface ILocalObjectExporter
149 WERROR ILocalObjectExporter_Foo();
152 /* Looks like this is the equivalent of .NET's
153 System.Activator class */
155 uuid("000001a0-0000-0000-c000-000000000046"),
156 pointer_default(unique),
159 interface ISystemActivator : IClassActivator
161 WERROR ISystemActivatorRemoteCreateInstance([in] hyper unknown1, /* OXID ? */
162 [in] MInterfacePointer iface1,
164 [out] uint32 unknown3,
165 [out] MInterfacePointer iface2);
170 /* Derived from IRemUnknown, this interface supports Remote Query interface */
171 /* for objects that supply additional data beyond the STDOBJREF in their */
172 /* marshaled interface packets. */
175 pointer_default(unique),
176 uuid("00000143-0000-0000-C000-000000000046")
179 interface IRemUnknown2 : IRemUnknown
181 [call_as(QueryInterface2)] WERROR RemQueryInterface2 (
184 [in, size_is(cIids)] GUID *iids[],
185 [out, size_is(cIids)] WERROR *phr[],
186 [out, size_is(cIids)] MInterfacePointer *ppMIF[]
192 pointer_default(unique),
193 uuid("00000136-0000-0000-C000-000000000046")
194 ] interface ISCMActivator : IClassActivator
196 WERROR SCMActivator_CreateInstance();
201 pointer_default(unique),
202 uuid("00020400-0000-0000-C000-000000000046")
203 ] interface IDispatch : IUnknown
207 WERROR GetTypeInfoCount(
208 [out] uint16 *pctinfo);
218 [out] REF_ITypeInfo *ppTInfo);
222 WERROR GetIDsOfNames(
224 /*FIXME[in,size_is(cNames)] OLESTR *rgszNames[], */
227 [out,size_is(cNames)] uint32 *rgDispId[]);
246 [in] uint32 dispIdMember,
250 [out,in] DISPPARAMS *pDispParams,
251 [out] VARIANT *pVarResult,
252 [out] EXCEPINFO *pExcepInfo,
253 [out] uint16 *puArgErr);
259 uuid("00000003-0000-0000-C000-000000000046")
260 ] interface IMarshal : IUnknown
262 WERROR MarshalInterface();
263 WERROR UnMarshalInterface();
267 uuid(DA23F6DB-6F45-466C-9EED-0B65286F2D78),
268 helpstring("ICoffeeMachine Interface"),
269 pointer_default(unique),
271 ] interface ICoffeeMachine : IUnknown
273 [helpstring("method MakeCoffee")] WERROR MakeCoffee([in] unistr *flavor);
277 uuid("db7c21f8-fe33-4c11-aea5-ceb56f076fbb"),
278 helpstring("coffeemachine class")
279 ] coclass coffeemachine
281 interface icoffeemachine;
286 pointer_default(unique),
287 uuid("0000000C-0000-0000-C000-000000000046"),
290 interface IStream : IUnknown
293 [out, size_is(num_requested), length_is(num_read)] uint8 pv[],
294 [in] uint32 num_requested,
295 [in] uint32 *num_readx,
296 [out] uint32 num_read
300 [in,size_is(num_requested)] uint8 *data[],
301 [in] uint32 num_requested,
302 [out] uint32 num_written);
306 uuid("5e9ddec7-5767-11cf-beab-00aa006c3606"),
307 progid("Samba.Simple"),
308 helpstring("simple class"),