| /* |
| * Copyright (C) 2005 Robert Shearman |
| * |
| * 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 |
| * |
| */ |
| |
| #include "tmarshal_dispids.h" |
| import "ocidl.idl"; |
| |
| [ |
| uuid(d96d8a3e-78b6-4c8d-8f27-059db959be8a), |
| version(1.0), |
| helpstring("Test Typelib") |
| ] |
| library TestTypelib |
| { |
| importlib("stdole2.tlb"); |
| |
| typedef enum tagSTATE |
| { |
| STATE_UNWIDGETIFIED = 1, |
| STATE_WIDGETIFIED |
| } STATE; |
| |
| typedef struct tagMYSTRUCT |
| { |
| INT field1; |
| ULONGLONG field2; |
| } MYSTRUCT; |
| |
| coclass ApplicationObject2; |
| |
| [ |
| odl, |
| uuid(12345678-1234-4321-1234-121212121212) |
| ] |
| interface ISomethingFromDispatch : IDispatch |
| { |
| HRESULT anotherfn(void); |
| } |
| |
| [ |
| odl, |
| oleautomation, |
| dual, |
| uuid(3f7e06fe-0bce-46f0-8b7d-3a68393c7967) |
| ] |
| interface ItestDual : IDispatch |
| { |
| HRESULT test(); |
| } |
| |
| [ |
| odl, |
| uuid(a1f8cae3-c947-4c5f-b57d-c87b9b5f3586), |
| oleautomation, |
| dual |
| ] |
| interface IWidget : IDispatch |
| { |
| [propput, id(DISPID_TM_NAME)] |
| HRESULT Name([in] BSTR name); |
| [propget, id(DISPID_TM_NAME)] |
| HRESULT Name([out, retval] BSTR *name); |
| |
| [id(DISPID_TM_DOSOMETHING)] |
| HRESULT DoSomething([in] double number, [out] BSTR *str1, [in, defaultvalue("")] BSTR str2, [in, optional] VARIANT *opt); |
| |
| [propget, id(DISPID_TM_STATE)] |
| HRESULT State([out, retval] STATE *state); |
| [propput, id(DISPID_TM_STATE)] |
| HRESULT State([in] STATE state); |
| |
| [id(DISPID_TM_MAP)] |
| HRESULT Map([in] BSTR bstrId, [out, retval] BSTR *sValue); |
| |
| [id(DISPID_TM_SETOLECOLOR)] |
| HRESULT SetOleColor([in] OLE_COLOR val); |
| |
| [id(DISPID_TM_GETOLECOLOR)] |
| HRESULT GetOleColor([out, retval] OLE_COLOR *pVal); |
| |
| [propget, id(DISPID_TM_CLONE)] |
| HRESULT Clone([out, retval] IWidget **ppVal); |
| |
| [propget, id(DISPID_TM_CLONEDISPATCH)] |
| HRESULT CloneDispatch([out, retval] IDispatch **ppVal); |
| |
| [propget, id(DISPID_TM_CLONECOCLASS)] |
| HRESULT CloneCoclass([out, retval] ApplicationObject2 **ppVal); |
| |
| [propget, id(DISPID_VALUE)] |
| HRESULT Value([in] VARIANT *value, [out, retval] VARIANT *retval); |
| |
| [id(DISPID_TM_ARRAY)] |
| HRESULT Array([in] SAFEARRAY(BSTR) values); |
| |
| [id(DISPID_TM_VARARRAYPTR)] |
| HRESULT VariantArrayPtr([in] SAFEARRAY(VARIANT) *values); |
| |
| [id(DISPID_TM_VARIANT)] |
| void Variant([in] VARIANT var); |
| |
| [vararg, id(DISPID_TM_VARARG)] |
| void VarArg([in] int numexpect, [in] SAFEARRAY(VARIANT) values); |
| |
| [id(DISPID_TM_STRUCTARGS)] |
| void StructArgs([in] MYSTRUCT byval, [in] MYSTRUCT *byptr, [in] MYSTRUCT arr[5]); |
| |
| [id(DISPID_TM_ERROR)] |
| HRESULT Error(); |
| |
| [propget, id(DISPID_TM_CLONEINTERFACE)] |
| HRESULT CloneInterface([out, retval] ISomethingFromDispatch **ppVal); |
| } |
| |
| [ |
| odl, |
| uuid(a1f8cae3-c947-3c5f-a57c-c88b9b6f3586), |
| oleautomation, |
| dual |
| ] |
| interface IStaticWidget : IDispatch |
| { |
| [id(DISPID_TM_TESTDUAL)] |
| HRESULT TestDual([in] ItestDual *p); |
| } |
| |
| [ |
| odl, |
| uuid(a028db05-30f0-4b93-b17a-41c72f831d84), |
| #if 0 /* FIXME: commented out as causes widl to generate incorrect typelib */ |
| dual, |
| #endif |
| oleautomation |
| ] |
| interface IKindaEnumWidget : IUnknown |
| { |
| HRESULT Next( |
| [out] IWidget **widget); |
| |
| HRESULT Count( |
| [out] unsigned long *count); |
| |
| HRESULT Reset(); |
| |
| HRESULT Clone( |
| [out] IKindaEnumWidget **ppenum); |
| } |
| |
| [ |
| odl, |
| uuid(a028db06-30f0-4b93-b17a-41c72f831d84), |
| ] |
| interface INonOleAutomation : IUnknown |
| { |
| [id(DISPID_NOA_BSTRRET)] |
| BSTR BstrRet(); |
| } |
| |
| |
| [ |
| dllname("comm.drv"), |
| uuid(d377f60b-8639-4261-8ee7-75c8340d2cc9), |
| ] |
| module BadModule |
| { |
| [ |
| entry("Foo"), |
| ] |
| HRESULT BadModuleFoo(); |
| }; |
| |
| [ |
| dllname("oleaut32.dll"), |
| uuid(d377f60c-8639-4261-8ee7-75c8340d2cc9), |
| ] |
| module BadEntry |
| { |
| [ |
| entry("Foo"), |
| ] |
| HRESULT BadEntryFoo(); |
| }; |
| |
| [ |
| uuid(bb171948-10ec-407a-9a57-2f85f797ff1a), |
| appobject, |
| ] |
| coclass ApplicationObject2 |
| { |
| interface IWidget; |
| [source] interface IWidget; |
| }; |
| |
| [ |
| odl, |
| uuid(375f8a9d-33d0-44f3-b972-61f8407899e0) |
| ] |
| interface ItestIF1 : IUnknown |
| { |
| HRESULT fn1([in] int x); |
| HRESULT fn2([out,retval] int *x); |
| } |
| |
| [ |
| odl, |
| uuid(094056a3-666f-4956-be12-1859668310b8) |
| ] |
| interface ItestIF2 : ItestIF1 |
| { |
| HRESULT fn3([in] int y); |
| } |
| |
| [ |
| odl, |
| uuid(33baba09-2e68-43ab-81fe-d84b403df2e5) |
| ] |
| dispinterface ItestIF3 |
| { |
| interface ItestIF2; |
| } |
| |
| [ |
| odl, |
| uuid(a01005c7-7491-42eb-94f3-668e37ce60a6) |
| ] |
| dispinterface ItestIF4 |
| { |
| properties: |
| methods: |
| [id(0x1c)] HRESULT fn([in] int z); |
| } |
| |
| [ |
| odl, |
| uuid(4ab61e25-c09f-4239-8f7f-7a018ea0199f), |
| dual |
| ] |
| interface ItestIF5 : ItestIF2 |
| { |
| [id(0x1234)] HRESULT fn4([in] int a); |
| [id(0x1235)] HRESULT fn5([in] int a); |
| } |
| |
| [ |
| odl, |
| uuid(ec236d8e-2cc7-44f2-b394-36c86ff3da74) |
| ] |
| interface ItestIF6 : IDispatch |
| { |
| [id(0x1234)] HRESULT fn4([in] int a); |
| [id(0x1235)] HRESULT fn5([in] int a); |
| } |
| |
| [ |
| odl, |
| uuid(f711b105-554d-4751-818c-46fcc5d7c0d5), |
| dual |
| ] |
| interface ItestIF7 : ItestIF6 |
| { |
| [id(0x1236)] HRESULT fn6([in] int a); |
| } |
| |
| [ |
| odl, |
| uuid(bdfa260b-ef40-43d3-b071-cddec919f132) |
| ] |
| interface ItestIF8 |
| { |
| HRESULT fn1([in] int x); |
| HRESULT fn2([out,retval] int *x); |
| } |
| |
| [ |
| odl, |
| uuid(51033a23-dc37-4f19-aa34-4d8a670458a0) |
| |
| ] |
| interface ItestIF9 : ItestIF8 |
| { |
| HRESULT fn3([in] int y); |
| } |
| |
| [ |
| odl, |
| uuid(2e8f14fe-0bce-42f0-8b7d-3af8393c7967) |
| ] |
| dispinterface ItestIF10 |
| { |
| interface ItestIF9; |
| } |
| |
| [ |
| odl, |
| uuid(7d9e9371-482e-4944-9b19-511fc705236f) |
| ] |
| dispinterface ItestIF11 |
| { |
| interface ItestIF7; |
| } |
| |
| }; |