ReactOS  0.4.14-dev-358-gbef841c
test_tlb.idl
Go to the documentation of this file.
1 /*
2  * ITypeLib test IDL - we dump it and compare results in typelib.c
3  *
4  * Copyright 2007 Google (Mikolaj Zalewski)
5  * Copyright 2006,2015 Dmitry Timoshkov
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20  */
21 
22 #pragma makedep ident
23 #pragma makedep typelib
24 
25 import "oaidl.idl"; /* needed by widl */
26 
27 midl_pragma warning ( disable : 2368 )
28 
29 [uuid(8b05fe77-4a6c-4133-b9cd-8f81747af784)]
31 {
32  importlib("stdole2.tlb");
33 
34  typedef [uuid(b14b6bb5-904e-4ff9-b247-bd361f7a0001)]
35  struct g { int g1; } g;
36 
37  [uuid(b14b6bb5-904e-4ff9-b247-bd361f7a0002)]
38  interface test_iface : IUnknown
39  {
40  HRESULT test([in] g *ptr);
41  }
42 
43  interface child_iface;
44  interface parent_iface;
45 
46  [uuid(b14b6bb5-904e-4ff9-b247-bd361f7aa001)]
47  interface parent_iface : IUnknown
48  {
49  HRESULT test1([out,retval] child_iface **iface);
50  }
51  [uuid(b14b6bb5-904e-4ff9-b247-bd361f7aa002)]
52  interface child_iface: parent_iface
53  {
54  HRESULT test2(void);
55  }
56 
57  [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753901),restricted]
58  struct _n { int n1; };
59  [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753902),hidden]
60  typedef struct _n n;
61  [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753903),version(1.2),helpcontext(3)]
62  typedef struct _n nn;
63 
64  [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753904),restricted]
65  struct _m { int m1; };
66  [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753905),hidden,version(1.2)]
67  typedef struct _m m;
68  [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753906),helpcontext(3)]
69  typedef struct _m mm;
70 
71  [dual,uuid(b14b6bb5-904e-4ff9-b247-bd361f7aaedd)]
72  interface IDualIface : IDispatch
73  {
74  HRESULT test();
75  }
76 
77  [uuid(ec5dfcd6-eeb0-4cd6-b51e-8030e1dac009)]
78  interface ISimpleIface : IDispatch
79  {
80  HRESULT test();
81  }
82 
83  [uuid(4029f190-ca4a-4611-aeb9-673983cb96dd)]
84  struct test_struct
85  {
86  HRESULT hr;
88  IDispatch *disp;
89  BSTR bstr;
90  };
91 
92  /* identical to 'test_struct', only guid is different */
93  [uuid(4029f190-ca4a-4611-aeb9-673983cb96de)]
94  struct test_struct2
95  {
96  HRESULT hr;
98  IDispatch *disp;
99  BSTR bstr;
100  };
101 
102  typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a75396a),restricted]
103  int t_INT;
104 
105  typedef [public] enum _a { a1, a2 } a;
106  typedef [public] enum aa { aa1, aa2 } aa;
107  typedef enum _b { b1, b2 } b;
108  typedef enum bb { bb1, bb2 } bb;
109  typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a75396b)] enum _c { c1, c2 } c;
110  typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a75396c)] enum cc { cc1, cc2 } cc;
111 
112  typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a75396d),restricted,hidden]
113  enum _d { d1, d2 } d;
114  typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a75396e),restricted,hidden]
115  enum dd { dd1, dd2 } dd;
116 
117  typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753970),restricted,hidden]
118  struct _e { int e1; } e;
119  typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753971),restricted,hidden]
120  struct ee { int ee1; } ee;
121 
122  typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753972),restricted,hidden]
123  union _f { int f1; BSTR *f2; } f;
124  typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753973),restricted,hidden]
125  union ff { int ff1; BSTR *ff2; } ff;
126 
127  [uuid(ec5dfcd6-eeb0-4cd6-b51e-8030e1dac00a)]
128  interface ITestIface : IDispatch
129  {
130  HRESULT test1(a value);
131  HRESULT test2(b value);
132  HRESULT test3(c value);
133  HRESULT test4(d value);
134  HRESULT test5(e value);
135  HRESULT test6(f value);
136  }
137 }
disp
Definition: i386-dis.c:3181
HRESULT hr
Definition: shlfolder.c:183
void test3(void)
Definition: hivetest.c:423
coclass SHDocVw::ShellWindows dual
Definition: exdisp.idl:631
GLdouble n
Definition: glext.h:7729
#define test
Definition: rosglue.h:37
OLECHAR * BSTR
Definition: compat.h:1942
FT_Library library
Definition: cffdrivr.c:654
short VARIANT_BOOL
Definition: compat.h:1939
const GLfloat * m
Definition: glext.h:10848
__u32 hidden
Definition: mkdosfs.c:371
midl_pragma warning(disable :2368) [uuid(8b05fe77-4a6c-4133-b9cd-8f81747af784)] library Test
Definition: test_tlb.idl:27
#define a
Definition: ke_i.h:78
#define e
Definition: ke_i.h:82
static PVOID ptr
Definition: dispmode.c:27
static CRYPT_DATA_BLOB b1[]
Definition: msg.c:573
static const WCHAR version[]
Definition: asmname.c:66
importlib("stdole2.tlb")
#define b
Definition: ke_i.h:79
GLboolean GLboolean g
Definition: glext.h:6204
GLfloat f
Definition: glext.h:7540
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
#define d
Definition: ke_i.h:81
LONG HRESULT
Definition: typedefs.h:77
static const struct update_accum a2
Definition: msg.c:586
void test1(void)
Definition: hivetest.c:366
const GLubyte * c
Definition: glext.h:8905
static FILE * out
Definition: regtests2xml.c:44
int n1
Definition: dwarfget.c:148
uint32_t cc
Definition: isohybrid.c:75
#define f1(x, y, z)
Definition: sha1.c:30
void test2(void)
Definition: regtest.c:173
GLuint in
Definition: glext.h:9616
#define f
Definition: ke_i.h:83
int disable
Definition: msacm.c:1365
#define c
Definition: ke_i.h:80
static CRYPT_DATA_BLOB b2[]
Definition: msg.c:582
static const struct update_accum a1
Definition: msg.c:578
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204
void test5(void)
Definition: hivetest.c:623
int f2(S1 &, S2 &)
void test4(void)
Definition: hivetest.c:461
void test6(void)
Definition: hivetest.c:646