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"),
28 /* Returns the interface with the specified IID
29 if implemented by this object */
30 [local] WERROR QueryInterface
([in,unique] GUID
*iid
,
31 [out,iid_is(riid
)] IUnknown
**data
);
35 [local] uint32 AddRef
();
39 [local] uint32 Release
();
45 uuid("00000001-0000-0000-C000-000000000046"),
46 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"),
77 interface IRemUnknown
: IUnknown
79 typedef [public] struct
81 WERROR
hResult; /* result of call */
82 STDOBJREF std
; /* data for returned interface */
86 [call_as
(QueryInterface
)] WERROR RemQueryInterface
(
87 [in,unique] GUID
*ripid
, /* interface to QI on */
88 [in] uint32 cRefs
, /* count of AddRefs requested */
89 [in] uint16 cIids
, /* count of IIDs that follow */
90 [in, unique, size_is(cIids
)] GUID
*iids
, /* IIDs to QI for */
91 [out, size_is(cIids
), unique] MInterfacePointer
*ip
96 GUID ipid
; /* ipid to AddRef/Release */
101 [call_as
(AddRef
)] WERROR RemAddRef
(
102 [in] uint16 cInterfaceRefs
,
103 [in, size_is(cInterfaceRefs
)] REMINTERFACEREF InterfaceRefs
[],
104 [out, size_is(cInterfaceRefs
), unique] WERROR
*pResults
107 [call_as
(Release
)] WERROR RemRelease
(
108 [in] uint16 cInterfaceRefs
,
109 [in, size_is(cInterfaceRefs
)] REMINTERFACEREF InterfaceRefs
[]
114 uuid("00000140-0000-0000-c000-000000000046"),
115 pointer_default(unique),
117 ] interface IClassActivator
: IUnknown
119 void GetClassObject
([in] GUID clsid
,
123 [out, iid_is(iid
)] MInterfacePointer data
);
127 uuid("00000136-0000-0000-c000-000000000046"),
128 pointer_default(unique),
130 ] interface ISCMLocalActivator
: IClassActivator
132 WERROR ISCMLocalActivator_CreateInstance
( );
136 pointer_default(unique),
137 uuid("c6f3ee72-ce7e-11d1-b71e-00c04fc3111a")
138 ] interface IMachineLocalActivator
140 WERROR IMachineLocalActivator_foo
();
144 pointer_default(unique),
145 uuid("e60c73e6-88f9-11cf-9af1-0020af6e72f4")
146 ] interface ILocalObjectExporter
148 WERROR ILocalObjectExporter_Foo
();
151 /* Looks like this is the equivalent of .NET's
152 System.Activator class */
154 uuid("000001a0-0000-0000-c000-000000000046"),
155 pointer_default(unique),
158 interface ISystemActivator
: IClassActivator
160 WERROR ISystemActivatorRemoteCreateInstance
([in] hyper unknown1
, /* OXID ? */
161 [in] MInterfacePointer iface1
,
163 [out] uint32 unknown3
,
164 [out] MInterfacePointer iface2
);
169 /* Derived from IRemUnknown, this interface supports Remote Query interface */
170 /* for objects that supply additional data beyond the STDOBJREF in their */
171 /* marshaled interface packets. */
174 pointer_default(unique),
175 uuid("00000143-0000-0000-C000-000000000046"),
179 interface IRemUnknown2
: IRemUnknown
181 [call_as
(QueryInterface2
)] WERROR RemQueryInterface2
(
182 [in, unique] GUID
*ripid
,
184 [in, size_is(cIids
), unique] GUID
*iids
,
185 [out, size_is(cIids
), unique] WERROR
*phr
,
186 [out, size_is(cIids
), unique] MInterfacePointer
*ppMIF
192 pointer_default(unique),
193 uuid("00020400-0000-0000-C000-000000000046"),
195 ] interface IDispatch
: IUnknown
199 WERROR GetTypeInfoCount
(
200 [out, unique] uint16
*pctinfo
);
210 [out, unique] REF_ITypeInfo
*ppTInfo
);
214 WERROR GetIDsOfNames
(
215 [in, unique] GUID
*riid
,
216 /*FIXME[in,size_is(cNames)] OLESTR *rgszNames[], */
219 [out,size_is(cNames
), unique] uint32
*rgDispId
);
238 [in] uint32 dispIdMember
,
239 [in, unique] GUID
*riid
,
242 [out,in, unique] DISPPARAMS
*pDispParams
,
243 [out, unique] VARIANT *pVarResult
,
244 [out, unique] EXCEPINFO
*pExcepInfo
,
245 [out, unique] uint16
*puArgErr
);
251 uuid("00000003-0000-0000-C000-000000000046")
252 ] interface IMarshal
: IUnknown
254 WERROR MarshalInterface
();
255 WERROR UnMarshalInterface
();
259 uuid(DA23F6DB
-6F45
-466C
-9EED
-0B65286F2D78
),
260 helpstring("ICoffeeMachine Interface"),
261 pointer_default(unique),
264 ] interface ICoffeeMachine
: IUnknown
266 WERROR MakeCoffee
([in,string,charset
(UTF16
)] uint16
*flavor
);
270 uuid("db7c21f8-fe33-4c11-aea5-ceb56f076fbb"),
271 helpstring("coffeemachine class")
272 ] coclass coffeemachine
274 interface icoffeemachine
;
279 pointer_default(unique),
280 uuid("0000000C-0000-0000-C000-000000000046"),
281 helpstring("Stream"),
284 interface IStream
: IUnknown
287 [out, size_is(num_requested
), length_is(num_read
)] uint8 pv
[],
288 [in] uint32 num_requested
,
289 [in, unique] uint32
*num_readx
,
290 [out] uint32 num_read
294 [in,size_is(num_requested
),unique] uint8
*data
,
295 [in] uint32 num_requested
,
296 [out] uint32 num_written
);
300 uuid("5e9ddec7-5767-11cf-beab-00aa006c3606"),
301 progid
("Samba.Simple"),
302 helpstring("simple class"),