// soap12testsvcrpcObj.h : Declaration of the Csoap12testsvcrpcObj

#pragma once
#include "resource.h"       // main symbols

#include "soap12testsvcrpc.h"


// Csoap12testsvcrpcObj

class ATL_NO_VTABLE Csoap12testsvcrpcObj : 
	public CComObjectRootEx<CComSingleThreadModel>,
	public CComCoClass<Csoap12testsvcrpcObj, &CLSID_soap12testsvcrpc>,
	public IDispatchImpl<Isoap12testsvcrpc, &IID_Isoap12testsvcrpc, &LIBID_soap12testsvcrpcLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
{
public:
	Csoap12testsvcrpcObj()
	{
	}

DECLARE_REGISTRY_RESOURCEID(IDR_SOAP12TESTSVCRPCOBJ)


BEGIN_COM_MAP(Csoap12testsvcrpcObj)
	COM_INTERFACE_ENTRY(Isoap12testsvcrpc)
	COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()


	DECLARE_PROTECT_FINAL_CONSTRUCT()

	HRESULT FinalConstruct()
	{
		return S_OK;
	}
	
	void FinalRelease() 
	{
	}

public:

	STDMETHOD(returnVoid)();
	STDMETHOD(echoVoid)();
	STDMETHOD(echoStructArray)(/*[in]*/ VARIANT inputStructArray, /*[out, retval]*/ VARIANT *outputStructArray);
	STDMETHOD(echoStruct)(/*[in]*/ VARIANT inputStruct, /*[out, retval]*/ VARIANT *outputStruct);
	STDMETHOD(echoNestedArray)(/*[in]*/ VARIANT inputStruct, /*[out, retval]*/ VARIANT *outputStruct);
	STDMETHOD(echoNestedStruct)(/*[in]*/ VARIANT inputStruct, /*[out, retval]*/ VARIANT *outputStruct);
	STDMETHOD(echo2DStringArray)(/*[in]*/ VARIANT input2DStringArray, /*[out, retval]*/ VARIANT *output2DStringArray);
	STDMETHOD(echoSimpleTypesAsStruct)(/*[in]*/ BSTR inputString, /*[in]*/ int inputInteger, /*[in]*/ float inputFloat, /*[out, retval]*/ VARIANT *outputStruct);
	STDMETHOD(echoStructAsSimpleTypes)(/*[in]*/ VARIANT inputStruct, /*[out]*/ BSTR *outputString, /*[out]*/ int *outputInteger, /*[out]*/ float *outputFloat);
	STDMETHOD(echoFloatArray)(/*[in]*/ VARIANT inputFloatArray, /*[out, retval]*/ VARIANT *outputFloatArray);
	STDMETHOD(echoFloat)(/*[in]*/ VARIANT inputFloat, /*[out, retval]*/ VARIANT *outputFloat);
	STDMETHOD(echoIntegerArray)(/*[in]*/ VARIANT inputIntegerArray, /*[out, retval]*/ VARIANT *outputIntegerArray);
	STDMETHOD(echoInteger)(/*[in]*/ VARIANT inputInteger, /*[out, retval]*/ VARIANT *outputInteger);
	STDMETHOD(echoStringArray)(/*[in]*/ VARIANT inputStringArray, /*[out, retval]*/ VARIANT *outputStringArray);
	STDMETHOD(echoString)(/*[in]*/ VARIANT inputString, /*[out, retval]*/ VARIANT *outputString);
	STDMETHOD(echoBoolean)(/*[in]*/ VARIANT inputBoolean, /*[out, retval]*/ VARIANT *outputBoolean);
	STDMETHOD(echoDecimal)(/*[in]*/ VARIANT inputDecimal, /*[out, retval]*/ VARIANT *outputDecimal);
	STDMETHOD(echoDate)(/*[in]*/ VARIANT inputDate, /*[out, retval]*/ VARIANT *outputDate);
	STDMETHOD(echoHexBinary)(/*[in]*/ VARIANT inputHexBinary, /*[out, retval]*/ VARIANT *outputHexBinary);
	STDMETHOD(echoBase64)(/*[in]*/ VARIANT inputBase64, /*[out, retval]*/ VARIANT *outputBase64);
	STDMETHOD(countItems)(/*[in]*/ VARIANT inputStringArray, /*[out, retval]*/ int *nCount);
	STDMETHOD(getTime)(/*[in]*/ BSTR bstrExtraPath, /*[in]*/ BSTR bstrQueryString, /*[out, retval]*/ VARIANT *pReturnValue);
	STDMETHOD(echoDouble)(/*[in]*/ VARIANT inputDouble, /*[out, retval]*/ VARIANT *outputDouble);
	STDMETHOD(echoDateTime)(/*[in]*/ VARIANT inputDateTime, /*[out, retval]*/ VARIANT *outputDateTime);
	STDMETHOD(echoTime)(/*[in]*/ VARIANT inputTime, /*[out, retval]*/ VARIANT *outputTime);
	STDMETHOD(echoAnyURI)(/*[in]*/ VARIANT inputAnyURI, /*[out, retval]*/ VARIANT *outputAnyURI);
	STDMETHOD(echoLong)(/*[in]*/ VARIANT inputLong, /*[out, retval]*/ VARIANT *outputLong);
	STDMETHOD(echoInt)(/*[in]*/ VARIANT inputInt, /*[out, retval]*/ VARIANT *outputInt);
	STDMETHOD(echoShort)(/*[in]*/ VARIANT inputShort, /*[out, retval]*/ VARIANT *outputShort);
	STDMETHOD(echoByte)(/*[in]*/ VARIANT inputByte, /*[out, retval]*/ VARIANT *outputByte);
	STDMETHOD(echoUnsignedLong)(/*[in]*/ VARIANT inputUnsignedLong, /*[out, retval]*/ VARIANT *outputUnsignedLong);
	STDMETHOD(echoUnsignedInt)(/*[in]*/ VARIANT inputUnsignedInt, /*[out, retval]*/ VARIANT *outputUnsignedInt);
	STDMETHOD(echoUnsignedShort)(/*[in]*/ VARIANT inputUnsignedShort, /*[out, retval]*/ VARIANT *outputUnsignedShort);
	STDMETHOD(echoUnsignedByte)(/*[in]*/ VARIANT inputUnsignedByte, /*[out, retval]*/ VARIANT *outputUnsignedByte);
	STDMETHOD(isNil)(/*[in]*/ VARIANT inputString, /*[out, retval]*/ VARIANT *Result);
};

OBJECT_ENTRY_AUTO(__uuidof(soap12testsvcrpc), Csoap12testsvcrpcObj)
