| /* |
| * ITypeLib test IDL - we dump it and compare results in typelib.c |
| * |
| * Copyright 2007 Google (Mikolaj Zalewski) |
| * Copyright 2006,2015 Dmitry Timoshkov |
| * |
| * This library is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with this library; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
| */ |
| |
| #pragma makedep ident |
| #pragma makedep typelib |
| |
| import "oaidl.idl"; /* needed by widl */ |
| |
| midl_pragma warning ( disable : 2368 ) |
| |
| [uuid(8b05fe77-4a6c-4133-b9cd-8f81747af784)] |
| library Test |
| { |
| importlib("stdole2.tlb"); |
| |
| typedef [uuid(b14b6bb5-904e-4ff9-b247-bd361f7a0001)] |
| struct g { int g1; } g; |
| |
| [uuid(b14b6bb5-904e-4ff9-b247-bd361f7a0002)] |
| interface test_iface : IUnknown |
| { |
| HRESULT test([in] g *ptr); |
| } |
| |
| interface child_iface; |
| interface parent_iface; |
| |
| [uuid(b14b6bb5-904e-4ff9-b247-bd361f7aa001)] |
| interface parent_iface : IUnknown |
| { |
| HRESULT test1([out,retval] child_iface **iface); |
| } |
| [uuid(b14b6bb5-904e-4ff9-b247-bd361f7aa002)] |
| interface child_iface: parent_iface |
| { |
| HRESULT test2(void); |
| } |
| |
| [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753901),restricted] |
| struct _n { int n1; }; |
| [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753902),hidden] |
| typedef struct _n n; |
| [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753903),version(1.2),helpcontext(3)] |
| typedef struct _n nn; |
| |
| [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753904),restricted] |
| struct _m { int m1; }; |
| [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753905),hidden,version(1.2)] |
| typedef struct _m m; |
| [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753906),helpcontext(3)] |
| typedef struct _m mm; |
| |
| [dual,uuid(b14b6bb5-904e-4ff9-b247-bd361f7aaedd)] |
| interface IDualIface : IDispatch |
| { |
| HRESULT test(); |
| } |
| |
| [uuid(ec5dfcd6-eeb0-4cd6-b51e-8030e1dac009)] |
| interface ISimpleIface : IDispatch |
| { |
| HRESULT test(); |
| } |
| |
| [uuid(4029f190-ca4a-4611-aeb9-673983cb96dd)] |
| struct test_struct |
| { |
| HRESULT hr; |
| VARIANT_BOOL b; |
| IDispatch *disp; |
| BSTR bstr; |
| }; |
| |
| /* identical to 'test_struct', only guid is different */ |
| [uuid(4029f190-ca4a-4611-aeb9-673983cb96de)] |
| struct test_struct2 |
| { |
| HRESULT hr; |
| VARIANT_BOOL b; |
| IDispatch *disp; |
| BSTR bstr; |
| }; |
| |
| typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a75396a),restricted] |
| int t_INT; |
| |
| typedef [public] enum _a { a1, a2 } a; |
| typedef [public] enum aa { aa1, aa2 } aa; |
| typedef enum _b { b1, b2 } b; |
| typedef enum bb { bb1, bb2 } bb; |
| typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a75396b)] enum _c { c1, c2 } c; |
| typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a75396c)] enum cc { cc1, cc2 } cc; |
| |
| typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a75396d),restricted,hidden] |
| enum _d { d1, d2 } d; |
| typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a75396e),restricted,hidden] |
| enum dd { dd1, dd2 } dd; |
| |
| typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753970),restricted,hidden] |
| struct _e { int e1; } e; |
| typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753971),restricted,hidden] |
| struct ee { int ee1; } ee; |
| |
| typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753972),restricted,hidden] |
| union _f { int f1; BSTR *f2; } f; |
| typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753973),restricted,hidden] |
| union ff { int ff1; BSTR *ff2; } ff; |
| |
| [uuid(ec5dfcd6-eeb0-4cd6-b51e-8030e1dac00a)] |
| interface ITestIface : IDispatch |
| { |
| HRESULT test1(a value); |
| HRESULT test2(b value); |
| HRESULT test3(c value); |
| HRESULT test4(d value); |
| HRESULT test5(e value); |
| HRESULT test6(f value); |
| } |
| } |