1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
19 // AxTestComponents.idl : IDL source for AxTestComponents.dll
22 // This file will be processed by the MIDL tool to
23 // produce the type library (AxTestComponents.tlb) and marshalling code.
29 uuid(BFE10EBD
-8584-11D4
-8335-005004526AB4
),
31 helpstring("IBasic Interface"),
32 pointer_default(unique)
34 interface IBasic
: IDispatch
36 [id(82), helpstring("method inBool")] HRESULT inBool
([in]VARIANT_BOOL val
);
37 [id(1), helpstring("method inByte")] HRESULT inByte
([in] unsigned char val
);
38 [id(2), helpstring("method inShort")] HRESULT inShort
([in] short val
);
39 [id(3), helpstring("method inLong")] HRESULT inLong
([in] long val
);
40 [id(4), helpstring("method inString")] HRESULT inString
([in] BSTR val
);
41 [id(5), helpstring("method inFloat")] HRESULT inFloat
([in] float val
);
42 [id(6), helpstring("method inDouble")] HRESULT inDouble
([in] double val
);
43 [id(7), helpstring("method inVariant")] HRESULT inVariant
([in] VARIANT val
);
44 [id(8), helpstring("method inArray")] HRESULT inArray
([in] SAFEARRAY(VARIANT) val
);
45 [id(9), helpstring("method inObject")] HRESULT inObject
([in] IDispatch
* val
);
46 [id(83), helpstring("method inoutBool")] HRESULT inoutBool
([in,out]VARIANT_BOOL* val
);
47 [id(12), helpstring("method inoutByte")] HRESULT inoutByte
([in,out] unsigned char* val
);
48 [id(13), helpstring("method inoutShort")] HRESULT inoutShort
([in,out] short* val
);
49 [id(14), helpstring("method inoutLong")] HRESULT inoutLong
([in,out] long * val
);
50 [id(15), helpstring("method inoutString")] HRESULT inoutString
([in, out] BSTR* val
);
51 [id(16), helpstring("method inoutFloat")] HRESULT inoutFloat
([in,out] float * val
);
52 [id(17), helpstring("method inoutDouble")] HRESULT inoutDouble
([in,out] double * val
);
53 [id(18), helpstring("method inoutVariant")] HRESULT inoutVariant
([in,out] VARIANT * val
);
54 [id(19), helpstring("method inoutArray")] HRESULT inoutArray
([in,out] SAFEARRAY(VARIANT) * val
);
55 [id(20), helpstring("method inoutObject")] HRESULT inoutObject
([in,out] IDispatch
** val
);
56 [id(84), helpstring("method outBool")] HRESULT outBool
([out] VARIANT_BOOL* val
);
57 [id(23), helpstring("method outByte")] HRESULT outByte
([out] unsigned char* val
);
58 [id(24), helpstring("method outShort")] HRESULT outShort
([out] short* val
);
59 [id(25), helpstring("method outLong")] HRESULT outLong
([out] long* val
);
60 [id(26), helpstring("method outString")] HRESULT outString
([out] BSTR* val
);
61 [id(27), helpstring("method outFloat")] HRESULT outFloat
([out] float* val
);
62 [id(28), helpstring("method outDouble")] HRESULT outDouble
([out] double* val
);
63 [id(29), helpstring("method outVariant")] HRESULT outVariant
([out] VARIANT* val
);
64 [id(30), helpstring("method outArray")] HRESULT outArray
([out] SAFEARRAY(VARIANT) * val
);
65 [id(31), helpstring("method outObject")] HRESULT outObject
([out] IDispatch
** val
);
66 [propget, id(85), helpstring("property prpBool")] HRESULT prpBool
([out, retval] VARIANT_BOOL *pVal
);
67 [propput, id(85), helpstring("property prpBool")] HRESULT prpBool
([in] VARIANT_BOOL newVal
);
68 [propget, id(34), helpstring("property prpByte")] HRESULT prpByte
([out, retval] unsigned char *pVal
);
69 [propput, id(34), helpstring("property prpByte")] HRESULT prpByte
([in] unsigned char newVal
);
70 [propget, id(35), helpstring("property prpShort")] HRESULT prpShort
([out, retval] short *pVal
);
71 [propput, id(35), helpstring("property prpShort")] HRESULT prpShort
([in] short newVal
);
72 [propget, id(36), helpstring("property prpLong")] HRESULT prpLong
([out, retval] long *pVal
);
73 [propput, id(36), helpstring("property prpLong")] HRESULT prpLong
([in] long newVal
);
74 [propget, id(37), helpstring("property prpString")] HRESULT prpString
([out, retval] BSTR *pVal
);
75 [propput, id(37), helpstring("property prpString")] HRESULT prpString
([in] BSTR newVal
);
76 [propget, id(38), helpstring("property prpFloat")] HRESULT prpFloat
([out, retval] float *pVal
);
77 [propput, id(38), helpstring("property prpFloat")] HRESULT prpFloat
([in] float newVal
);
78 [propget, id(39), helpstring("property prpDouble")] HRESULT prpDouble
([out, retval] double *pVal
);
79 [propput, id(39), helpstring("property prpDouble")] HRESULT prpDouble
([in] double newVal
);
80 [propget, id(40), helpstring("property prpVariant")] HRESULT prpVariant
([out, retval] VARIANT *pVal
);
81 [propput, id(40), helpstring("property prpVariant")] HRESULT prpVariant
([in] VARIANT newVal
);
82 [propget, id(41), helpstring("property prpArray")] HRESULT prpArray
([out, retval]SAFEARRAY(VARIANT) *pVal
);
83 [propput, id(41), helpstring("property prpArray")] HRESULT prpArray
([in] SAFEARRAY(VARIANT) newVal
);
84 [propget, id(42), helpstring("property prpObject")] HRESULT prpObject
([out, retval] IDispatch
* *pVal
);
85 [propput, id(42), helpstring("property prpObject")] HRESULT prpObject
([in] IDispatch
* newVal
);
86 [id(43), helpstring("method mixed1")] HRESULT mixed1
(
87 [in, out] unsigned char* aChar
,
88 [in, out] float *aFloat
,
89 [in,out] VARIANT* inoutVar
);
90 [id(44), helpstring("method inSequenceLong")] HRESULT inSequenceLong
([in] SAFEARRAY(long) ar
);
91 [id(45), helpstring("method inSequenceByte")] HRESULT inSequenceByte
([in] SAFEARRAY(byte) ar
);
92 [id(46), helpstring("method inSequenceShort")] HRESULT inSequenceShort
([in] SAFEARRAY(short) ar
);
93 [id(47), helpstring("method inSequenceString")] HRESULT inSequenceString
([in] SAFEARRAY( BSTR) ar
);
94 [id(48), helpstring("method inSequenceFloat")] HRESULT inSequenceFloat
([in] SAFEARRAY(float) ar
);
95 [id(49), helpstring("method inSequenceDouble")] HRESULT inSequenceDouble
([in] SAFEARRAY(double) ar
);
96 [id(50), helpstring("method inSequenceObject")] HRESULT inSequenceObject
([in] SAFEARRAY(IDispatch
*) ar
);
97 [id(51), helpstring("method outSequenceByte")] HRESULT outSequenceByte
([out] SAFEARRAY(unsigned char)* val
);
98 [id(52), helpstring("method outSequenceShort")] HRESULT outSequenceShort
([out] SAFEARRAY(short)* val
);
99 [id(53), helpstring("method outSequenceLong")] HRESULT outSequenceLong
([out] SAFEARRAY(long )*val
);
100 [id(54), helpstring("method outSequenceString")] HRESULT outSequenceString
([out] SAFEARRAY(BSTR)* val
);
101 [id(55), helpstring("method outSequenceFloat")] HRESULT outSequenceFloat
([out] SAFEARRAY(float)* val
);
102 [id(56), helpstring("method outSequenceDouble")] HRESULT outSequenceDouble
([out] SAFEARRAY(double)* val
);
103 [id(57), helpstring("method outSequenceObject")] HRESULT outSequenceObject
([out] SAFEARRAY(IDispatch
*)* val
);
104 [id(58), helpstring("method inoutSequenceByte")] HRESULT inoutSequenceByte
([in,out] SAFEARRAY(unsigned char)* val
);
105 [id(59), helpstring("method inoutSequenceShort")] HRESULT inoutSequenceShort
([in,out] SAFEARRAY(short)* val
);
106 [id(60), helpstring("method inoutSequenceLong")] HRESULT inoutSequenceLong
([in,out] SAFEARRAY( long)*val
);
107 [id(61), helpstring("method inoutSequenceString")] HRESULT inoutSequenceString
([in,out] SAFEARRAY(BSTR)* val
);
108 [id(62), helpstring("method inoutSequenceFloat")] HRESULT inoutSequenceFloat
([in,out] SAFEARRAY(float)* val
);
109 [id(63), helpstring("method inoutSequenceDouble")] HRESULT inoutSequenceDouble
([in,out] SAFEARRAY(double)* val
);
110 [id(64), helpstring("method inoutSequenceObject")] HRESULT inoutSequenceObject
([in,out] SAFEARRAY(IDispatch
*)* val
);
111 [id(65), helpstring("method inMulDimArrayLong")] HRESULT inMulDimArrayLong
([in] SAFEARRAY(long) val
);
112 [id(66), helpstring("method inMulDimArrayVariant")] HRESULT inMulDimArrayVariant
([in] SAFEARRAY(VARIANT) val
);
113 [id(67), helpstring("method inMulDimArrayLong2")] HRESULT inMulDimArrayLong2
([in] SAFEARRAY(long) val
);
114 [id(68), helpstring("method inMulDimArrayVariant2")] HRESULT inMulDimArrayVariant2
([in] SAFEARRAY(VARIANT) val
);
115 [id(69), helpstring("method inMulDimArrayByte")] HRESULT inMulDimArrayByte
([in] SAFEARRAY(unsigned char) val
);
116 [id(70), helpstring("method inMulDimArrayByte2")] HRESULT inMulDimArrayByte2
([in] SAFEARRAY(unsigned char) val
);
117 [id(71), helpstring("method outMore")] HRESULT outMore
([out]long* val1
, [out]long* val2
);
119 [id(72), helpstring("method optional1")]
120 HRESULT optional1
([in] long val1
, [in, optional] VARIANT* val2
);
121 [id(73), helpstring("method optional2")]
122 HRESULT optional2
([out] long* val1
, [out, optional] VARIANT* val2
);
123 [id(74), helpstring("method optional3")]
124 HRESULT optional3
([in, optional] VARIANT* val1
, [in, optional] VARIANT* val2
);
125 [id(75), helpstring("method optional4")]
126 HRESULT optional4
([in, out, optional] VARIANT* val1
, [in, out, optional] VARIANT* val2
);
127 [id(76), helpstring("method optional5")]
128 HRESULT optional5
([out, optional] VARIANT* val1
, [out, optional] VARIANT* val2
);
129 //midl creates for val4 a BSTR "4" as default value in the TLB. The midl complains
130 //but the error message seems to be not for this case.
131 //in defaultvalue2 val4 has a VT_I4 in the TLB. This must be a bug!
132 [id(77), helpstring("method defaultvalue1")]
133 HRESULT defaultvalue1
([in, defaultvalue(1)] long val1
,
134 [in, defaultvalue(2)] double* val2
,
135 // [in, defaultvalue(3)] VARIANT val3, //ok
136 [in, defaultvalue(4)] VARIANT* val4
);
138 // bug in midl: when val3 and val4 are pointers then the generated header creates
139 // for all params default values:
140 //HRESULT STDMETHODCALLTYPE defaultvalue2(
141 // /* [defaultvalue][in] */ long *val1 = 10,
142 // /* [defaultvalue][in] */ double *val2 = 3.14,
143 // /* [defaultvalue][in] */ VARIANT *val3 = 10,
144 // /* [defaultvalue][in] */ VARIANT *val4 = 100) = 0;
145 // And that does not compile.
146 //Therefore we must not include the midl generated header, instead use
147 // #import to create the interface header
148 [id(78), helpstring("method defaultvalue2")]
149 HRESULT defaultvalue2
([in, out, defaultvalue(1)]long* val1
,
150 [in, out, defaultvalue(2)] double* val2
,
151 // [in, out, defaultvalue(3)] VARIANT *val3,
152 [in, out, defaultvalue(4)] VARIANT *val4
);
154 [id(79), helpstring("method varargfunc1"),vararg]
155 HRESULT varargfunc1
([in] long val1
, [in] SAFEARRAY(VARIANT) val2
);
156 [id(80), helpstring("method varargfunc2")]
157 HRESULT varargfunc2
([out] long* val1
, [out] SAFEARRAY(VARIANT)* val2
);
160 [id(86), helpstring("method inSequenceByteDim2")] HRESULT inSequenceByteDim2
([in] SAFEARRAY(byte) val
);
161 [id(87), helpstring("method inCurrency")] HRESULT inCurrency
([in] CY val
);
162 [id(88), helpstring("method outCurrency")] HRESULT outCurrency
([out] CY
* val
);
163 [id(89), helpstring("method inoutCurrency")] HRESULT inoutCurrency
([in,out] CY
* val
);
164 [id(90), helpstring("method inDate")] HRESULT inDate
([in] DATE val
);
165 [id(91), helpstring("method outDate")] HRESULT outDate
([out] DATE
* val
);
166 [id(92), helpstring("method inoutDate")] HRESULT inoutDate
([in,out] DATE
* val
);
167 [propget, id(93), helpstring("property prpCY")] HRESULT prpCurrency
([out, retval] CY
* pVal
);
168 [propput, id(93), helpstring("property prpCY")] HRESULT prpCurrency
([in] CY newVal
);
169 [propget, id(94), helpstring("property prpDate")] HRESULT prpDate
([out, retval] DATE
* pVal
);
170 [propput, id(94), helpstring("property prpDate")] HRESULT prpDate
([in] DATE newVal
);
171 [id(95), helpstring("method inDecimal")] HRESULT inDecimal
([in] DECIMAL val
);
172 [id(96), helpstring("method outDecimal")] HRESULT outDecimal
([out] DECIMAL
* val
);
173 [id(97), helpstring("method inoutDecimal")] HRESULT inoutDecimal
([in,out] DECIMAL
* val
);
174 [propget, id(98), helpstring("property prpDecimal")] HRESULT prpDecimal
([out, retval] DECIMAL
* pVal
);
175 [propput, id(98), helpstring("property prpDecimal")] HRESULT prpDecimal
([in] DECIMAL newVal
);
176 [id(99), helpstring("method inSCode")] HRESULT inSCode
([in] SCODE val
);
177 [id(100), helpstring("method outScode")] HRESULT outScode
([out] SCODE
* val
);
178 [id(101), helpstring("method inoutSCode")] HRESULT inoutSCode
([in,out] SCODE
* val
);
179 [propget, id(102), helpstring("property prpSCode")] HRESULT prpSCode
([out, retval] SCODE
* pVal
);
180 [propput, id(102), helpstring("property prpSCode")] HRESULT prpSCode
([in] SCODE newVal
);
181 [id(103), helpstring("method inrefLong")] HRESULT inrefLong
([in] LONG* val
);
182 [id(104), helpstring("method inrefVARIANT")] HRESULT inrefVariant
([in] VARIANT* val
);
183 [id(105), helpstring("method inrefDecimal")] HRESULT inrefDecimal
(DECIMAL
* val
);
184 [propget, id(106), helpstring("property prpRefLong")] HRESULT prpRefLong
([out, retval] long* pVal
);
185 [propputref, id(106), helpstring("property prpRefLong")] HRESULT prpRefLong
([in] long* newVal
);
186 [propget, id(107), helpstring("property prprefVariant")] HRESULT prprefVariant
([out, retval] VARIANT* pVal
);
187 [propputref, id(107), helpstring("property prprefVariant")] HRESULT prprefVariant
([in] VARIANT* newVal
);
188 [propget, id(108), helpstring("property prprefDecimal")] HRESULT prprefDecimal
([out, retval] DECIMAL
* pVal
);
189 [propputref, id(108), helpstring("property prprefDecimal")] HRESULT prprefDecimal
([in] DECIMAL
* newVal
);
190 [id(109), helpstring("method optional6")] HRESULT optional6
([in,optional] VARIANT* val1
,
191 [in,optional] VARIANT * val2
, [in,optional] VARIANT* val3
, [in,optional] VARIANT* val4
);
192 [id(110), helpstring("method optional7")] HRESULT optional7
([out,optional] VARIANT* val1
,
193 [out,optional] VARIANT * val2
, [out,optional] VARIANT* val3
, [out,optional] VARIANT* val4
);
195 [propget, id(111), helpstring("property prpMultiArg1")] HRESULT prpMultiArg1
([in,out,optional] VARIANT* val1
, [in,out,optional] VARIANT* val2
, [out, optional, retval] VARIANT* pVal
);
196 [propput, id(111), helpstring("property prpMultiArg1")] HRESULT prpMultiArg1
([in,out,optional] VARIANT* val1
, [in,out,optional] VARIANT* val2
, [in] VARIANT* newVal
);
197 [propget, id(112), helpstring("property prpMultiArg2")] HRESULT prpMultiArg2
([in] VARIANT val1
, [out, retval] VARIANT* pVal
);
198 [propput, id(112), helpstring("property prpMultiArg2")] HRESULT prpMultiArg2
([in] VARIANT val1
, [in] VARIANT newVal
);
199 [id(113), helpstring("method prpMultiArg2GetValues")] HRESULT prpMultiArg2GetValues
([out] VARIANT* val1
, [out] VARIANT* valProperty
);
200 [propget, id(114), helpstring("property prpMultiArg3")] HRESULT prpMultiArg3
([in,out] LONG* val1
, [out, retval] LONG* pVal
);
201 [propput, id(114), helpstring("property prpMultiArg3")] HRESULT prpMultiArg3
([in,out] LONG* val1
, [in] LONG newVal
);
202 [id(115), helpstring("method inUnknown")] HRESULT inUnknown
([in] IUnknown
* val
);
203 [id(116), helpstring("method outUnknown")] HRESULT outUnknown
([out] IUnknown
** val
);
204 [id(117), helpstring("method inoutUnknown")] HRESULT inoutUnknown
([in,out] IUnknown
** val
);
205 [propget, id(118), helpstring("property prpUnknown")] HRESULT prpUnknown
([out, retval] IUnknown
** pVal
);
206 [propput, id(118), helpstring("property prpUnknown")] HRESULT prpUnknown
([in] IUnknown
* newVal
);
211 uuid(96E6105A
-A436
-48b3
-BFE7
-C9302D927CCF
),
213 helpstring("IFoo Interface"),
214 pointer_default(unique)
216 interface IFoo
: IUnknown
218 HRESULT Foo
([in] IUnknown
* val
);
222 uuid(BFE10EB1
-8584-11D4
-8335-005004526AB4
),
224 helpstring("AxTestComponents 1.0 Type Library")
226 library AXTESTCOMPONENTSLib
228 importlib
("stdole32.tlb");
229 importlib
("stdole2.tlb");
232 uuid(BFE10EBE
-8584-11D4
-8335-005004526AB4
),
233 helpstring("Basic Class")
237 [default] interface IBasic
;
241 uuid(14DE9D5D
-EB9D
-4091-8E1B
-A1B1672D8C1D
),
242 helpstring("Foo Class")
246 [default] interface IFoo
;
251 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */