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
)] MInterfacePointer
*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 iface
,
164 [out] uint32 unknown3
,
165 [out] MInterfacePointer iface
);
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(DB7C21F8
-FE33
-4C11
-AEA5
-CEB56F076FBB
),
268 helpstring("CoffeeMachine Class")
269 ] coclass CoffeeMachine
272 uuid(DA23F6DB
-6F45
-466C
-9EED
-0B65286F2D78
),
273 helpstring("ICoffeeMachine Interface"),
274 pointer_default(unique)
277 interface ICoffeeMachine
: IUnknown
279 [helpstring("method MakeCoffee")] HRESULT MakeCoffee
(BSTR *flavor
);
285 pointer_default(unique),
286 uuid("0000000C-0000-0000-C000-000000000046"),
289 interface IStream
: IUnknown
292 [out, size_is(num_requested
), length_is(num_read
)] uint8 pv
[],
293 [in] uint32 num_requested
,
294 [in] uint32
*num_readx
,
295 [out] uint32 num_read
299 [in,size_is(num_requested
)] uint8
*data
,
300 [in] uint32 num_requested
,
301 [out] uint32 num_written
);