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"
24 uuid(d96d8a3e
-78b6
-4c8d
-8f27
-059db959be8a
),
26 helpstring("Test Typelib")
30 importlib
("stdole2.tlb");
34 STATE_UNWIDGETIFIED
= 1,
38 typedef struct tagMYSTRUCT
44 coclass ApplicationObject2
;
48 uuid(12345678-1234-4321-1234-121212121212)
50 interface ISomethingFromDispatch
: IDispatch
52 HRESULT anotherfn
(void);
59 uuid(3f7e06fe
-0bce
-46f0
-8b7d
-3a68393c7967
)
61 interface ItestDual
: IDispatch
68 uuid(a1f8cae3
-c947
-4c5f
-b57d
-c87b9b5f3586
),
72 interface IWidget
: IDispatch
74 [propput, id(DISPID_TM_NAME
)]
75 HRESULT Name
([in] BSTR name
);
76 [propget, id(DISPID_TM_NAME
)]
77 HRESULT Name
([out, retval] BSTR *name
);
79 [id(DISPID_TM_DOSOMETHING
)]
80 HRESULT DoSomething
([in] double number
, [out] BSTR *str1
, [in, defaultvalue("")] BSTR str2
, [in, optional] VARIANT *opt
);
82 [propget, id(DISPID_TM_STATE
)]
83 HRESULT State
([out, retval] STATE
*state
);
84 [propput, id(DISPID_TM_STATE
)]
85 HRESULT State
([in] STATE state
);
88 HRESULT Map
([in] BSTR bstrId
, [out, retval] BSTR *sValue
);
90 [id(DISPID_TM_SETOLECOLOR
)]
91 HRESULT SetOleColor
([in] OLE_COLOR val
);
93 [id(DISPID_TM_GETOLECOLOR
)]
94 HRESULT GetOleColor
([out, retval] OLE_COLOR
*pVal
);
96 [propget, id(DISPID_TM_CLONE
)]
97 HRESULT Clone
([out, retval] IWidget
**ppVal
);
99 [propget, id(DISPID_TM_CLONEDISPATCH
)]
100 HRESULT CloneDispatch
([out, retval] IDispatch
**ppVal
);
102 [propget, id(DISPID_TM_CLONECOCLASS
)]
103 HRESULT CloneCoclass
([out, retval] ApplicationObject2
**ppVal
);
105 [propget, id(DISPID_VALUE
)]
106 HRESULT Value
([in] VARIANT *value
, [out, retval] VARIANT *retval);
108 [id(DISPID_TM_ARRAY
)]
109 HRESULT Array
([in] SAFEARRAY(BSTR) values
);
111 [id(DISPID_TM_VARARRAYPTR
)]
112 HRESULT VariantArrayPtr
([in] SAFEARRAY(VARIANT) *values
);
114 [id(DISPID_TM_VARIANT
)]
115 void Variant([in] VARIANT var
);
117 [vararg, id(DISPID_TM_VARARG
)]
118 void VarArg([in] int numexpect
, [in] SAFEARRAY(VARIANT) values
);
120 [id(DISPID_TM_STRUCTARGS
)]
121 void StructArgs
([in] MYSTRUCT byval
, [in] MYSTRUCT
*byptr
, [in] MYSTRUCT arr
[5]);
123 [id(DISPID_TM_ERROR
)]
126 [propget, id(DISPID_TM_CLONEINTERFACE
)]
127 HRESULT CloneInterface
([out, retval] ISomethingFromDispatch
**ppVal
);
132 uuid(a1f8cae3
-c947
-3c5f
-a57c
-c88b9b6f3586
),
136 interface IStaticWidget
: IDispatch
138 [id(DISPID_TM_TESTDUAL
)]
139 HRESULT TestDual
([in] ItestDual
*p
);
144 uuid(a028db05
-30f0
-4b93
-b17a
-41c72f831d84
),
145 #if
0 /* FIXME: commented out as causes widl to generate incorrect typelib */
150 interface IKindaEnumWidget
: IUnknown
153 [out] IWidget
**widget
);
156 [out] unsigned long *count
);
161 [out] IKindaEnumWidget
**ppenum
);
166 uuid(a028db06
-30f0
-4b93
-b17a
-41c72f831d84
),
168 interface INonOleAutomation
: IUnknown
170 [id(DISPID_NOA_BSTRRET
)]
177 uuid(d377f60b
-8639-4261-8ee7
-75c8340d2cc9
),
184 HRESULT BadModuleFoo
();
188 dllname("oleaut32.dll"),
189 uuid(d377f60c
-8639-4261-8ee7
-75c8340d2cc9
),
196 HRESULT BadEntryFoo
();
200 uuid(bb171948
-10ec
-407a
-9a57
-2f85f797ff1a
),
203 coclass ApplicationObject2
206 [source] interface IWidget
;
211 uuid(375f8a9d
-33d0
-44f3
-b972
-61f8407899e0
)
213 interface ItestIF1
: IUnknown
215 HRESULT fn1
([in] int x
);
216 HRESULT fn2
([out,retval] int *x
);
221 uuid(094056a3
-666f
-4956-be12
-1859668310b8
)
223 interface ItestIF2
: ItestIF1
225 HRESULT fn3
([in] int y
);
230 uuid(33baba09
-2e68
-43ab
-81fe
-d84b403df2e5
)
232 dispinterface ItestIF3
239 uuid(a01005c7
-7491-42eb
-94f3
-668e37ce60a6
)
241 dispinterface ItestIF4
245 [id(0x1c)] HRESULT fn
([in] int z
);
250 uuid(4ab61e25
-c09f
-4239-8f7f
-7a018ea0199f
),
253 interface ItestIF5
: ItestIF2
255 [id(0x1234)] HRESULT fn4
([in] int a
);
256 [id(0x1235)] HRESULT fn5
([in] int a
);
261 uuid(ec236d8e
-2cc7
-44f2
-b394
-36c86ff3da74
)
263 interface ItestIF6
: IDispatch
265 [id(0x1234)] HRESULT fn4
([in] int a
);
266 [id(0x1235)] HRESULT fn5
([in] int a
);
271 uuid(f711b105
-554d
-4751-818c
-46fcc5d7c0d5
),
274 interface ItestIF7
: ItestIF6
276 [id(0x1236)] HRESULT fn6
([in] int a
);
281 uuid(bdfa260b
-ef40
-43d3
-b071
-cddec919f132
)
285 HRESULT fn1
([in] int x
);
286 HRESULT fn2
([out,retval] int *x
);
291 uuid(51033a23
-dc37
-4f19
-aa34
-4d8a670458a0
)
294 interface ItestIF9
: ItestIF8
296 HRESULT fn3
([in] int y
);
301 uuid(2e8f14fe
-0bce
-42f0
-8b7d
-3af8393c7967
)
303 dispinterface ItestIF10
310 uuid(7d9e9371
-482e-4944-9b19
-511fc705236f
)
312 dispinterface ItestIF11