// wmsoapmsgObj.h : Declaration of the CwmsoapmsgObj

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

#include "wmsoapmsg.h"
#include "..\soap_source\wmxmlmessage.h"

// CwmsoapmsgObj

class ATL_NO_VTABLE CwmsoapmsgObj : 
	public CComObjectRootEx<CComSingleThreadModel>,
	public CComCoClass<CwmsoapmsgObj, &CLSID_wmsoapmsg2>,
	public IDispatchImpl<Iwmsoapmsg2, &IID_Iwmsoapmsg2, &LIBID_wmsoapmsgLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
{
public:
	CwmsoapmsgObj()
	{
        m_pSOAPMsg = NULL;
	}

DECLARE_REGISTRY_RESOURCEID(IDR_WMSOAPMSGOBJ)


BEGIN_COM_MAP(CwmsoapmsgObj)
	COM_INTERFACE_ENTRY(Iwmsoapmsg2)
	COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()


	DECLARE_PROTECT_FINAL_CONSTRUCT()

	HRESULT FinalConstruct()
	{
		m_pSOAPMsg = new WMSOAPMessage;
        if (m_pSOAPMsg == NULL)
            return E_FAIL;
		return S_OK;
	}
	
	void FinalRelease() 
	{
		if (m_pSOAPMsg != NULL)
			delete m_pSOAPMsg;
	}

private:
	WMSOAPMessage	*m_pSOAPMsg;

public:
	STDMETHOD(GetNextFaultHeaderElemLiteral12)(/*[out]*/ BSTR *pbstrNamespaceURI, /*[out]*/ BSTR *pbstrName, /*[out]*/ BSTR *pbstrLiteralXML, /*[out]*/ VARIANT_BOOL *pbMustUnderstand, /*[out]*/ BSTR *pbstrRoleURI, /*[out]*/ VARIANT_BOOL *pbRelay, /*[out]*/ BSTR *pbstrEncodingStyle, /*[in, out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetFirstFaultHeaderElemLiteral12)(/*[out]*/ BSTR *pbstrNamespaceURI, /*[out]*/ BSTR *pbstrName, /*[out]*/ BSTR *pbstrLiteralXML, /*[out]*/ VARIANT_BOOL *pbMustUnderstand, /*[out]*/ BSTR *pbstrRoleURI, /*[out]*/ VARIANT_BOOL *pbRelay, /*[out]*/ BSTR *pbstrEncodingStyle, /*[out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(AddFaultHeaderElemLiteral12)(/*[in]*/ BSTR bstrNamespaceURI, /*[in]*/ BSTR bstrName, /*[in]*/ BSTR bstrLiteralXML, /*[in]*/ VARIANT_BOOL bMustUnderstand, /*[in]*/ BSTR bstrRoleURI, /*[in]*/ VARIANT_BOOL bRelay, /*[in]*/ BSTR bstrEncodingStyle, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetNextFaultHeaderElem12)(/*[out]*/ BSTR *pbstrNamespaceURI, /*[out]*/ BSTR *pbstrName, /*[out]*/ VARIANT *pvarContent, /*[out]*/ VARIANT_BOOL *pbMustUnderstand, /*[out]*/ BSTR *pbstrRoleURI, /*[out]*/ VARIANT_BOOL *pbRelay, /*[in, out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetFirstFaultHeaderElem12)(/*[out]*/ BSTR *pbstrNamespaceURI, /*[out]*/ BSTR *pbstrName, /*[out]*/ VARIANT *pvarContent, /*[out]*/ VARIANT_BOOL *pbMustUnderstand, /*[out]*/ BSTR *pbstrRoleURI, /*[out]*/ VARIANT_BOOL *pbRelay, /*[out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(AddFaultHeaderElem12)(/*[in]*/ BSTR bstrNamespaceURI, /*[in]*/ BSTR bstrName, /*[in]*/ VARIANT varContent, /*[in]*/ VARIANT_BOOL bMustUnderstand, /*[in]*/ BSTR bstrRoleURI, /*[in]*/ VARIANT_BOOL bRelay, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetNextHeaderElemLiteral12)(/*[out]*/ BSTR *pbstrNamespaceURI, /*[out]*/ BSTR *pbstrName, /*[out]*/ BSTR *pbstrLiteralXML, /*[out]*/ VARIANT_BOOL *pbMustUnderstand, /*[out]*/ BSTR *pbstrRoleURI, /*[out]*/ VARIANT_BOOL *pbRelay, /*[out]*/ BSTR *pbstrEncodingStyle, /*[in, out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetFirstHeaderElemLiteral12)(/*[out]*/ BSTR *pbstrNamespaceURI, /*[out]*/ BSTR *pbstrName, /*[out]*/ BSTR *pbstrLiteralXML, /*[out]*/ VARIANT_BOOL *pbMustUnderstand, /*[out]*/ BSTR *pbstrRoleURI, /*[out]*/ VARIANT_BOOL *pbRelay, /*[out]*/ BSTR *pbstrEncodingStyle, /*[out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(AddHeaderElemLiteral12)(/*[in]*/ BSTR bstrNamespaceURI, /*[in]*/ BSTR bstrName, /*[in]*/ BSTR bstrLiteralXML, /*[in]*/ VARIANT_BOOL bMustUnderstand, /*[in]*/ BSTR bstrRoleURI, /*[in]*/ VARIANT_BOOL bRelay, /*[in]*/ BSTR bstrEncodingStyle, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetNextHeaderElem12)(/*[out]*/ BSTR *pbstrNamespaceURI, /*[out]*/ BSTR *pbstrName, /*[out]*/ VARIANT *pvarContent, /*[out]*/ VARIANT_BOOL *pbMustUnderstand, /*[out]*/ BSTR *pbstrRoleURI, /*[out]*/ VARIANT_BOOL *pbRelay, /*[in, out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetFirstHeaderElem12)(/*[out]*/ BSTR *pbstrNamespaceURI, /*[out]*/ BSTR *pbstrName, /*[out]*/ VARIANT *pvarContent, /*[out]*/ VARIANT_BOOL *pbMustUnderstand, /*[out]*/ BSTR *pbstrRoleURI, /*[out]*/ VARIANT_BOOL *pbRelay, /*[out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(AddHeaderElem12)(/*[in]*/ BSTR bstrNamespaceURI, /*[in]*/ BSTR bstrName, /*[in]*/ VARIANT varContent, /*[in]*/ VARIANT_BOOL bMustUnderstand, /*[in]*/ BSTR bstrRoleURI, /*[in]*/ VARIANT_BOOL bRelay, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetMUHeaderBlocks)(/*[out, retval]*/ VARIANT *pvarBlocks);
	STDMETHOD(GetRoles)(/*[out, retval]*/ VARIANT *pvarRoles);
	STDMETHOD(SetRoles)(/*[in]*/ VARIANT varRoles, /*[out, retval]*/ VARIANT_BOOL *pResult);
    STDMETHOD(GetSOAPVersion)(/*[out, retval]*/ long *pVersion);
    STDMETHOD(SetSOAPVersion)(/*[in]*/ long lVersion);
	STDMETHOD(GetNumRespAttachments)(/*[out, retval]*/ long *pNbr);
	STDMETHOD(GetNumReqAttachments)(/*[out, retval]*/ long *pNbr);
	STDMETHOD(GetDIMEAttachmentResp)(/*[in]*/ BSTR bstrId, /*[out]*/ BSTR *pbstrType, /*[out]*/ long *pTNF, /*[out]*/ IUnknown **ppIUnknown, /*[out]*/  VARIANT *Options, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetDIMEAttachmentReq)(/*[in]*/ BSTR bstrId, /*[out]*/ BSTR *pbstrType, /*[out]*/ long *pTNF, /*[out]*/ IUnknown **ppIUnknown, /*[out]*/  VARIANT *Options, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetNextDIMEAttachmentResp)(/*[out]*/ BSTR *pbstrId, /*[out]*/ BSTR *pbstrType, /*[out]*/ long *pTNF, /*[out]*/ IUnknown **ppIUnknown, /*[out]*/  VARIANT *Options,  /*[in, out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetFirstDIMEAttachmentResp)(/*[out]*/ BSTR *pbstrId, /*[out]*/ BSTR *pbstrType, /*[out]*/ long *pTNF, /*[out]*/ IUnknown **ppIUnknown, /*[out]*/  VARIANT *Options,  /*[out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetNextDIMEAttachmentReq)(/*[out]*/ BSTR *pbstrId, /*[out]*/ BSTR *pbstrType, /*[out]*/ long *pTNF, /*[out]*/ IUnknown **ppIUnknown, /*[out]*/  VARIANT *Options,  /*[in, out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetFirstDIMEAttachmentReq)(/*[out]*/ BSTR *pbstrId, /*[out]*/ BSTR *pbstrType, /*[out]*/ long *pTNF, /*[out]*/ IUnknown **ppIUnknown, /*[out]*/  VARIANT *Options,  /*[out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(AddDIMEAttachmentResp)(/*[in]*/ BSTR bstrId, /*[in]*/ BSTR bstrType, /*[in]*/ long TNF, /*[in]*/ IUnknown *pIUnknown, /*[in]*/ VARIANT Options, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(AddDIMEAttachmentReq)(/*[in]*/ BSTR bstrId, /*[in]*/ BSTR bstrType, /*[in]*/ long TNF, /*[in]*/ IUnknown *pIUnknown, /*[in]*/ VARIANT Options, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetPortAddress)(/*[out, retval]*/ BSTR *pbstrAddress);
	STDMETHOD(SetNoContentResponse)(/*[in]*/ VARIANT_BOOL bValue);
	STDMETHOD(IsNoContentResponse)(/*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetBodyElemLiteral)(/*[out]*/ BSTR *pbstrLiteralXML, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(SetBodyElemLiteral)(/*[in]*/ BSTR bstrLiteralXML, /*[in]*/ BSTR bstrEncodingStyle, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetNextFaultHeaderElemLiteral)(/*[out]*/ BSTR *pbstrNamespaceURI, /*[out]*/ BSTR *pbstrName, /*[out]*/ BSTR *pbstrLiteralXML, /*[out]*/ VARIANT_BOOL *pbMustUnderstand, /*[out]*/ BSTR *pbstrActorURI, /*[out]*/ BSTR *pbstrEncodingStyle, /*[in, out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetFirstFaultHeaderElemLiteral)(/*[out]*/ BSTR *pbstrNamespaceURI, /*[out]*/ BSTR *pbstrName, /*[out]*/ BSTR *pbstrLiteralXML, /*[out]*/ VARIANT_BOOL *pbMustUnderstand, /*[out]*/ BSTR *pbstrActorURI, /*[out]*/ BSTR *pbstrEncodingStyle, /*[out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(AddFaultHeaderElemLiteral)(/*[in]*/ BSTR bstrNamespaceURI, /*[in]*/ BSTR bstrName, /*[in]*/ BSTR bstrLiteralXML, /*[in]*/ VARIANT_BOOL bMustUnderstand, /*[in]*/ BSTR bstrActorURI, /*[in]*/ BSTR bstrEncodingStyle, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetNumFaultHeaderElemsLiteral)(/*[out, retval]*/ long *plNumber);
	STDMETHOD(GetNextHeaderElemLiteral)(/*[out]*/ BSTR *pbstrNamespaceURI, /*[out]*/ BSTR *pbstrName, /*[out]*/ BSTR *pbstrLiteralXML, /*[out]*/ VARIANT_BOOL *pbMustUnderstand, /*[out]*/ BSTR *pbstrActorURI, /*[out]*/ BSTR *pbstrEncodingStyle, /*[in, out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetFirstHeaderElemLiteral)(/*[out]*/ BSTR *pbstrNamespaceURI, /*[out]*/ BSTR *pbstrName, /*[out]*/ BSTR *pbstrLiteralXML, /*[out]*/ VARIANT_BOOL *pbMustUnderstand, /*[out]*/ BSTR *pbstrActorURI, /*[out]*/ BSTR *pbstrEncodingStyle, /*[out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetNumHeaderElemsLiteral)(/*[out, retval]*/ long *plNumber);
	STDMETHOD(IsRPCStyle)(/*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(ProcessRPC)(/*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(ProcessRPCGet)(/*[in]*/ BSTR bstrSvcURI, /*[in]*/ BSTR bstrExtraPath, /*[in]*/ BSTR bstrQueryString, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(AddHeaderElemLiteral)(/*[in]*/ BSTR bstrNamespaceURI, /*[in]*/ BSTR bstrName, /*[in]*/ BSTR bstrLiteralXML, /*[in]*/ VARIANT_BOOL bMustUnderstand, /*[in]*/ BSTR bstrActorURI, /*[in]*/ BSTR bstrEncodingStyle, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetHeaderElemLiteral)(/*[in]*/ BSTR bstrNamespaceURI, /*[in]*/ BSTR bstrName, /*[out]*/ BSTR *pbstrLiteralXML, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetPortName)(/*[out, retval]*/ BSTR *pbstrPortName);
	STDMETHOD(GetServiceName)(/*[out, retval]*/ BSTR *pbstrServiceName);
	STDMETHOD(GetSOAPFaultNode)(/*[out, retval]*/ BSTR *bstrFaultNode);
	STDMETHOD(GetSOAPFaultString)(/*[out, retval]*/ BSTR *bstrFaultString);
	STDMETHOD(GetSOAPFaultCode)(/*[out, retval]*/ BSTR *bstrFaultCode);
	STDMETHOD(GetSOAPFaultCodeNS)(/*[out, retval]*/ BSTR *bstrFaultCodeNS);
	STDMETHOD(GetFaultDetailElem)(/*[in]*/ BSTR bstrNamespaceURI, /*[in]*/ BSTR bstrName, /*[out]*/ VARIANT *pvarContent, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(IsIntermediary)(/*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(SetNextHopURL)(/*[in]*/ BSTR bstrNextHopURL);
	STDMETHOD(GetNextHopURL)(/*[out, retval]*/ BSTR *bstrNextHopURL);
	STDMETHOD(ClearSOAPFault)();
	STDMETHOD(GetBuffer)(/*[out]*/ VARIANT *pvarBuffer, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(SetBuffer)(/*[in]*/ VARIANT varBuffer,  /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(IsRequestPhase)(/*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(SetRequestPhase)(/*[in]*/ VARIANT_BOOL bFlag);
	STDMETHOD(CheckMustUnderstand)(/*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(ClearFaultDetailElems)();
	STDMETHOD(GetNextFaultDetailElem)(/*[out]*/ BSTR *pbstrNamespaceURI, /*[out]*/ BSTR *pbstrName, /*[out]*/ VARIANT *pvarContent, /*[in, out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetFirstFaultDetailElem)(/*[out]*/ BSTR *pbstrNamespaceURI, /*[out]*/ BSTR *pbstrName, /*[out]*/ VARIANT *pvarContent, /*[out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(AddFaultDetailElem)(/*[in]*/ BSTR bstrNamespaceURI, /*[in]*/ BSTR bstrName, /*[in]*/ VARIANT varContent, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetNumFaultDetailElems)(/*[out, retval]*/ long *plNumber);
	STDMETHOD(ClearFaultHeaderElems)();
	STDMETHOD(GetNextFaultHeaderElem)(/*[out]*/ BSTR *pbstrNamespaceURI, /*[out]*/ BSTR *pbstrName, /*[out]*/ VARIANT *pvarContent, /*[out]*/ VARIANT_BOOL *pbMustUnderstand, /*[out]*/ BSTR *pbstrActorURI, /*[in, out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetFirstFaultHeaderElem)(/*[out]*/ BSTR *pbstrNamespaceURI, /*[out]*/ BSTR *pbstrName, /*[out]*/ VARIANT *pvarContent, /*[out]*/ VARIANT_BOOL *pbMustUnderstand, /*[out]*/ BSTR *pbstrActorURI, /*[out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(AddFaultHeaderElem)(/*[in]*/ BSTR bstrNamespaceURI, /*[in]*/ BSTR bstrName, /*[in]*/ VARIANT varContent, /*[in]*/ VARIANT_BOOL bMustUnderstand, /*[in]*/ BSTR bstrActorURI, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetNumFaultHeaderElems)(/*[out, retval]*/ long *plNumber);
	STDMETHOD(SetSOAP12Fault)(/*[in]*/ BSTR bstrCode, /*[in]*/ BSTR bstrCodeNS, /*[in]*/ BSTR bstrSubcode, /*[in]*/ BSTR bstrSubcodeNS,/*[in]*/ BSTR bstrReason, /*[in]*/ BSTR bstrReasonLangId, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(AddSOAP12ReasonText)(/*[in]*/ BSTR bstrText, /*[in]*/ BSTR bstrLangId);
	STDMETHOD(GetNextSOAP12ReasonText)(/*[out]*/ BSTR *pbstrText, /*[out]*/ BSTR *pbstrLangId, /*[in, out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetFirstSOAP12ReasonText)(/*[out]*/ BSTR *pbstrText, /*[out]*/ BSTR *pbstrLangId, /*[out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetSOAP12ReasonText)(/*[in]*/ BSTR bstrLangId, /*[out]*/ BSTR *pbstrText, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(SetSOAPFault)(/*[in]*/ BSTR bstrFaultCode, /*[in]*/ BSTR bstrFaultCodeNS, /*[in]*/ BSTR bstrFaultString, /*[in]*/ VARIANT_BOOL bNeedDetail, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetNodeURI)(/*[out]*/ BSTR *pbstrNodeURI);
	STDMETHOD(SetNodeURI)(/*[in]*/ BSTR bstrNodeURI);
	STDMETHOD(GetSOAPAction)(/*[out]*/ BSTR *pbstrSOAPAction);
	STDMETHOD(SetSOAPAction)(/*[in]*/ BSTR bstrSOAPAction);
	STDMETHOD(GetReturnValue)(/*[out]*/ VARIANT *pvarValue);
	STDMETHOD(SetReturnValue)(/*[in]*/ VARIANT varValue);
	STDMETHOD(GetMethodName)(/*[out]*/ BSTR *pbstrName);
	STDMETHOD(SetMethodName)(/*[in]*/ BSTR bstrName);
	STDMETHOD(GetMethodNS)(/*[out, retval]*/ BSTR *pbstrNS);
	STDMETHOD(SetMethodNS)(/*[in]*/ BSTR bstrNS);
	STDMETHOD(ClearHeaderElems)();
	STDMETHOD(ClearMethodParams)();
	STDMETHOD(GetNextMethodParam)(/*[out]*/ BSTR *pbstrNamespaceURI, /*[out]*/ BSTR *pbstrName, /*[out]*/ VARIANT *pvarContent, /*[out]*/ VARIANT_BOOL *pbIsInParam, /*[out]*/ VARIANT_BOOL *pbIsOutParam, /*[in, out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetFirstMethodParam)(/*[out]*/ BSTR *pbstrNamespaceURI, /*[out]*/ BSTR *pbstrName, /*[out]*/ VARIANT *pvarContent, /*[out]*/ VARIANT_BOOL *pbIsInParam, /*[out]*/ VARIANT_BOOL *pbIsOutParam, /*[out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(AddMethodParam)(/*[in]*/ BSTR bstrNamespaceURI, /*[in]*/ BSTR bstrName, /*[in]*/ VARIANT varContent, /*[in]*/ VARIANT_BOOL bIsInParam, /*[in]*/ VARIANT_BOOL bIsOutParam, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetNumMethodParams)(/*[out, retval]*/ long *plNumber);
	STDMETHOD(GetHeaderElem)(/*[in]*/ BSTR bstrNamespaceURI, /*[in]*/ BSTR bstrName, /*[out]*/ VARIANT *pvarContent, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetNextHeaderElem)(/*[out]*/ BSTR *pbstrNamespaceURI, /*[out]*/ BSTR *pbstrName, /*[out]*/ VARIANT *pvarContent, /*[out]*/ VARIANT_BOOL *pbMustUnderstand, /*[out]*/ BSTR *pbstrActorURI, /*[in, out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetFirstHeaderElem)(/*[out]*/ BSTR *pbstrNamespaceURI, /*[out]*/ BSTR *pbstrName, /*[out]*/ VARIANT *pvarContent, /*[out]*/ VARIANT_BOOL *pbMustUnderstand, /*[out]*/ BSTR *pbstrActorURI, /*[out]*/ long *plPosition, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(AddHeaderElem)(/*[in]*/ BSTR bstrNamespaceURI, /*[in]*/ BSTR bstrName, /*[in]*/ VARIANT varContent, /*[in]*/ VARIANT_BOOL bMustUnderstand, /*[in]*/ BSTR bstrActorURI, /*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(GetNumHeaderElems)(/*[out, retval]*/ long *plNumber);
	STDMETHOD(IsSOAPFault)(/*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(Serialize)(/*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(Deserialize)(/*[out, retval]*/ VARIANT_BOOL *pResult);
	STDMETHOD(Initialize)(/*[in]*/ BSTR bstrSvcName, /*[in]*/ BSTR bstrPortName, /*[in]*/ BSTR bstrNodeURI, /*[in]*/ BSTR bstrSOAPAction, /*[in]*/ BSTR bstrNextHopURL, /*[in]*/ VARIANT_BOOL bExplicitTypingEnabled, /*[in]*/ VARIANT_BOOL bNodeTypeEnabled, /*[in]*/ IDispatch *pIDispatch, /*[out, retval]*/ VARIANT_BOOL *pResult);
};

OBJECT_ENTRY_AUTO(__uuidof(wmsoapmsg2), CwmsoapmsgObj)
