1*cdf0e10cSrcweir/************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir// AxTestComponents.idl : IDL source for AxTestComponents.dll 28*cdf0e10cSrcweir// 29*cdf0e10cSrcweir 30*cdf0e10cSrcweir// This file will be processed by the MIDL tool to 31*cdf0e10cSrcweir// produce the type library (AxTestComponents.tlb) and marshalling code. 32*cdf0e10cSrcweir// next id 86 33*cdf0e10cSrcweirimport "oaidl.idl"; 34*cdf0e10cSrcweirimport "ocidl.idl"; 35*cdf0e10cSrcweir [ 36*cdf0e10cSrcweir object, 37*cdf0e10cSrcweir uuid(BFE10EBD-8584-11D4-8335-005004526AB4), 38*cdf0e10cSrcweir dual, 39*cdf0e10cSrcweir helpstring("IBasic Interface"), 40*cdf0e10cSrcweir pointer_default(unique) 41*cdf0e10cSrcweir ] 42*cdf0e10cSrcweir interface IBasic : IDispatch 43*cdf0e10cSrcweir { 44*cdf0e10cSrcweir [id(82), helpstring("method inBool")] HRESULT inBool([in]VARIANT_BOOL val); 45*cdf0e10cSrcweir [id(1), helpstring("method inByte")] HRESULT inByte([in] unsigned char val); 46*cdf0e10cSrcweir [id(2), helpstring("method inShort")] HRESULT inShort([in] short val); 47*cdf0e10cSrcweir [id(3), helpstring("method inLong")] HRESULT inLong([in] long val); 48*cdf0e10cSrcweir [id(4), helpstring("method inString")] HRESULT inString([in] BSTR val); 49*cdf0e10cSrcweir [id(5), helpstring("method inFloat")] HRESULT inFloat([in] float val); 50*cdf0e10cSrcweir [id(6), helpstring("method inDouble")] HRESULT inDouble([in] double val); 51*cdf0e10cSrcweir [id(7), helpstring("method inVariant")] HRESULT inVariant([in] VARIANT val); 52*cdf0e10cSrcweir [id(8), helpstring("method inArray")] HRESULT inArray([in] SAFEARRAY(VARIANT) val); 53*cdf0e10cSrcweir [id(9), helpstring("method inObject")] HRESULT inObject([in] IDispatch* val); 54*cdf0e10cSrcweir [id(83), helpstring("method inoutBool")] HRESULT inoutBool([in,out]VARIANT_BOOL* val); 55*cdf0e10cSrcweir [id(12), helpstring("method inoutByte")] HRESULT inoutByte([in,out] unsigned char* val); 56*cdf0e10cSrcweir [id(13), helpstring("method inoutShort")] HRESULT inoutShort([in,out] short* val); 57*cdf0e10cSrcweir [id(14), helpstring("method inoutLong")] HRESULT inoutLong([in,out] long * val); 58*cdf0e10cSrcweir [id(15), helpstring("method inoutString")] HRESULT inoutString([in, out] BSTR* val); 59*cdf0e10cSrcweir [id(16), helpstring("method inoutFloat")] HRESULT inoutFloat([in,out] float * val); 60*cdf0e10cSrcweir [id(17), helpstring("method inoutDouble")] HRESULT inoutDouble([in,out] double * val); 61*cdf0e10cSrcweir [id(18), helpstring("method inoutVariant")] HRESULT inoutVariant([in,out] VARIANT * val); 62*cdf0e10cSrcweir [id(19), helpstring("method inoutArray")] HRESULT inoutArray([in,out] SAFEARRAY(VARIANT) * val); 63*cdf0e10cSrcweir [id(20), helpstring("method inoutObject")] HRESULT inoutObject([in,out] IDispatch** val); 64*cdf0e10cSrcweir [id(84), helpstring("method outBool")] HRESULT outBool([out] VARIANT_BOOL* val); 65*cdf0e10cSrcweir [id(23), helpstring("method outByte")] HRESULT outByte([out] unsigned char* val); 66*cdf0e10cSrcweir [id(24), helpstring("method outShort")] HRESULT outShort([out] short* val); 67*cdf0e10cSrcweir [id(25), helpstring("method outLong")] HRESULT outLong([out] long* val); 68*cdf0e10cSrcweir [id(26), helpstring("method outString")] HRESULT outString([out] BSTR* val); 69*cdf0e10cSrcweir [id(27), helpstring("method outFloat")] HRESULT outFloat([out] float* val); 70*cdf0e10cSrcweir [id(28), helpstring("method outDouble")] HRESULT outDouble([out] double* val); 71*cdf0e10cSrcweir [id(29), helpstring("method outVariant")] HRESULT outVariant([out] VARIANT* val); 72*cdf0e10cSrcweir [id(30), helpstring("method outArray")] HRESULT outArray([out] SAFEARRAY(VARIANT) * val); 73*cdf0e10cSrcweir [id(31), helpstring("method outObject")] HRESULT outObject([out] IDispatch** val); 74*cdf0e10cSrcweir [propget, id(85), helpstring("property prpBool")] HRESULT prpBool([out, retval] VARIANT_BOOL *pVal); 75*cdf0e10cSrcweir [propput, id(85), helpstring("property prpBool")] HRESULT prpBool([in] VARIANT_BOOL newVal); 76*cdf0e10cSrcweir [propget, id(34), helpstring("property prpByte")] HRESULT prpByte([out, retval] unsigned char *pVal); 77*cdf0e10cSrcweir [propput, id(34), helpstring("property prpByte")] HRESULT prpByte([in] unsigned char newVal); 78*cdf0e10cSrcweir [propget, id(35), helpstring("property prpShort")] HRESULT prpShort([out, retval] short *pVal); 79*cdf0e10cSrcweir [propput, id(35), helpstring("property prpShort")] HRESULT prpShort([in] short newVal); 80*cdf0e10cSrcweir [propget, id(36), helpstring("property prpLong")] HRESULT prpLong([out, retval] long *pVal); 81*cdf0e10cSrcweir [propput, id(36), helpstring("property prpLong")] HRESULT prpLong([in] long newVal); 82*cdf0e10cSrcweir [propget, id(37), helpstring("property prpString")] HRESULT prpString([out, retval] BSTR *pVal); 83*cdf0e10cSrcweir [propput, id(37), helpstring("property prpString")] HRESULT prpString([in] BSTR newVal); 84*cdf0e10cSrcweir [propget, id(38), helpstring("property prpFloat")] HRESULT prpFloat([out, retval] float *pVal); 85*cdf0e10cSrcweir [propput, id(38), helpstring("property prpFloat")] HRESULT prpFloat([in] float newVal); 86*cdf0e10cSrcweir [propget, id(39), helpstring("property prpDouble")] HRESULT prpDouble([out, retval] double *pVal); 87*cdf0e10cSrcweir [propput, id(39), helpstring("property prpDouble")] HRESULT prpDouble([in] double newVal); 88*cdf0e10cSrcweir [propget, id(40), helpstring("property prpVariant")] HRESULT prpVariant([out, retval] VARIANT *pVal); 89*cdf0e10cSrcweir [propput, id(40), helpstring("property prpVariant")] HRESULT prpVariant([in] VARIANT newVal); 90*cdf0e10cSrcweir [propget, id(41), helpstring("property prpArray")] HRESULT prpArray([out, retval]SAFEARRAY(VARIANT) *pVal); 91*cdf0e10cSrcweir [propput, id(41), helpstring("property prpArray")] HRESULT prpArray([in] SAFEARRAY(VARIANT) newVal); 92*cdf0e10cSrcweir [propget, id(42), helpstring("property prpObject")] HRESULT prpObject([out, retval] IDispatch* *pVal); 93*cdf0e10cSrcweir [propput, id(42), helpstring("property prpObject")] HRESULT prpObject([in] IDispatch* newVal); 94*cdf0e10cSrcweir [id(43), helpstring("method mixed1")] HRESULT mixed1( 95*cdf0e10cSrcweir [in, out] unsigned char* aChar, 96*cdf0e10cSrcweir [in, out] float *aFloat, 97*cdf0e10cSrcweir [in,out] VARIANT* inoutVar); 98*cdf0e10cSrcweir [id(44), helpstring("method inSequenceLong")] HRESULT inSequenceLong([in] SAFEARRAY(long) ar); 99*cdf0e10cSrcweir [id(45), helpstring("method inSequenceByte")] HRESULT inSequenceByte([in] SAFEARRAY(byte) ar); 100*cdf0e10cSrcweir [id(46), helpstring("method inSequenceShort")] HRESULT inSequenceShort([in] SAFEARRAY(short) ar); 101*cdf0e10cSrcweir [id(47), helpstring("method inSequenceString")] HRESULT inSequenceString([in] SAFEARRAY( BSTR) ar); 102*cdf0e10cSrcweir [id(48), helpstring("method inSequenceFloat")] HRESULT inSequenceFloat([in] SAFEARRAY(float) ar); 103*cdf0e10cSrcweir [id(49), helpstring("method inSequenceDouble")] HRESULT inSequenceDouble([in] SAFEARRAY(double) ar); 104*cdf0e10cSrcweir [id(50), helpstring("method inSequenceObject")] HRESULT inSequenceObject([in] SAFEARRAY(IDispatch*) ar); 105*cdf0e10cSrcweir [id(51), helpstring("method outSequenceByte")] HRESULT outSequenceByte([out] SAFEARRAY(unsigned char)* val); 106*cdf0e10cSrcweir [id(52), helpstring("method outSequenceShort")] HRESULT outSequenceShort([out] SAFEARRAY(short)* val); 107*cdf0e10cSrcweir [id(53), helpstring("method outSequenceLong")] HRESULT outSequenceLong([out] SAFEARRAY(long )*val); 108*cdf0e10cSrcweir [id(54), helpstring("method outSequenceString")] HRESULT outSequenceString([out] SAFEARRAY(BSTR)* val); 109*cdf0e10cSrcweir [id(55), helpstring("method outSequenceFloat")] HRESULT outSequenceFloat([out] SAFEARRAY(float)* val); 110*cdf0e10cSrcweir [id(56), helpstring("method outSequenceDouble")] HRESULT outSequenceDouble([out] SAFEARRAY(double)* val); 111*cdf0e10cSrcweir [id(57), helpstring("method outSequenceObject")] HRESULT outSequenceObject([out] SAFEARRAY(IDispatch*)* val); 112*cdf0e10cSrcweir [id(58), helpstring("method inoutSequenceByte")] HRESULT inoutSequenceByte([in,out] SAFEARRAY(unsigned char)* val); 113*cdf0e10cSrcweir [id(59), helpstring("method inoutSequenceShort")] HRESULT inoutSequenceShort([in,out] SAFEARRAY(short)* val); 114*cdf0e10cSrcweir [id(60), helpstring("method inoutSequenceLong")] HRESULT inoutSequenceLong([in,out] SAFEARRAY( long)*val); 115*cdf0e10cSrcweir [id(61), helpstring("method inoutSequenceString")] HRESULT inoutSequenceString([in,out] SAFEARRAY(BSTR)* val); 116*cdf0e10cSrcweir [id(62), helpstring("method inoutSequenceFloat")] HRESULT inoutSequenceFloat([in,out] SAFEARRAY(float)* val); 117*cdf0e10cSrcweir [id(63), helpstring("method inoutSequenceDouble")] HRESULT inoutSequenceDouble([in,out] SAFEARRAY(double)* val); 118*cdf0e10cSrcweir [id(64), helpstring("method inoutSequenceObject")] HRESULT inoutSequenceObject([in,out] SAFEARRAY(IDispatch*)* val); 119*cdf0e10cSrcweir [id(65), helpstring("method inMulDimArrayLong")] HRESULT inMulDimArrayLong([in] SAFEARRAY(long) val ); 120*cdf0e10cSrcweir [id(66), helpstring("method inMulDimArrayVariant")] HRESULT inMulDimArrayVariant([in] SAFEARRAY(VARIANT) val); 121*cdf0e10cSrcweir [id(67), helpstring("method inMulDimArrayLong2")] HRESULT inMulDimArrayLong2([in] SAFEARRAY(long) val); 122*cdf0e10cSrcweir [id(68), helpstring("method inMulDimArrayVariant2")] HRESULT inMulDimArrayVariant2([in] SAFEARRAY(VARIANT) val); 123*cdf0e10cSrcweir [id(69), helpstring("method inMulDimArrayByte")] HRESULT inMulDimArrayByte([in] SAFEARRAY(unsigned char) val); 124*cdf0e10cSrcweir [id(70), helpstring("method inMulDimArrayByte2")] HRESULT inMulDimArrayByte2([in] SAFEARRAY(unsigned char) val); 125*cdf0e10cSrcweir [id(71), helpstring("method outMore")] HRESULT outMore([out]long* val1, [out]long* val2); 126*cdf0e10cSrcweir 127*cdf0e10cSrcweir [id(72), helpstring("method optional1")] 128*cdf0e10cSrcweir HRESULT optional1([in] long val1, [in, optional] VARIANT* val2); 129*cdf0e10cSrcweir [id(73), helpstring("method optional2")] 130*cdf0e10cSrcweir HRESULT optional2([out] long* val1, [out, optional] VARIANT* val2); 131*cdf0e10cSrcweir [id(74), helpstring("method optional3")] 132*cdf0e10cSrcweir HRESULT optional3([in, optional] VARIANT* val1, [in, optional] VARIANT* val2); 133*cdf0e10cSrcweir [id(75), helpstring("method optional4")] 134*cdf0e10cSrcweir HRESULT optional4([in, out, optional] VARIANT* val1, [in, out, optional] VARIANT* val2); 135*cdf0e10cSrcweir [id(76), helpstring("method optional5")] 136*cdf0e10cSrcweir HRESULT optional5([out, optional] VARIANT* val1, [out, optional] VARIANT* val2); 137*cdf0e10cSrcweir //midl creates for val4 a BSTR "4" as default value in the TLB. The midl complains 138*cdf0e10cSrcweir //but the error message seems to be not for this case. 139*cdf0e10cSrcweir //in defaultvalue2 val4 has an VT_I4 in the TLB. This must be a bug! 140*cdf0e10cSrcweir [id(77), helpstring("method defaultvalue1")] 141*cdf0e10cSrcweir HRESULT defaultvalue1([in, defaultvalue(1)] long val1, 142*cdf0e10cSrcweir [in, defaultvalue(2)] double* val2, 143*cdf0e10cSrcweir // [in, defaultvalue(3)] VARIANT val3, //ok 144*cdf0e10cSrcweir [in, defaultvalue(4)] VARIANT* val4); 145*cdf0e10cSrcweir 146*cdf0e10cSrcweir // bug im midl: when val3 and val4 are pointers then the generated header cretates 147*cdf0e10cSrcweir // for all params default values: 148*cdf0e10cSrcweir //HRESULT STDMETHODCALLTYPE defaultvalue2( 149*cdf0e10cSrcweir // /* [defaultvalue][in] */ long *val1 = 10, 150*cdf0e10cSrcweir // /* [defaultvalue][in] */ double *val2 = 3.14, 151*cdf0e10cSrcweir // /* [defaultvalue][in] */ VARIANT *val3 = 10, 152*cdf0e10cSrcweir // /* [defaultvalue][in] */ VARIANT *val4 = 100) = 0; 153*cdf0e10cSrcweir // And that does not compile. 154*cdf0e10cSrcweir //Therefore we must not include the midl generated header, instead use 155*cdf0e10cSrcweir // #import to create the interface header 156*cdf0e10cSrcweir [id(78), helpstring("method defaultvalue2")] 157*cdf0e10cSrcweir HRESULT defaultvalue2([in, out, defaultvalue(1)]long* val1, 158*cdf0e10cSrcweir [in, out, defaultvalue(2)] double* val2, 159*cdf0e10cSrcweir // [in, out, defaultvalue(3)] VARIANT *val3, 160*cdf0e10cSrcweir [in, out, defaultvalue(4)] VARIANT *val4); 161*cdf0e10cSrcweir 162*cdf0e10cSrcweir [id(79), helpstring("method varargfunc1"),vararg] 163*cdf0e10cSrcweir HRESULT varargfunc1([in] long val1, [in] SAFEARRAY(VARIANT) val2); 164*cdf0e10cSrcweir [id(80), helpstring("method varargfunc2")] 165*cdf0e10cSrcweir HRESULT varargfunc2([out] long* val1, [out] SAFEARRAY(VARIANT)* val2); 166*cdf0e10cSrcweir 167*cdf0e10cSrcweir 168*cdf0e10cSrcweir [id(86), helpstring("method inSequenceByteDim2")] HRESULT inSequenceByteDim2([in] SAFEARRAY(byte) val); 169*cdf0e10cSrcweir [id(87), helpstring("method inCurrency")] HRESULT inCurrency([in] CY val); 170*cdf0e10cSrcweir [id(88), helpstring("method outCurrency")] HRESULT outCurrency([out] CY* val); 171*cdf0e10cSrcweir [id(89), helpstring("method inoutCurrency")] HRESULT inoutCurrency([in,out] CY* val); 172*cdf0e10cSrcweir [id(90), helpstring("method inDate")] HRESULT inDate([in] DATE val); 173*cdf0e10cSrcweir [id(91), helpstring("method outDate")] HRESULT outDate([out] DATE* val); 174*cdf0e10cSrcweir [id(92), helpstring("method inoutDate")] HRESULT inoutDate([in,out] DATE* val); 175*cdf0e10cSrcweir [propget, id(93), helpstring("property prpCY")] HRESULT prpCurrency([out, retval] CY* pVal); 176*cdf0e10cSrcweir [propput, id(93), helpstring("property prpCY")] HRESULT prpCurrency([in] CY newVal); 177*cdf0e10cSrcweir [propget, id(94), helpstring("property prpDate")] HRESULT prpDate([out, retval] DATE* pVal); 178*cdf0e10cSrcweir [propput, id(94), helpstring("property prpDate")] HRESULT prpDate([in] DATE newVal); 179*cdf0e10cSrcweir [id(95), helpstring("method inDecimal")] HRESULT inDecimal([in] DECIMAL val); 180*cdf0e10cSrcweir [id(96), helpstring("method outDecimal")] HRESULT outDecimal([out] DECIMAL* val); 181*cdf0e10cSrcweir [id(97), helpstring("method inoutDecimal")] HRESULT inoutDecimal([in,out] DECIMAL* val); 182*cdf0e10cSrcweir [propget, id(98), helpstring("property prpDecimal")] HRESULT prpDecimal([out, retval] DECIMAL* pVal); 183*cdf0e10cSrcweir [propput, id(98), helpstring("property prpDecimal")] HRESULT prpDecimal([in] DECIMAL newVal); 184*cdf0e10cSrcweir [id(99), helpstring("method inSCode")] HRESULT inSCode([in] SCODE val); 185*cdf0e10cSrcweir [id(100), helpstring("method outScode")] HRESULT outScode([out] SCODE* val); 186*cdf0e10cSrcweir [id(101), helpstring("method inoutSCode")] HRESULT inoutSCode([in,out] SCODE* val); 187*cdf0e10cSrcweir [propget, id(102), helpstring("property prpSCode")] HRESULT prpSCode([out, retval] SCODE* pVal); 188*cdf0e10cSrcweir [propput, id(102), helpstring("property prpSCode")] HRESULT prpSCode([in] SCODE newVal); 189*cdf0e10cSrcweir [id(103), helpstring("method inrefLong")] HRESULT inrefLong([in] LONG* val); 190*cdf0e10cSrcweir [id(104), helpstring("method inrefVARIANT")] HRESULT inrefVariant([in] VARIANT* val); 191*cdf0e10cSrcweir [id(105), helpstring("method inrefDecimal")] HRESULT inrefDecimal(DECIMAL* val); 192*cdf0e10cSrcweir [propget, id(106), helpstring("property prpRefLong")] HRESULT prpRefLong([out, retval] long* pVal); 193*cdf0e10cSrcweir [propputref, id(106), helpstring("property prpRefLong")] HRESULT prpRefLong([in] long* newVal); 194*cdf0e10cSrcweir [propget, id(107), helpstring("property prprefVariant")] HRESULT prprefVariant([out, retval] VARIANT* pVal); 195*cdf0e10cSrcweir [propputref, id(107), helpstring("property prprefVariant")] HRESULT prprefVariant([in] VARIANT* newVal); 196*cdf0e10cSrcweir [propget, id(108), helpstring("property prprefDecimal")] HRESULT prprefDecimal([out, retval] DECIMAL* pVal); 197*cdf0e10cSrcweir [propputref, id(108), helpstring("property prprefDecimal")] HRESULT prprefDecimal([in] DECIMAL* newVal); 198*cdf0e10cSrcweir [id(109), helpstring("method optional6")] HRESULT optional6([in,optional] VARIANT* val1, 199*cdf0e10cSrcweir [in,optional] VARIANT * val2, [in,optional] VARIANT* val3, [in,optional] VARIANT* val4); 200*cdf0e10cSrcweir [id(110), helpstring("method optional7")] HRESULT optional7([out,optional] VARIANT* val1, 201*cdf0e10cSrcweir [out,optional] VARIANT * val2, [out,optional] VARIANT* val3, [out,optional] VARIANT* val4); 202*cdf0e10cSrcweir 203*cdf0e10cSrcweir [propget, id(111), helpstring("property prpMultiArg1")] HRESULT prpMultiArg1([in,out,optional] VARIANT* val1, [in,out,optional] VARIANT* val2, [out, optional, retval] VARIANT* pVal); 204*cdf0e10cSrcweir [propput, id(111), helpstring("property prpMultiArg1")] HRESULT prpMultiArg1([in,out,optional] VARIANT* val1, [in,out,optional] VARIANT* val2, [in] VARIANT* newVal); 205*cdf0e10cSrcweir [propget, id(112), helpstring("property prpMultiArg2")] HRESULT prpMultiArg2([in] VARIANT val1, [out, retval] VARIANT* pVal); 206*cdf0e10cSrcweir [propput, id(112), helpstring("property prpMultiArg2")] HRESULT prpMultiArg2([in] VARIANT val1, [in] VARIANT newVal); 207*cdf0e10cSrcweir [id(113), helpstring("method prpMultiArg2GetValues")] HRESULT prpMultiArg2GetValues([out] VARIANT* val1, [out] VARIANT* valProperty); 208*cdf0e10cSrcweir [propget, id(114), helpstring("property prpMultiArg3")] HRESULT prpMultiArg3([in,out] LONG* val1, [out, retval] LONG* pVal); 209*cdf0e10cSrcweir [propput, id(114), helpstring("property prpMultiArg3")] HRESULT prpMultiArg3([in,out] LONG* val1, [in] LONG newVal); 210*cdf0e10cSrcweir [id(115), helpstring("method inUnknown")] HRESULT inUnknown([in] IUnknown* val); 211*cdf0e10cSrcweir [id(116), helpstring("method outUnknown")] HRESULT outUnknown([out] IUnknown** val); 212*cdf0e10cSrcweir [id(117), helpstring("method inoutUnknown")] HRESULT inoutUnknown([in,out] IUnknown** val); 213*cdf0e10cSrcweir [propget, id(118), helpstring("property prpUnknown")] HRESULT prpUnknown([out, retval] IUnknown** pVal); 214*cdf0e10cSrcweir [propput, id(118), helpstring("property prpUnknown")] HRESULT prpUnknown([in] IUnknown* newVal); 215*cdf0e10cSrcweir}; 216*cdf0e10cSrcweir 217*cdf0e10cSrcweir[ 218*cdf0e10cSrcweir object, 219*cdf0e10cSrcweir uuid(96E6105A-A436-48b3-BFE7-C9302D927CCF), 220*cdf0e10cSrcweir dual, 221*cdf0e10cSrcweir helpstring("IFoo Interface"), 222*cdf0e10cSrcweir pointer_default(unique) 223*cdf0e10cSrcweir] 224*cdf0e10cSrcweirinterface IFoo : IUnknown 225*cdf0e10cSrcweir{ 226*cdf0e10cSrcweir HRESULT Foo([in] IUnknown* val); 227*cdf0e10cSrcweir}; 228*cdf0e10cSrcweir 229*cdf0e10cSrcweir[ 230*cdf0e10cSrcweir uuid(BFE10EB1-8584-11D4-8335-005004526AB4), 231*cdf0e10cSrcweir version(1.0), 232*cdf0e10cSrcweir helpstring("AxTestComponents 1.0 Type Library") 233*cdf0e10cSrcweir] 234*cdf0e10cSrcweirlibrary AXTESTCOMPONENTSLib 235*cdf0e10cSrcweir{ 236*cdf0e10cSrcweir importlib("stdole32.tlb"); 237*cdf0e10cSrcweir importlib("stdole2.tlb"); 238*cdf0e10cSrcweir 239*cdf0e10cSrcweir [ 240*cdf0e10cSrcweir uuid(BFE10EBE-8584-11D4-8335-005004526AB4), 241*cdf0e10cSrcweir helpstring("Basic Class") 242*cdf0e10cSrcweir ] 243*cdf0e10cSrcweir coclass Basic 244*cdf0e10cSrcweir { 245*cdf0e10cSrcweir [default] interface IBasic; 246*cdf0e10cSrcweir }; 247*cdf0e10cSrcweir 248*cdf0e10cSrcweir [ 249*cdf0e10cSrcweir uuid(14DE9D5D-EB9D-4091-8E1B-A1B1672D8C1D), 250*cdf0e10cSrcweir helpstring("Foo Class") 251*cdf0e10cSrcweir ] 252*cdf0e10cSrcweir coclass Foo 253*cdf0e10cSrcweir { 254*cdf0e10cSrcweir [default] interface IFoo; 255*cdf0e10cSrcweir }; 256*cdf0e10cSrcweir 257*cdf0e10cSrcweir}; 258