oleaut32: Tests for more 'syntax 2' dispinterfaces.
[wine/hacks.git] / dlls / oleaut32 / tests / tmarshal.idl
blob2d1a9bc55609053c534ba44f66c17c25af1c9073
1 /*
2 * Copyright (C) 2005 Robert Shearman
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.
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.
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
20 #include "tmarshal_dispids.h"
21 import "ocidl.idl";
24 uuid(d96d8a3e-78b6-4c8d-8f27-059db959be8a),
25 version(1.0),
26 helpstring("Test Typelib")
28 library TestTypelib
30 importlib("stdole2.tlb");
32 typedef enum tagSTATE
34 STATE_UNWIDGETIFIED = 1,
35 STATE_WIDGETIFIED
36 } STATE;
38 coclass ApplicationObject2;
41 odl,
42 uuid(a1f8cae3-c947-4c5f-b57d-c87b9b5f3586),
43 oleautomation,
44 dual
46 interface IWidget : IDispatch
48 [propput, id(DISPID_TM_NAME)]
49 HRESULT Name([in] BSTR name);
50 [propget, id(DISPID_TM_NAME)]
51 HRESULT Name([out, retval] BSTR *name);
53 [id(DISPID_TM_DOSOMETHING)]
54 HRESULT DoSomething([in] double number, [out] BSTR *str1, [in, defaultvalue("")] BSTR str2, [in, optional] VARIANT *opt);
56 [propget, id(DISPID_TM_STATE)]
57 HRESULT State([out, retval] STATE *state);
58 [propput, id(DISPID_TM_STATE)]
59 HRESULT State([in] STATE state);
61 [id(DISPID_TM_MAP)]
62 HRESULT Map([in] BSTR bstrId, [out, retval] BSTR *sValue);
64 [id(DISPID_TM_SETOLECOLOR)]
65 HRESULT SetOleColor([in] OLE_COLOR val);
67 [id(DISPID_TM_GETOLECOLOR)]
68 HRESULT GetOleColor([out, retval] OLE_COLOR *pVal);
70 [propget, id(DISPID_TM_CLONE)]
71 HRESULT Clone([out, retval] IWidget **ppVal);
73 [propget, id(DISPID_TM_CLONEDISPATCH)]
74 HRESULT CloneDispatch([out, retval] IDispatch **ppVal);
76 [propget, id(DISPID_TM_CLONECOCLASS)]
77 HRESULT CloneCoclass([out, retval] ApplicationObject2 **ppVal);
79 [propget, id(DISPID_VALUE)]
80 HRESULT Value([in] VARIANT *value, [out, retval] VARIANT *retval);
82 [id(DISPID_TM_ARRAY)]
83 HRESULT Array([in] SAFEARRAY(BSTR) values);
85 [id(DISPID_TM_VARARRAYPTR)]
86 HRESULT VariantArrayPtr([in] SAFEARRAY(VARIANT) *values);
88 [id(DISPID_TM_VARIANT)]
89 void Variant([in] VARIANT var);
91 [id(DISPID_TM_ERROR)]
92 HRESULT Error();
96 odl,
97 uuid(a028db05-30f0-4b93-b17a-41c72f831d84),
98 #if 0 /* FIXME: commented out as causes widl to generate incorrect typelib */
99 dual,
100 #endif
101 oleautomation
103 interface IKindaEnumWidget : IUnknown
105 HRESULT Next(
106 [out] IWidget **widget);
108 HRESULT Count(
109 [out] unsigned long *count);
111 HRESULT Reset();
113 HRESULT Clone(
114 [out] IKindaEnumWidget **ppenum);
118 odl,
119 uuid(a028db06-30f0-4b93-b17a-41c72f831d84),
121 interface INonOleAutomation : IUnknown
123 [id(DISPID_NOA_BSTRRET)]
124 BSTR BstrRet();
129 dllname("comm.drv"),
130 uuid(d377f60b-8639-4261-8ee7-75c8340d2cc9),
132 module BadModule
135 entry("Foo"),
137 HRESULT BadModuleFoo();
141 dllname("oleaut32.dll"),
142 uuid(d377f60c-8639-4261-8ee7-75c8340d2cc9),
144 module BadEntry
147 entry("Foo"),
149 HRESULT BadEntryFoo();
153 uuid(bb171948-10ec-407a-9a57-2f85f797ff1a),
154 appobject,
156 coclass ApplicationObject2
158 interface IWidget;
159 [source] interface IWidget;
163 odl,
164 uuid(375f8a9d-33d0-44f3-b972-61f8407899e0)
166 interface ItestIF1 : IUnknown
168 HRESULT fn1([in] int x);
169 HRESULT fn2([out,retval] int *x);
173 odl,
174 uuid(094056a3-666f-4956-be12-1859668310b8)
176 interface ItestIF2 : ItestIF1
178 HRESULT fn3([in] int y);
182 odl,
183 uuid(33baba09-2e68-43ab-81fe-d84b403df2e5)
185 dispinterface ItestIF3
187 interface ItestIF2;
191 odl,
192 uuid(a01005c7-7491-42eb-94f3-668e37ce60a6)
194 dispinterface ItestIF4
196 properties:
197 methods:
198 [id(0x1c)] HRESULT fn([in] int z);
202 odl,
203 uuid(4ab61e25-c09f-4239-8f7f-7a018ea0199f),
204 dual
206 interface ItestIF5 : ItestIF2
208 [id(0x1234)] HRESULT fn4([in] int a);
209 [id(0x1235)] HRESULT fn5([in] int a);
213 odl,
214 uuid(ec236d8e-2cc7-44f2-b394-36c86ff3da74)
216 interface ItestIF6 : IDispatch
218 [id(0x1234)] HRESULT fn4([in] int a);
219 [id(0x1235)] HRESULT fn5([in] int a);
223 odl,
224 uuid(f711b105-554d-4751-818c-46fcc5d7c0d5),
225 dual
227 interface ItestIF7 : ItestIF6
229 [id(0x1236)] HRESULT fn6([in] int a);
233 odl,
234 uuid(bdfa260b-ef40-43d3-b071-cddec919f132)
236 interface ItestIF8
238 HRESULT fn1([in] int x);
239 HRESULT fn2([out,retval] int *x);
243 odl,
244 uuid(51033a23-dc37-4f19-aa34-4d8a670458a0)
247 interface ItestIF9 : ItestIF8
249 HRESULT fn3([in] int y);
253 odl,
254 uuid(2e8f14fe-0bce-42f0-8b7d-3af8393c7967)
256 dispinterface ItestIF10
258 interface ItestIF9;
262 odl,
263 uuid(7d9e9371-482e-4944-9b19-511fc705236f)
265 dispinterface ItestIF11
267 interface ItestIF7;