ReactOS 0.4.17-dev-357-ga8f14ff
tmarshal.idl
Go to the documentation of this file.
1/*
2 * Copyright (C) 2005 Robert Shearman
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 *
18 */
19
20#pragma makedep ident
21#pragma makedep typelib
22
23import "ocidl.idl";
24
26{
52
78};
79
80static const int DISPID_TM_NEG_RESTRICTED = -26;
81
83{
86};
87
88[
89 uuid(d96d8a3e-78b6-4c8d-8f27-059db959be8a),
90 version(2.5),
91 helpstring("Test Typelib")
92]
94{
95 importlib("stdole2.tlb");
96
97 typedef enum tagSTATE
98 {
102
103 typedef struct tagMYSTRUCT
104 {
107 UINT uarr[8];
108 } MYSTRUCT;
109
110 typedef [public] int myint_t;
111
112 typedef int array_t[4];
113
114 coclass ApplicationObject2;
115
116 [
117 odl,
119 uuid(12345678-1234-4321-1234-121212121212)
120 ]
122 {
124 }
125
126 [
127 odl,
129 dual,
130 uuid(3f7e06fe-0bce-46f0-8b7d-3a68393c7967)
131 ]
133 {
135 }
136
137 [
138 odl,
139 uuid(3f7e06fe-0bce-46f0-8b7d-3a68393c7968)
140 ]
142 {
144 }
145
146 [
147 odl,
149 dual,
150 uuid(3f7e06fe-0bce-46f0-8b7d-3a68393c7969)
151 ]
153 {
155 }
156
157 [
159 uuid(3f7e06fe-0bce-46f0-8b7d-3a68393c796a)
160 ]
162 {
164 }
165
166 [
168 uuid(3f7e06fe-0bce-46f0-8b7d-3a68393c796b)
169 ]
171 {
173 }
174
175cpp_quote("struct Coclass1 { ICoclass1 *iface; };")
177cpp_quote("struct Coclass3 { ICoclass1 *iface; };")
178
179 [
180 uuid(3f7e06fe-0bce-46f0-8b7d-3a68393c796c)
181 ]
182 coclass Coclass1
183 {
184 [default] interface ICoclass1;
185 interface ICoclass2;
186 }
187
188 [
189 uuid(3f7e06fe-0bce-46f0-8b7d-3a68393c796d)
190 ]
191 coclass Coclass2
192 {
193 interface ICoclass1;
194 [default] interface ICoclass2;
195 }
196
197 [
198 uuid(3f7e06fe-0bce-46f0-8b7d-3a68393c796e)
199 ]
200 coclass Coclass3
201 {
202 interface ICoclass1;
203 interface ICoclass2;
204 }
205
206 [
207 odl,
208 uuid(a1f8cae3-c947-4c5f-b57d-c87b9b5f3586),
209 oleautomation,
210 dual
211 ]
212 interface IWidget : IDispatch
213 {
214 [propput, id(DISPID_TM_NAME)]
215 HRESULT Name([in] BSTR name);
216 [propget, id(DISPID_TM_NAME)]
217 HRESULT Name([out, retval] BSTR *name);
219 [id(DISPID_TM_DOSOMETHING)]
220 HRESULT DoSomething([in] double number, [out] BSTR *str1, [in, defaultvalue("")] BSTR str2, [in, optional] VARIANT *opt);
221
222 [propget, id(DISPID_TM_STATE)]
223 HRESULT State([out, retval] STATE *state);
224 [propput, id(DISPID_TM_STATE)]
225 HRESULT State([in] STATE state);
226
227 [id(DISPID_TM_MAP)]
228 HRESULT Map([in] BSTR bstrId, [out, retval] BSTR *sValue);
229
230 [id(DISPID_TM_SETOLECOLOR)]
231 HRESULT SetOleColor([in] OLE_COLOR val);
233 [id(DISPID_TM_GETOLECOLOR)]
234 HRESULT GetOleColor([out, retval] OLE_COLOR *pVal);
235
236 [propget, id(DISPID_TM_CLONE)]
237 HRESULT Clone([out, retval] IWidget **ppVal);
239 [propget, id(DISPID_TM_CLONEDISPATCH)]
240 HRESULT CloneDispatch([out, retval] IDispatch **ppVal);
242 [propget, id(DISPID_TM_CLONECOCLASS)]
243 HRESULT CloneCoclass([out, retval] ApplicationObject2 **ppVal);
245 [propget, id(DISPID_VALUE)]
246 HRESULT Value([in] VARIANT *value, [out, retval] VARIANT *retval);
248 [id(DISPID_TM_VARARRAYPTR)]
249 HRESULT VariantArrayPtr([in] SAFEARRAY(VARIANT) *values);
250
251 [vararg, id(DISPID_TM_VARARG)]
252 HRESULT VarArg([in] int numexpect, [in] SAFEARRAY(VARIANT) values);
253
254 [id(DISPID_TM_ERROR)]
255 HRESULT Error();
256
257 [propget, id(DISPID_TM_CLONEINTERFACE)]
258 HRESULT CloneInterface([out, retval] ISomethingFromDispatch **ppVal);
259
260 [id(DISPID_TM_PROP_WITH_LCID), propput]
261 HRESULT prop_with_lcid([in,lcid] long lcid, [in] INT i);
263 [id(DISPID_TM_PROP_WITH_LCID), propget]
264 HRESULT prop_with_lcid([in,lcid] long lcid, [out,retval] INT *i);
265
266 [id(DISPID_TM_PROP_INT), propget]
267 HRESULT prop_int([out,retval] INT *i);
268
269 [id(DISPID_TM_PROP_UINT), propget]
270 HRESULT prop_uint([out,retval] UINT *i);
271
272 [id(DISPID_TM_BYREF_UINT)]
273 HRESULT ByRefUInt([in, out] UINT *i);
274
275 [id(DISPID_TM_PROP_OPT_ARG), propput]
276 HRESULT prop_opt_arg([in,optional] INT opt, [in] INT i);
277
278 [id(DISPID_TM_PROP_REQ_ARG), propput]
279 HRESULT prop_req_arg([in] INT req, [in] INT i);
280
281 [id(DISPID_TM_RESTRICTED), restricted]
282 HRESULT pos_restrict([out, retval] INT *i);
283
284 [id(DISPID_TM_NEG_RESTRICTED), restricted]
285 HRESULT neg_restrict([out, retval] INT *i);
286
287 [id(DISPID_TM_VARARG_RUN), vararg]
288 HRESULT VarArg_Run([in] BSTR name, [in] SAFEARRAY(VARIANT) params, [out, retval] VARIANT *result);
290 [id(DISPID_TM_VARARG_REF_RUN), vararg]
291 HRESULT VarArg_Ref_Run([in] BSTR name, [in] SAFEARRAY(VARIANT) *params, [out, retval] VARIANT *result);
293 [id(DISPID_TM_BASETYPES_IN)]
294 HRESULT basetypes_in([in] signed char c, [in] short s, [in] long l, [in] hyper h,
295 [in] unsigned char uc, [in] unsigned short us, [in] unsigned long ul,
296 [in] unsigned hyper uh, [in] float f, [in] double d, [in] STATE st);
297
298 [id(DISPID_TM_BASETYPES_OUT)]
299 HRESULT basetypes_out([out] signed char *c, [out] short *s, [out] long *l, [out] hyper *h,
300 [out] unsigned char *uc, [out] unsigned short *us, [out] unsigned long *ul,
301 [out] unsigned hyper *uh, [out] float *f, [out] double *d, [out] STATE *st);
302
303 [id(DISPID_TM_FLOAT_ABI)]
304 HRESULT float_abi([in] float f, [in] double d, [in] int i, [in] float f2, [in] double d2);
305
306 [id(DISPID_TM_INT_PTR)]
307 HRESULT long_ptr([in] long *in, [out] long *out, [in, out] long *in_out);
308
309 [id(DISPID_TM_INT_PTR_PTR)]
310 HRESULT long_ptr_ptr([in] long **in, [out] long **out, [in, out] long **in_out);
311
312 [id(DISPID_TM_IFACE_IN)]
313 HRESULT iface_in([in] IUnknown *unk, [in] IDispatch *disp, [in] ISomethingFromDispatch *sfd);
314
315 [id(DISPID_TM_IFACE_OUT)]
316 HRESULT iface_out([out] IUnknown **unk, [out] IDispatch **disp, [out] ISomethingFromDispatch **sfd);
317
318 [id(DISPID_TM_IFACE_PTR)]
319 HRESULT iface_ptr([in] ISomethingFromDispatch **in, [out] ISomethingFromDispatch **out, [in, out] ISomethingFromDispatch **in_out);
320
321 [id(DISPID_TM_IFACE_NOPTR)]
322 HRESULT iface_noptr([in] IUnknown unk, [in] IDispatch disp, [in] ISomethingFromDispatch sfd);
323
324 [id(DISPID_TM_BSTR)]
325 HRESULT bstr([in] BSTR in, [out] BSTR *out, [in] BSTR *in_ptr, [in, out] BSTR *in_out);
327 [id(DISPID_TM_VARIANT)]
328 HRESULT variant([in] VARIANT in, [out] VARIANT *out, [in] VARIANT *in_ptr, [in, out] VARIANT *in_out);
329
330 [id(DISPID_TM_SAFEARRAY)]
331 HRESULT safearray([in] SAFEARRAY(int) in, [out] SAFEARRAY(int) *out, [in] SAFEARRAY(int) *in_ptr, [in, out] SAFEARRAY(int) *in_out);
332
333 [id(DISPID_TM_STRUCT)]
334 HRESULT mystruct([in] MYSTRUCT in, [out] MYSTRUCT *out, [in] MYSTRUCT *in_ptr, [in, out] MYSTRUCT *in_out);
335
336 [id(DISPID_TM_STRUCT_PTR_PTR)]
337 HRESULT mystruct_ptr_ptr([in] MYSTRUCT **in);
339 struct thin
341 short a;
342 char b;
343 };
345 [id(DISPID_TM_THIN_STRUCT)]
346 HRESULT thin_struct([in] struct thin in);
348 [id(DISPID_TM_RECT)]
349 HRESULT rect([in] RECT in, [out] RECT *out, [in] RECT *in_ptr, [in, out] RECT *in_out);
350
351 struct complex
353 char c;
354 int i;
355 int *pi;
356 int **ppi;
357 ISomethingFromDispatch *iface;
358 ISomethingFromDispatch **iface_ptr;
359 BSTR bstr;
360 VARIANT var;
361 MYSTRUCT mystruct;
362 array_t arr;
363 myint_t myint;
364 };
365
366 [id(DISPID_TM_COMPLEX_STRUCT)]
367 HRESULT complex_struct([in] struct complex in);
368
369 [id(DISPID_TM_ARRAY)]
370 HRESULT array([in] array_t in, [out] array_t out, [in, out] array_t in_out);
371
372 [id(DISPID_TM_VARIANT_ARRAY)]
373 HRESULT variant_array([in] VARIANT in[2], [out] VARIANT out[2], [in, out] VARIANT in_out[2]);
374
375 [id(DISPID_TM_STRUCT_ARRAY)]
376 HRESULT mystruct_array([in] MYSTRUCT in[2]);
377
378 [id(DISPID_TM_TYPEDEF)]
379 HRESULT myint([in] myint_t val, [in] myint_t *ptr, [in] myint_t **ptr_ptr);
380
381 [id(DISPID_TM_COCLASS)]
382 HRESULT Coclass([in] Coclass1 *class1, [in] Coclass2 *class2, [in] Coclass3 *class3);
383
384 [id(DISPID_TM_COCLASS_PTR)]
385 HRESULT Coclass_ptr([in] Coclass1 **in, [out] Coclass1 **out, [in, out] Coclass1 **in_out);
386
387 [id(DISPID_TM_COCLASS_NOPTR)]
388 HRESULT Coclass_noptr([in] Coclass1 class1, [in] Coclass2 class2, [in] Coclass3 class3);
389
390 [id(DISPID_TM_NOINOUT)]
391 HRESULT no_in_out(BSTR str, int i);
392 }
393
394 [
395 odl,
396 uuid(a1f8cae3-c947-3c5f-a57c-c88b9b6f3586),
397 oleautomation,
398 dual
399 ]
400 interface IStaticWidget : IDispatch
401 {
402 [id(DISPID_TM_TESTDUAL)]
403 HRESULT TestDual([in] ItestDual *p);
404
405 [id(DISPID_TM_TESTSECONDIFACE)]
406 HRESULT TestSecondIface([in] ITestSecondIface *p);
407 }
408
409 [
410 odl,
411 uuid(a028db05-30f0-4b93-b17a-41c72f831d84),
412 dual,
413 oleautomation
414 ]
415 interface IKindaEnumWidget : IUnknown
416 {
417 HRESULT Next(
418 [out] IWidget **widget);
419
420 HRESULT Count(
421 [out] unsigned long *count);
422
423 HRESULT Reset();
424
425 HRESULT Clone(
426 [out] IKindaEnumWidget **ppenum);
427 }
428
429 [
430 odl,
431 uuid(a028db06-30f0-4b93-b17a-41c72f831d84),
432 ]
433 interface INonOleAutomation : IUnknown
434 {
435 [id(DISPID_NOA_BSTRRET)]
436 BSTR BstrRet();
437
438 [id(DISPID_NOA_ERROR)]
439 HRESULT Error();
440 }
441
442
443 [
444 dllname("comm.drv"),
445 uuid(d377f60b-8639-4261-8ee7-75c8340d2cc9),
446 ]
447 module BadModule
448 {
449 [
450 entry("Foo"),
451 ]
452 HRESULT BadModuleFoo();
453 };
454
455 [
456 dllname("oleaut32.dll"),
457 uuid(d377f60c-8639-4261-8ee7-75c8340d2cc9),
458 ]
459 module BadEntry
460 {
461 [
462 entry("Foo"),
463 ]
464 HRESULT BadEntryFoo();
465 };
466
467 [
468 uuid(bb171948-10ec-407a-9a57-2f85f797ff1a),
469 appobject,
470 ]
471 coclass ApplicationObject2
472 {
473 interface IWidget;
474 [source] interface IWidget;
475 };
476
477 [
478 odl,
479 uuid(375f8a9d-33d0-44f3-b972-61f8407899e0)
480 ]
481 interface ItestIF1 : IUnknown
482 {
483 HRESULT fn1([in] int x);
484 HRESULT fn2([out,retval] int *x);
485 }
486
487 [
488 odl,
489 uuid(094056a3-666f-4956-be12-1859668310b8)
490 ]
491 interface ItestIF2 : ItestIF1
492 {
493 HRESULT fn3([in] int y);
494 }
495
496 [
497 odl,
498 uuid(33baba09-2e68-43ab-81fe-d84b403df2e5)
499 ]
500 dispinterface ItestIF3
501 {
502 interface ItestIF2;
503 }
504
505 [
506 odl,
507 uuid(a01005c7-7491-42eb-94f3-668e37ce60a6)
508 ]
509 dispinterface ItestIF4
510 {
511 properties:
512 methods:
513 [id(0x1c)] HRESULT fn([in] int z);
514 }
515
516 [
517 odl,
518 uuid(4ab61e25-c09f-4239-8f7f-7a018ea0199f),
519 dual
520 ]
521 interface ItestIF5 : ItestIF2
522 {
523 [id(0x1234)] HRESULT fn4([in] int a);
524 [id(0x1235)] HRESULT fn5([in] int a);
525 }
526
527 [
528 odl,
529 uuid(ec236d8e-2cc7-44f2-b394-36c86ff3da74)
530 ]
531 interface ItestIF6 : IDispatch
532 {
533 [id(0x1234)] HRESULT fn4([in] int a);
534 [id(0x1235)] HRESULT fn5([in] int a);
535 }
536
537 [
538 odl,
539 uuid(f711b105-554d-4751-818c-46fcc5d7c0d5),
540 dual
541 ]
542 interface ItestIF7 : ItestIF6
543 {
544 [id(0x1236)] HRESULT fn6([in] GUID a);
545 }
546
547 [
548 odl,
549 uuid(bdfa260b-ef40-43d3-b071-cddec919f132)
550 ]
551 interface ItestIF8
552 {
553 HRESULT fn1([in] int x);
554 HRESULT fn2([out,retval] int *x);
555 }
556
557 [
558 odl,
559 uuid(51033a23-dc37-4f19-aa34-4d8a670458a0)
560
561 ]
562 interface ItestIF9 : ItestIF8
563 {
564 HRESULT fn3([in] int y);
565 }
566
567 [
568 odl,
569 uuid(2e8f14fe-0bce-42f0-8b7d-3af8393c7967)
570 ]
571 dispinterface ItestIF10
572 {
573 interface ItestIF9;
574 }
575
576 [
577 odl,
578 uuid(7d9e9371-482e-4944-9b19-511fc705236f)
579 ]
580 dispinterface ItestIF11
581 {
582 interface ItestIF7;
583 }
584
585 [
586 object,
587 uuid(ec236d8e-2cc7-44f2-b394-46c86ff3da74),
588 dual,
589 oleautomation
590 ]
591 interface ItestIF12 : IDispatch
592 {
593 [id(0x1234)] HRESULT fn4([in] int a);
594 [id(0x1235)] HRESULT fn5([in] int a);
595 }
596
597 [
598 object,
599 uuid(f711b105-554d-4751-818c-56fcc5d7c0d5),
600 dual,
601 oleautomation
602 ]
603 interface ItestIF13 : ItestIF12
604 {
605 [id(0x1236)] HRESULT fn6([in] GUID a);
606 }
607
608};
coclass MediaStreamFilter helpstring("Stream Class")
FT_Library library
Definition: cffdrivr.c:660
CD3D10_BUFFER_DESC D3D10_BUFFER_DESC cpp_quote(" ~CD3D10_BUFFER_DESC() {}") operator const D3D10_BUFFER_DESC &() const
Definition: d3d10.idl:491
static const WCHAR version[]
Definition: asmname.c:66
Definition: msctf.idl:532
#define comm
Definition: kernel32.h:11
int array_t[4]
Definition: tmarshal.idl:112
@ STATE_WIDGETIFIED
Definition: tmarshal.idl:100
@ STATE_UNWIDGETIFIED
Definition: tmarshal.idl:99
coclass TestTypelib::Coclass3 odl
coclass TestTypelib::Coclass3 oleautomation
Definition: tmarshal.idl:209
unsigned int UINT
Definition: ndis.h:50
Definition: userinit.h:57
INonOleAutomation_dispids
Definition: tmarshal.idl:83
@ DISPID_NOA_ERROR
Definition: tmarshal.idl:85
@ DISPID_NOA_BSTRRET
Definition: tmarshal.idl:84
static const int DISPID_TM_NEG_RESTRICTED
Definition: tmarshal.idl:80
IWidget_dispids
Definition: tmarshal.idl:26
@ DISPID_TM_CLONECOCLASS
Definition: tmarshal.idl:35
@ DISPID_TM_FLOAT_ABI
Definition: tmarshal.idl:55
@ DISPID_TM_PROP_INT
Definition: tmarshal.idl:43
@ DISPID_TM_COCLASS_PTR
Definition: tmarshal.idl:75
@ DISPID_TM_MAP
Definition: tmarshal.idl:30
@ DISPID_TM_COMPLEX_STRUCT
Definition: tmarshal.idl:69
@ DISPID_TM_VARARG_RUN
Definition: tmarshal.idl:50
@ DISPID_TM_STRUCT_ARRAY
Definition: tmarshal.idl:72
@ DISPID_TM_PROP_WITH_LCID
Definition: tmarshal.idl:42
@ DISPID_TM_STRUCT
Definition: tmarshal.idl:65
@ DISPID_TM_IFACE_PTR
Definition: tmarshal.idl:60
@ DISPID_TM_VALUE
Definition: tmarshal.idl:36
@ DISPID_TM_TESTDUAL
Definition: tmarshal.idl:41
@ DISPID_TM_RECT
Definition: tmarshal.idl:68
@ DISPID_TM_PROP_OPT_ARG
Definition: tmarshal.idl:46
@ DISPID_TM_BASETYPES_OUT
Definition: tmarshal.idl:54
@ DISPID_TM_RESTRICTED
Definition: tmarshal.idl:48
@ DISPID_TM_COCLASS_NOPTR
Definition: tmarshal.idl:76
@ DISPID_TM_SAFEARRAY
Definition: tmarshal.idl:64
@ DISPID_TM_VARARG
Definition: tmarshal.idl:38
@ DISPID_TM_IFACE_OUT
Definition: tmarshal.idl:59
@ DISPID_TM_TESTSECONDIFACE
Definition: tmarshal.idl:49
@ DISPID_TM_VARARG_REF_RUN
Definition: tmarshal.idl:51
@ DISPID_TM_IFACE_IN
Definition: tmarshal.idl:58
@ DISPID_TM_CLONEINTERFACE
Definition: tmarshal.idl:40
@ DISPID_TM_VARARRAYPTR
Definition: tmarshal.idl:37
@ DISPID_TM_ERROR
Definition: tmarshal.idl:39
@ DISPID_TM_INT_PTR_PTR
Definition: tmarshal.idl:57
@ DISPID_TM_IFACE_NOPTR
Definition: tmarshal.idl:61
@ DISPID_TM_NOINOUT
Definition: tmarshal.idl:77
@ DISPID_TM_STRUCT_PTR_PTR
Definition: tmarshal.idl:66
@ DISPID_TM_CLONE
Definition: tmarshal.idl:33
@ DISPID_TM_VARIANT
Definition: tmarshal.idl:63
@ DISPID_TM_TYPEDEF
Definition: tmarshal.idl:73
@ DISPID_TM_DOSOMETHING
Definition: tmarshal.idl:28
@ DISPID_TM_COCLASS
Definition: tmarshal.idl:74
@ DISPID_TM_ARRAY
Definition: tmarshal.idl:70
@ DISPID_TM_VARIANT_ARRAY
Definition: tmarshal.idl:71
@ DISPID_TM_PROP_UINT
Definition: tmarshal.idl:44
@ DISPID_TM_NAME
Definition: tmarshal.idl:27
@ DISPID_TM_STATE
Definition: tmarshal.idl:29
@ DISPID_TM_INT_PTR
Definition: tmarshal.idl:56
@ DISPID_TM_BSTR
Definition: tmarshal.idl:62
@ DISPID_TM_CLONEDISPATCH
Definition: tmarshal.idl:34
@ DISPID_TM_BYREF_UINT
Definition: tmarshal.idl:45
@ DISPID_TM_BASETYPES_IN
Definition: tmarshal.idl:53
@ DISPID_TM_GETOLECOLOR
Definition: tmarshal.idl:32
@ DISPID_TM_PROP_REQ_ARG
Definition: tmarshal.idl:47
@ DISPID_TM_THIN_STRUCT
Definition: tmarshal.idl:67
@ DISPID_TM_SETOLECOLOR
Definition: tmarshal.idl:31
int32_t INT
Definition: typedefs.h:58
uint64_t ULONGLONG
Definition: typedefs.h:67