// interopsvc.idl : IDL source for interopsvc
//

// This file will be processed by the MIDL tool to
// produce the type library (interopsvc.tlb) and marshalling code.

import "oaidl.idl";
import "ocidl.idl";

[
	object,
	uuid(B220C84A-DA23-4CF5-8BBB-0384B260A43B),
	dual,
	nonextensible,
	helpstring("Iinterop Interface"),
	pointer_default(unique)
]
interface Iinterop : IDispatch{
	[id(1), helpstring("method echoVoid")] HRESULT echoVoid();
	[id(2), helpstring("method echoString")] HRESULT echoString([in] VARIANT inputString, [out, retval] VARIANT *outputString);
	[id(3), helpstring("method echoStringArray")] HRESULT echoStringArray([in] VARIANT inputStringArray, [out, retval] VARIANT *outputStringArray);
	[id(4), helpstring("method echoInteger")] HRESULT echoInteger([in] VARIANT inputInteger, [out, retval] VARIANT *outputInteger);
	[id(5), helpstring("method echoIntegerArray")] HRESULT echoIntegerArray([in] VARIANT inputIntegerArray, [out, retval] VARIANT *outputIntegerArray);
	[id(6), helpstring("method echoFloat")] HRESULT echoFloat([in] VARIANT inputFloat, [out, retval] VARIANT *outputFloat);
	[id(7), helpstring("method echoFloatArray")] HRESULT echoFloatArray([in] VARIANT inputFloatArray, [out, retval] VARIANT *outputFloatArray);
	[id(8), helpstring("method echoStruct")] HRESULT echoStruct([in] VARIANT inputStruct, [out, retval] VARIANT *outputStruct);
	[id(9), helpstring("method echoStructArray")] HRESULT echoStructArray([in] VARIANT inputStructArray, [out, retval] VARIANT *outputStructArray);
	[id(10), helpstring("method echoBase64")] HRESULT echoBase64([in] VARIANT inputBase64, [out, retval] VARIANT *outputBase64);
	[id(11), helpstring("method echoHexBinary")] HRESULT echoHexBinary([in] VARIANT inputHexBinary, [out, retval] VARIANT *outputHexBinary);
	[id(12), helpstring("method echoDate")] HRESULT echoDate([in] VARIANT inputDate, [out, retval] VARIANT *outputDate);
	[id(13), helpstring("method echoDecimal")] HRESULT echoDecimal([in] VARIANT inputDecimal, [out, retval] VARIANT *outputDecimal);
	[id(14), helpstring("method echoBoolean")] HRESULT echoBoolean([in] VARIANT inputBoolean, [out, retval] VARIANT *outputBoolean);
	[id(15), helpstring("method echoPolyMorph")] HRESULT echoPolyMorph([in] VARIANT inputPolyMorph, [out, retval] VARIANT *outputPolyMorph);
	[id(16), helpstring("method echoPolyMorphArray")] HRESULT echoPolyMorphArray([in] VARIANT inputPolyMorphArray, [out, retval] VARIANT *outputPolyMorphArray);
	[id(17), helpstring("method echoPolyMorphStruct")] HRESULT echoPolyMorphStruct([in] VARIANT inputPolyMorphStruct, [out, retval] VARIANT *outputPolyMorphStruct);
};
[
	uuid(D9973F83-5A1A-4FC1-9C58-0DE7618A7A75),
	version(1.0),
	helpstring("interopsvc 1.0 Type Library")
]
library interopsvcLib
{
	importlib("stdole2.tlb");
	[
		uuid(81536E29-8151-41E2-86E0-291D65256CC4),
		helpstring("interop Class")
	]
	coclass interop
	{
		[default] interface Iinterop;
	};
};
