r15776: Don't generate ref pointers in Samba4-generated code. There is no point
[Samba/aatanasov.git] / source / librpc / idl / dcom.idl
blob2a2b9ad8b1324875f45dcb6a429342826a71de78
1 /**
2 DCOM interfaces
3 http://www.ietf.org/internet-drafts/draft-brown-dcom-v1-spec-04.txt
4 */
7 uuid("18f70770-8e64-11cf-9af1-0020af6e72f4"),
8 pointer_default(unique),
9 version(0.0)
10 ] interface dcom_Unknown
12 void UseProtSeq();
13 void GetCustomProtseqInfo();
14 void UpdateResolverBindings();
18 object,
19 uuid("00000000-0000-0000-C000-000000000046"),
20 pointer_default(unique),
21 helpstring("Base interface for all COM interfaces"),
22 keepref
24 interface IUnknown
26 /*****************/
27 /* Function 0x00 */
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);
33 /*****************/
34 /* Function 0x01 */
35 [local] uint32 AddRef();
37 /*****************/
38 /* Function 0x02 */
39 [local] uint32 Release();
44 object,
45 uuid("00000001-0000-0000-C000-000000000046"),
46 pointer_default(unique),
47 keepref
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. */
69 /* */
71 uuid("00000131-0000-0000-C000-000000000046"),
72 object,
73 pointer_default(unique),
74 helpstring("Remote version of IUnknown"),
75 keepref
77 interface IRemUnknown : IUnknown
79 typedef [public] struct
81 WERROR hResult; /* result of call */
82 STDOBJREF std; /* data for returned interface */
84 REMQIRESULT;
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
94 typedef struct
96 GUID ipid; /* ipid to AddRef/Release */
97 uint32 cPublicRefs;
98 uint32 cPrivateRefs;
99 } REMINTERFACEREF;
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),
116 object
117 ] interface IClassActivator : IUnknown
119 void GetClassObject([in] GUID clsid,
120 [in] uint32 context,
121 [in] uint32 locale,
122 [in] GUID iid,
123 [out, iid_is(iid)] MInterfacePointer data);
127 uuid("00000136-0000-0000-c000-000000000046"),
128 pointer_default(unique),
129 object
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),
156 object
158 interface ISystemActivator : IClassActivator
160 WERROR ISystemActivatorRemoteCreateInstance([in] hyper unknown1, /* OXID ? */
161 [in] MInterfacePointer iface1,
162 [in] hyper unknown2,
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. */
173 object,
174 pointer_default(unique),
175 uuid("00000143-0000-0000-C000-000000000046"),
176 keepref
179 interface IRemUnknown2 : IRemUnknown
181 [call_as(QueryInterface2)] WERROR RemQueryInterface2 (
182 [in, unique] GUID *ripid,
183 [in] uint16 cIids,
184 [in, size_is(cIids), unique] GUID *iids,
185 [out, size_is(cIids), unique] WERROR *phr,
186 [out, size_is(cIids), unique] MInterfacePointer *ppMIF
191 object,
192 pointer_default(unique),
193 uuid("00020400-0000-0000-C000-000000000046"),
194 keepref
195 ] interface IDispatch : IUnknown
197 /*****************/
198 /* Function 0x03 */
199 WERROR GetTypeInfoCount(
200 [out, unique] uint16 *pctinfo);
202 typedef struct {
203 } REF_ITypeInfo;
205 /*****************/
206 /* Function 0x04 */
207 WERROR GetTypeInfo (
208 [in] uint16 iTInfo,
209 [in] uint32 lcid,
210 [out, unique] REF_ITypeInfo *ppTInfo);
212 /*****************/
213 /* Function 0x05 */
214 WERROR GetIDsOfNames(
215 [in, unique] GUID *riid,
216 /*FIXME[in,size_is(cNames)] OLESTR *rgszNames[], */
217 [in] uint16 cNames,
218 [in] uint32 lcid,
219 [out,size_is(cNames), unique] uint32 *rgDispId);
221 typedef struct {
222 uint16 vartype;
223 uint16 FIXME;
224 } VARIANT;
226 typedef struct {
227 uint16 FIXME;
228 } DISPPARAMS;
230 /* Exception ? */
231 typedef struct {
232 uint16 FIXME;
233 } EXCEPINFO;
235 /*****************/
236 /* Function 0x06 */
237 WERROR Invoke(
238 [in] uint32 dispIdMember,
239 [in, unique] GUID *riid,
240 [in] uint32 lcid,
241 [in] uint16 wFlags,
242 [out,in, unique] DISPPARAMS *pDispParams,
243 [out, unique] VARIANT *pVarResult,
244 [out, unique] EXCEPINFO *pExcepInfo,
245 [out, unique] uint16 *puArgErr);
249 object,
250 local,
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),
262 object,
263 keepref
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;
278 object,
279 pointer_default(unique),
280 uuid("0000000C-0000-0000-C000-000000000046"),
281 helpstring("Stream"),
282 keepref
284 interface IStream : IUnknown
286 WERROR Read(
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
293 WERROR Write(
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"),
303 internal
304 ] coclass simple
306 interface IStream;