// echofilehdrObj.h : Declaration of the CechofilehdrObj

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

#include "echofilehdr.h"

#include "comdef.h"
#include <vector>
using namespace std;

// CechofilehdrObj

class ATL_NO_VTABLE CechofilehdrObj : 
	public CComObjectRootEx<CComSingleThreadModel>,
	public CComCoClass<CechofilehdrObj, &CLSID_echofilehdrObj>,
	public IDispatchImpl<IechofilehdrObj, &IID_IechofilehdrObj, &LIBID_echofilehdrLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
{
public:
	CechofilehdrObj()
	{
	}

DECLARE_REGISTRY_RESOURCEID(IDR_ECHOFILEHDROBJ)


BEGIN_COM_MAP(CechofilehdrObj)
	COM_INTERFACE_ENTRY(IechofilehdrObj)
	COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()


	DECLARE_PROTECT_FINAL_CONSTRUCT()

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

public:
	STDMETHOD(OnProcessHeader)(/*[in]*/ VARIANT SOAPMsgInterface, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(OnTestMUHeaderBlock)(/*[in]*/ BSTR bstrNamespace, /*[in]*/ BSTR bstrLocalName, /*[out, retval]*/ VARIANT_BOOL *pResult);
	// storage for echoed values
	vector <_variant_t>  m_arrHeaders;

};

OBJECT_ENTRY_AUTO(__uuidof(echofilehdrObj), CechofilehdrObj)
