/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ // XCallback_Impl.idl : IDL source for XCallback_Impl.dll // // This file will be processed by the MIDL tool to // produce the type library (XCallback_Impl.tlb) and marshalling code. import "oaidl.idl"; import "ocidl.idl"; [ object, uuid(180FF55F-6F5C-11D4-8330-005004526AB4), dual, helpstring("ICallback Interface"), pointer_default(unique) ] interface ICallback : IDispatch { [id(1), helpstring("method func1")] HRESULT func1(); [id(2), helpstring("method returnInterface")] HRESULT returnInterface([out, retval] IDispatch** ppdisp); [id(3), helpstring("method outInterface")] HRESULT outInterface([out] IDispatch** ppdisp); [id(4), helpstring("method outValuesMixed")] HRESULT outValuesMixed([in] long val, [out] long* pval, [in] BSTR string); [id(5), helpstring("method outValuesAll")] HRESULT outValuesAll([out] IDispatch** ppdisp, [out] IDispatch** ppSimpleStruct, [out] long* aSimpleEnum, [out] SAFEARRAY( VARIANT)* outSeq, [out] VARIANT* varAny, [out] VARIANT_BOOL * aBool, [out] short* aChar, [out] BSTR* aString , [out] float* aFloat, [out] double* aDouble, [out] unsigned char* aByte, [out] short* aShort, [out]long* aLong); // ); [id(6), helpstring("method outStruct")] HRESULT outStruct([out] IDispatch** outStruct); [id(7), helpstring("method outEnum")] HRESULT outEnum([out] long* outEnum); [id(8), helpstring("method outSeqAny")] HRESULT outSeqAny([out] SAFEARRAY( VARIANT)* outSeq); [id(9), helpstring("method outAny")] HRESULT outAny([out] VARIANT* outAny); [id(10), helpstring("method outBool")] HRESULT outBool([out]VARIANT_BOOL* outBool); [id(11), helpstring("method outChar")] HRESULT outChar([out] short* outChar); [id(12), helpstring("method outString")] HRESULT outString([out] BSTR * outString); [id(13), helpstring("method outFloat")] HRESULT outFloat([out] float* outFloat); [id(14), helpstring("method outDouble")] HRESULT outDouble([out] double* outDouble); [id(16), helpstring("method outShort")] HRESULT outShort([out] short *outShort); [id(17), helpstring("method outLong")] HRESULT outLong([out] long* outLong); [id(20), helpstring("method outByte")] HRESULT outByte([out] unsigned char* outByte); [id(21), helpstring("method inoutInterface")] HRESULT inoutInterface([in,out] IDispatch** ppdisp); [id(22), helpstring("method inoutStruct")] HRESULT inoutStruct([in,out] IDispatch** inoutVal); [id(23), helpstring("method inoutEnum")] HRESULT inoutEnum([in,out] long * inoutVal); [id(24), helpstring("method inoutSeqAny")] HRESULT inoutSeqAny([in,out] SAFEARRAY(VARIANT)* pArray); [id(25), helpstring("method inoutAny")] HRESULT inoutAny([in,out] VARIANT* inoutVal); [id(26), helpstring("method inoutBool")] HRESULT inoutBool([in,out] VARIANT_BOOL * inoutVal); [id(27), helpstring("method inoutChar")] HRESULT inoutChar([in,out] short* inoutVal); [id(28), helpstring("method inoutString")] HRESULT inoutString([in,out] BSTR *inoutVal); [id(29), helpstring("method inoutFloat")] HRESULT inoutFloat([in,out] float* inoutVal); [id(30), helpstring("method inoutDouble")] HRESULT inoutDouble([in,out] double* inoutVal); [id(31), helpstring("method inoutByte")] HRESULT inoutByte([in,out] unsigned char* inoutVal); [id(32), helpstring("method inoutShort")] HRESULT inoutShort([in,out] short* inoutVal); [id(33), helpstring("method inoutLong")] HRESULT inoutLong([in,out] long* inoutVal); [id(34), helpstring("method inoutValueAll")] HRESULT inoutValuesAll( [in,out] IDispatch** aXSimple, [in,out] IDispatch** aStruct, [in,out] long* aEnum, [in,out] SAFEARRAY( VARIANT)* aSeq, [in,out] VARIANT* aAny, [in,out] VARIANT_BOOL* aBool, [in,out] short* aChar, [in,out] BSTR* aString, [in,out] float* aFloat, [in,out] double* aDouble, [in,out] unsigned char* aByte, [in,out] short* aShort, [in,out] long* aLong); [id(35), helpstring("method inValues")] HRESULT inValues([in]short aChar, [in] long aLong, [in] BSTR aString); [id(36), helpstring("method outSeqByte")] HRESULT outSeqByte([out] SAFEARRAY(unsigned char)* outVal); [id(37), helpstring("method inSeqByte")] HRESULT inSeqByte([in] SAFEARRAY(VARIANT) val); [id(38), helpstring("method inSeqXEventListener")] HRESULT inSeqXEventListener([in] SAFEARRAY(VARIANT) listener, [in] SAFEARRAY(VARIANT) event); }; [ object, uuid(180FF564-6F5C-11D4-8330-005004526AB4), dual, helpstring("ISimple Interface"), pointer_default(unique) ] interface ISimple : IDispatch { [id(1), helpstring("method func")] HRESULT func( [in] BSTR message); [id(2), helpstring("method func2")] HRESULT func2([in] BSTR message); [id(3), helpstring("method func3")] HRESULT func3([in] BSTR message); [propget, id(4), helpstring("property _implementedInterfaces")] HRESULT _implementedInterfaces([out, retval] SAFEARRAY(BSTR) *pVal); }; [ uuid(180FF553-6F5C-11D4-8330-005004526AB4), version(1.0), helpstring("XCallback_Impl 1.0 Type Library") ] library XCALLBACK_IMPLLib { importlib("stdole32.tlb"); importlib("stdole2.tlb"); [ uuid(180FF560-6F5C-11D4-8330-005004526AB4), helpstring("Callback Class") ] coclass Callback { [default] interface ICallback; }; [ uuid(180FF565-6F5C-11D4-8330-005004526AB4), helpstring("Simple Class") ] coclass Simple { [default] interface ISimple; }; };