// interopsvcdimedocObj.h : Declaration of the CinteropsvcdimedocObj

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

#include "interopsvcdimedoc.h"

// CinteropsvcdimedocObj

interface Iwmsoapmsg2;

class ATL_NO_VTABLE CinteropsvcdimedocObj : 
	public CComObjectRootEx<CComSingleThreadModel>,
	public CComCoClass<CinteropsvcdimedocObj, &CLSID_interopsvcdimedocObj>,
	public IDispatchImpl<IinteropsvcdimedocObj, &IID_IinteropsvcdimedocObj, &LIBID_interopsvcdimedocLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
{
public:
	CinteropsvcdimedocObj()
	{
	}

DECLARE_REGISTRY_RESOURCEID(IDR_INTEROPSVCDIMEDOCOBJ)


BEGIN_COM_MAP(CinteropsvcdimedocObj)
	COM_INTERFACE_ENTRY(IinteropsvcdimedocObj)
	COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()


	DECLARE_PROTECT_FINAL_CONSTRUCT()

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

public:
	STDMETHOD(OnProcessBody)(/*[in]*/ VARIANT SOAPMsgInterface, /*[out, retval]*/ VARIANT_BOOL *pResult);
protected:
	bool GenerateFault(Iwmsoapmsg2 *pIwmsoapmsg);
	bool ProcessMessage(Iwmsoapmsg2 *pIwmsoapmsg);

};

OBJECT_ENTRY_AUTO(__uuidof(interopsvcdimedocObj), CinteropsvcdimedocObj)
