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"),
114 pointer_default(unique),
116 ] interface IClassActivator : IUnknown
118 void GetClassObject([in] GUID clsid,
122 [out, iid_is(iid)] MInterfacePointer data);
126 uuid("00000136-0000-0000-c000-000000000046"),
127 pointer_default(unique),
129 ] interface ISCMLocalActivator : IClassActivator
131 WERROR ISCMLocalActivator_CreateInstance( );
135 pointer_default(unique),
136 uuid("c6f3ee72-ce7e-11d1-b71e-00c04fc3111a")
137 ] interface IMachineLocalActivator
139 WERROR IMachineLocalActivator_foo();
143 pointer_default(unique),
144 uuid("e60c73e6-88f9-11cf-9af1-0020af6e72f4")
145 ] interface ILocalObjectExporter
147 WERROR ILocalObjectExporter_Foo();
150 /* Looks like this is the equivalent of .NET's
151 System.Activator class */
153 uuid("000001a0-0000-0000-c000-000000000046"),
154 pointer_default(unique),
157 interface ISystemActivator : IClassActivator
159 WERROR ISystemActivatorRemoteCreateInstance([in] hyper unknown1, /* OXID ? */
160 [in] MInterfacePointer iface1,
162 [out] uint32 unknown3,
163 [out] MInterfacePointer iface2);
168 /* Derived from IRemUnknown, this interface supports Remote Query interface */
169 /* for objects that supply additional data beyond the STDOBJREF in their */
170 /* marshaled interface packets. */
173 pointer_default(unique),
174 uuid("00000143-0000-0000-C000-000000000046")
177 interface IRemUnknown2 : IRemUnknown
179 [call_as(QueryInterface2)] WERROR RemQueryInterface2 (
180 [in, unique] GUID *ripid,
182 [in, size_is(cIids), unique] GUID *iids,
183 [out, size_is(cIids), unique] WERROR *phr,
184 [out, size_is(cIids), unique] MInterfacePointer *ppMIF
190 pointer_default(unique),
191 uuid("00020400-0000-0000-C000-000000000046")
192 ] interface IDispatch : IUnknown
196 WERROR GetTypeInfoCount(
197 [out, unique] uint16 *pctinfo);
207 [out, unique] REF_ITypeInfo *ppTInfo);
211 WERROR GetIDsOfNames(
212 [in, unique] GUID *riid,
213 /*FIXME[in,size_is(cNames)] OLESTR *rgszNames[], */
216 [out,size_is(cNames), unique] uint32 *rgDispId);
235 [in] uint32 dispIdMember,
236 [in, unique] GUID *riid,
239 [out,in, unique] DISPPARAMS *pDispParams,
240 [out, unique] VARIANT *pVarResult,
241 [out, unique] EXCEPINFO *pExcepInfo,
242 [out, unique] uint16 *puArgErr);
248 uuid("00000003-0000-0000-C000-000000000046")
249 ] interface IMarshal : IUnknown
251 WERROR MarshalInterface();
252 WERROR UnMarshalInterface();
256 uuid(DA23F6DB-6F45-466C-9EED-0B65286F2D78),
257 helpstring("ICoffeeMachine Interface"),
258 pointer_default(unique),
260 ] interface ICoffeeMachine : IUnknown
262 WERROR MakeCoffee([in,string,charset(UTF16)] uint16 *flavor);
266 uuid("db7c21f8-fe33-4c11-aea5-ceb56f076fbb"),
267 helpstring("coffeemachine class")
268 ] coclass coffeemachine
270 interface icoffeemachine;
275 pointer_default(unique),
276 uuid("0000000C-0000-0000-C000-000000000046"),
279 interface IStream : IUnknown
282 [out, size_is(num_requested), length_is(num_read)] uint8 pv[],
283 [in] uint32 num_requested,
284 [in, unique] uint32 *num_readx,
285 [out] uint32 num_read
289 [in,size_is(num_requested),unique] uint8 *data,
290 [in] uint32 num_requested,
291 [out] uint32 num_written);
295 uuid("5e9ddec7-5767-11cf-beab-00aa006c3606"),
296 progid("Samba.Simple"),
297 helpstring("simple class"),