오후 3:15 2002-09-02
조경민 bro@shinbiro.com
MFC ActiveX에서 PARAM 가능하게 하기
======================================================
MFC에서 프로퍼티를 만든 후

VARIANT COMXCtrl::GetSOMDIP()
{
        _variant_t vVal( m_Env.sOMDIP );
        // SysAllocString 된 것을 삭제하지 않고 그냥 넘겨주어야 한다.
        return vVal.Detach();
}

void COMXCtrl::SetSOMDIP(const VARIANT FAR& newValue)
{
        // TODO: Add your property handler here
        m_Env.sOMDIP = (LPCTSTR)_bstr_t( _variant_t( newValue ) ) ;
        SetModifiedFlag();
}

VARIANT COMXCtrl::GetNOMDPort()
{
        _variant_t vVal( m_Env.nOMDPort );
        return vVal.Detach();
}

void COMXCtrl::SetNOMDPort(const VARIANT FAR& newValue)
{
        // TODO: Add your property handler here
        m_Env.nOMDPort = _variant_t( newValue );
        SetModifiedFlag();
}

...
아래처럼 프로퍼티 변환 함수에 해당 프로퍼티에 대한것을
기입한다.


void COMXCtrl::DoPropExchange(CPropExchange* pPX)
{
        ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));
        COleControl::DoPropExchange(pPX);

        // TODO: Call PX_ functions for each persistent custom property.
        if (pPX->GetVersion() == (DWORD)MAKELONG(_wVerMinor, _wVerMajor))
        {
                PX_String(pPX,_T("sOMDIP"), m_Env.sOMDIP );
                PX_Long(pPX,_T("nOMDPort"), m_Env.nOMDPort );
                PX_String(pPX,_T("sGroupDIP"), m_Env.sGroupDIP );
                PX_Long(pPX,_T("nGroupDPort"), m_Env.nGroupDPort );
                PX_String(pPX,_T("sSiteID"), m_Env.sSiteID );
                PX_String(pPX,_T("sServerID"), m_Env.sServerID );
                PX_String(pPX,_T("sUserID"), m_Env.sUserID );
                PX_String(pPX,_T("sPasswd"), m_Env.sPasswd );
        }

}



그렇게 하면 아래처럼 웹페이지에서 쓸 수 있게 된다.

<TD>
  <object id=omx width=400 height=500
   classid="clsid:6D2A9FCF-749F-4648-A8C8-F16300DE6FF5"
   codebase="http://localhost/ActiveApproval/ActiveApproval.cab#version=1.0.1.7"
  >
    <PARAM NAME="sOMDIP" VALUE="61.37.47.62">
    <param name="nOMDPort" value="9204">
    <param name="sGroupDIP" value="61.37.47.62">
    <param name="nGroupDPort" value="9203">
    <param name="sSiteID" value="intracool">
    <param name="sServerID" value="jiran">
    <param name="sUserID" value="bro">
    <param name="sPasswd" value="1111">
  </object>
</TD>

+ Recent posts