1*b1cdbd2cSJim Jagielski/************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski// XCallback_Impl.idl : IDL source for XCallback_Impl.dll 24*b1cdbd2cSJim Jagielski// 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski// This file will be processed by the MIDL tool to 27*b1cdbd2cSJim Jagielski// produce the type library (XCallback_Impl.tlb) and marshalling code. 28*b1cdbd2cSJim Jagielski 29*b1cdbd2cSJim Jagielskiimport "oaidl.idl"; 30*b1cdbd2cSJim Jagielskiimport "ocidl.idl"; 31*b1cdbd2cSJim Jagielski [ 32*b1cdbd2cSJim Jagielski object, 33*b1cdbd2cSJim Jagielski uuid(180FF55F-6F5C-11D4-8330-005004526AB4), 34*b1cdbd2cSJim Jagielski dual, 35*b1cdbd2cSJim Jagielski helpstring("ICallback Interface"), 36*b1cdbd2cSJim Jagielski pointer_default(unique) 37*b1cdbd2cSJim Jagielski ] 38*b1cdbd2cSJim Jagielski interface ICallback : IDispatch 39*b1cdbd2cSJim Jagielski { 40*b1cdbd2cSJim Jagielski [id(1), helpstring("method func1")] HRESULT func1(); 41*b1cdbd2cSJim Jagielski [id(2), helpstring("method returnInterface")] HRESULT returnInterface([out, retval] IDispatch** ppdisp); 42*b1cdbd2cSJim Jagielski [id(3), helpstring("method outInterface")] HRESULT outInterface([out] IDispatch** ppdisp); 43*b1cdbd2cSJim Jagielski [id(4), helpstring("method outValuesMixed")] HRESULT outValuesMixed([in] long val, [out] long* pval, [in] BSTR string); 44*b1cdbd2cSJim Jagielski [id(5), helpstring("method outValuesAll")] HRESULT outValuesAll([out] IDispatch** ppdisp, [out] IDispatch** ppSimpleStruct, [out] long* aSimpleEnum, 45*b1cdbd2cSJim Jagielski [out] SAFEARRAY( VARIANT)* outSeq, 46*b1cdbd2cSJim Jagielski [out] VARIANT* varAny, 47*b1cdbd2cSJim Jagielski [out] VARIANT_BOOL * aBool, 48*b1cdbd2cSJim Jagielski [out] short* aChar, 49*b1cdbd2cSJim Jagielski [out] BSTR* aString , 50*b1cdbd2cSJim Jagielski [out] float* aFloat, 51*b1cdbd2cSJim Jagielski [out] double* aDouble, 52*b1cdbd2cSJim Jagielski [out] unsigned char* aByte, 53*b1cdbd2cSJim Jagielski [out] short* aShort, 54*b1cdbd2cSJim Jagielski [out]long* aLong); 55*b1cdbd2cSJim Jagielski// ); 56*b1cdbd2cSJim Jagielski [id(6), helpstring("method outStruct")] HRESULT outStruct([out] IDispatch** outStruct); 57*b1cdbd2cSJim Jagielski [id(7), helpstring("method outEnum")] HRESULT outEnum([out] long* outEnum); 58*b1cdbd2cSJim Jagielski [id(8), helpstring("method outSeqAny")] HRESULT outSeqAny([out] SAFEARRAY( VARIANT)* outSeq); 59*b1cdbd2cSJim Jagielski [id(9), helpstring("method outAny")] HRESULT outAny([out] VARIANT* outAny); 60*b1cdbd2cSJim Jagielski [id(10), helpstring("method outBool")] HRESULT outBool([out]VARIANT_BOOL* outBool); 61*b1cdbd2cSJim Jagielski [id(11), helpstring("method outChar")] HRESULT outChar([out] short* outChar); 62*b1cdbd2cSJim Jagielski [id(12), helpstring("method outString")] HRESULT outString([out] BSTR * outString); 63*b1cdbd2cSJim Jagielski [id(13), helpstring("method outFloat")] HRESULT outFloat([out] float* outFloat); 64*b1cdbd2cSJim Jagielski [id(14), helpstring("method outDouble")] HRESULT outDouble([out] double* outDouble); 65*b1cdbd2cSJim Jagielski [id(16), helpstring("method outShort")] HRESULT outShort([out] short *outShort); 66*b1cdbd2cSJim Jagielski [id(17), helpstring("method outLong")] HRESULT outLong([out] long* outLong); 67*b1cdbd2cSJim Jagielski [id(20), helpstring("method outByte")] HRESULT outByte([out] unsigned char* outByte); 68*b1cdbd2cSJim Jagielski [id(21), helpstring("method inoutInterface")] HRESULT inoutInterface([in,out] IDispatch** ppdisp); 69*b1cdbd2cSJim Jagielski [id(22), helpstring("method inoutStruct")] HRESULT inoutStruct([in,out] IDispatch** inoutVal); 70*b1cdbd2cSJim Jagielski [id(23), helpstring("method inoutEnum")] HRESULT inoutEnum([in,out] long * inoutVal); 71*b1cdbd2cSJim Jagielski [id(24), helpstring("method inoutSeqAny")] HRESULT inoutSeqAny([in,out] SAFEARRAY(VARIANT)* pArray); 72*b1cdbd2cSJim Jagielski [id(25), helpstring("method inoutAny")] HRESULT inoutAny([in,out] VARIANT* inoutVal); 73*b1cdbd2cSJim Jagielski [id(26), helpstring("method inoutBool")] HRESULT inoutBool([in,out] VARIANT_BOOL * inoutVal); 74*b1cdbd2cSJim Jagielski [id(27), helpstring("method inoutChar")] HRESULT inoutChar([in,out] short* inoutVal); 75*b1cdbd2cSJim Jagielski [id(28), helpstring("method inoutString")] HRESULT inoutString([in,out] BSTR *inoutVal); 76*b1cdbd2cSJim Jagielski [id(29), helpstring("method inoutFloat")] HRESULT inoutFloat([in,out] float* inoutVal); 77*b1cdbd2cSJim Jagielski [id(30), helpstring("method inoutDouble")] HRESULT inoutDouble([in,out] double* inoutVal); 78*b1cdbd2cSJim Jagielski [id(31), helpstring("method inoutByte")] HRESULT inoutByte([in,out] unsigned char* inoutVal); 79*b1cdbd2cSJim Jagielski [id(32), helpstring("method inoutShort")] HRESULT inoutShort([in,out] short* inoutVal); 80*b1cdbd2cSJim Jagielski [id(33), helpstring("method inoutLong")] HRESULT inoutLong([in,out] long* inoutVal); 81*b1cdbd2cSJim Jagielski [id(34), helpstring("method inoutValueAll")] HRESULT inoutValuesAll( 82*b1cdbd2cSJim Jagielski [in,out] IDispatch** aXSimple, 83*b1cdbd2cSJim Jagielski [in,out] IDispatch** aStruct, 84*b1cdbd2cSJim Jagielski [in,out] long* aEnum, 85*b1cdbd2cSJim Jagielski [in,out] SAFEARRAY( VARIANT)* aSeq, 86*b1cdbd2cSJim Jagielski [in,out] VARIANT* aAny, 87*b1cdbd2cSJim Jagielski [in,out] VARIANT_BOOL* aBool, 88*b1cdbd2cSJim Jagielski [in,out] short* aChar, 89*b1cdbd2cSJim Jagielski [in,out] BSTR* aString, 90*b1cdbd2cSJim Jagielski [in,out] float* aFloat, 91*b1cdbd2cSJim Jagielski [in,out] double* aDouble, 92*b1cdbd2cSJim Jagielski [in,out] unsigned char* aByte, 93*b1cdbd2cSJim Jagielski [in,out] short* aShort, 94*b1cdbd2cSJim Jagielski [in,out] long* aLong); 95*b1cdbd2cSJim Jagielski [id(35), helpstring("method inValues")] HRESULT inValues([in]short aChar, [in] long aLong, [in] BSTR aString); 96*b1cdbd2cSJim Jagielski [id(36), helpstring("method outSeqByte")] HRESULT outSeqByte([out] SAFEARRAY(unsigned char)* outVal); 97*b1cdbd2cSJim Jagielski [id(37), helpstring("method inSeqByte")] HRESULT inSeqByte([in] SAFEARRAY(VARIANT) val); 98*b1cdbd2cSJim Jagielski [id(38), helpstring("method inSeqXEventListener")] HRESULT inSeqXEventListener([in] SAFEARRAY(VARIANT) listener, 99*b1cdbd2cSJim Jagielski [in] SAFEARRAY(VARIANT) event); 100*b1cdbd2cSJim Jagielski 101*b1cdbd2cSJim Jagielski }; 102*b1cdbd2cSJim Jagielski [ 103*b1cdbd2cSJim Jagielski object, 104*b1cdbd2cSJim Jagielski uuid(180FF564-6F5C-11D4-8330-005004526AB4), 105*b1cdbd2cSJim Jagielski dual, 106*b1cdbd2cSJim Jagielski helpstring("ISimple Interface"), 107*b1cdbd2cSJim Jagielski pointer_default(unique) 108*b1cdbd2cSJim Jagielski ] 109*b1cdbd2cSJim Jagielski interface ISimple : IDispatch 110*b1cdbd2cSJim Jagielski { 111*b1cdbd2cSJim Jagielski [id(1), helpstring("method func")] HRESULT func( [in] BSTR message); 112*b1cdbd2cSJim Jagielski [id(2), helpstring("method func2")] HRESULT func2([in] BSTR message); 113*b1cdbd2cSJim Jagielski [id(3), helpstring("method func3")] HRESULT func3([in] BSTR message); 114*b1cdbd2cSJim Jagielski [propget, id(4), helpstring("property _implementedInterfaces")] HRESULT _implementedInterfaces([out, retval] SAFEARRAY(BSTR) *pVal); 115*b1cdbd2cSJim Jagielski }; 116*b1cdbd2cSJim Jagielski 117*b1cdbd2cSJim Jagielski 118*b1cdbd2cSJim Jagielski 119*b1cdbd2cSJim Jagielski[ 120*b1cdbd2cSJim Jagielski uuid(180FF553-6F5C-11D4-8330-005004526AB4), 121*b1cdbd2cSJim Jagielski version(1.0), 122*b1cdbd2cSJim Jagielski helpstring("XCallback_Impl 1.0 Type Library") 123*b1cdbd2cSJim Jagielski] 124*b1cdbd2cSJim Jagielskilibrary XCALLBACK_IMPLLib 125*b1cdbd2cSJim Jagielski{ 126*b1cdbd2cSJim Jagielski importlib("stdole32.tlb"); 127*b1cdbd2cSJim Jagielski importlib("stdole2.tlb"); 128*b1cdbd2cSJim Jagielski 129*b1cdbd2cSJim Jagielski [ 130*b1cdbd2cSJim Jagielski uuid(180FF560-6F5C-11D4-8330-005004526AB4), 131*b1cdbd2cSJim Jagielski helpstring("Callback Class") 132*b1cdbd2cSJim Jagielski ] 133*b1cdbd2cSJim Jagielski coclass Callback 134*b1cdbd2cSJim Jagielski { 135*b1cdbd2cSJim Jagielski [default] interface ICallback; 136*b1cdbd2cSJim Jagielski }; 137*b1cdbd2cSJim Jagielski [ 138*b1cdbd2cSJim Jagielski uuid(180FF565-6F5C-11D4-8330-005004526AB4), 139*b1cdbd2cSJim Jagielski helpstring("Simple Class") 140*b1cdbd2cSJim Jagielski ] 141*b1cdbd2cSJim Jagielski coclass Simple 142*b1cdbd2cSJim Jagielski { 143*b1cdbd2cSJim Jagielski [default] interface ISimple; 144*b1cdbd2cSJim Jagielski }; 145*b1cdbd2cSJim Jagielski}; 146*b1cdbd2cSJim Jagielski 147*b1cdbd2cSJim Jagielski 148