/* * A typelib to test registration. * * Copyright 2010 Huw Davies * * 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 */ [ uuid(a2cfdbd3-2bbf-4b1c-a414-5a5904e634c9), version(1.0) ] library register_test { importlib("stdole2.tlb"); [ uuid(06c1f5f0-ea49-44f9-8e3b-4be00c7a0689) ] interface Inon_ole : IUnknown { HRESULT test(); } [ uuid(06c1f5f1-ea49-44f9-8e3b-4be00c7a0689) ] interface Inon_ole_from_disp : IDispatch { HRESULT test(); } [ uuid(06c1f5f2-ea49-44f9-8e3b-4be00c7a0689), oleautomation ] interface Iole : IUnknown { HRESULT test(); } [ uuid(06c1f5f3-ea49-44f9-8e3b-4be00c7a0689), oleautomation ] interface Iole_from_disp : IDispatch { HRESULT test(); } [ uuid(06c1f5f4-ea49-44f9-8e3b-4be00c7a0689), dual ] interface Inon_ole_dual : IUnknown { HRESULT test(); } [ uuid(06c1f5f5-ea49-44f9-8e3b-4be00c7a0689), oleautomation, dual ] interface Iole_dual : IUnknown { HRESULT test(); } [ uuid(06c1f5f6-ea49-44f9-8e3b-4be00c7a0689), dual ] interface Inon_ole_dual_from_disp : IDispatch { HRESULT test(); } [ uuid(06c1f5f7-ea49-44f9-8e3b-4be00c7a0689), oleautomation, dual ] interface Iole_dual_from_disp : IDispatch { HRESULT test(); } /* oleautomation not allowed with dispinterfaces */ [ uuid(06c1f5f8-ea49-44f9-8e3b-4be00c7a0689) ] dispinterface Idisp { properties: [id(0x0)] BSTR Name; methods: } [ uuid(06c1f5f9-ea49-44f9-8e3b-4be00c7a0689) ] dispinterface Idisp_from_non_ole_iface { interface Inon_ole; } [ uuid(06c1f5fa-ea49-44f9-8e3b-4be00c7a0689) ] dispinterface Idisp_from_ole_from_disp_iface { interface Iole_from_disp; } [ uuid(fed318b2-c2ed-11e7-abc4-cec278b6b50a) ] interface ICollection : IDispatch { [id(DISPID_VALUE)] HRESULT Item([in] int i, [out, retval] int *p); } [ uuid(f1b68c3b-02a3-4110-bc4c-cf9bc7e7f177) ] interface IInvokeTest : IDispatch { [propget, id(DISPID_VALUE)] LONG test([in] LONG i); [propputref, id(1)] LONG testprop([in] LONG *i); [propputref, id(2)] LONG testprop2([in] IUnknown *i); [id(3)] HRESULT testfunc([in] int i, [out, retval] int *p); [propget, id(4)] HRESULT testget([out, retval] ICollection **p); } /* uuid is same as for test_struct2 in test_tlb.idl, fields are different */ [uuid(4029f190-ca4a-4611-aeb9-673983cb96de)] struct test_struct3 { UINT32 field; HRESULT hr; }; }