我找到应该是用IPropertyBag接口了,好象还有一个IPersistPropertyBag接口。他们之间的关系是怎么会事呀?我想在mfc编写的activex上使用,应该怎么办呀?
哪位大虾帮帮忙吧

解决方案 »

  1.   

    重载IpersistPropertyBag::Load(IPropertyBag * pBag,IErrorLog *pLog)
    CComVariant v;
    pBag->Read(OLESTR("yourParamName"),&v,pLog)
    就行了..
      

  2.   

    容器支持IPropertyBag接口,控件支持IPersistPropertyBag接口,来实现
    控件的持久化的.
    你可以在Load方法中开线程与服务器连接.pBag->Read(OLESTR("IPADDR"),&v,pLog)给分吧:)
      

  3.   

    太好了,终于有人回答了!!!
    alchemy(亡灵),你放心,我一定给分
    不过我还有问题,我也发现是应该用IPersistPropertyBag来做这件事情了,不过怎么重载这个接口呀(别笑我,我真的不知道呀,我以前都是写硬件程序的:-()?方便的话你能不能帮我做一个例程呀?谢谢啦!!!email:[email protected]
      

  4.   

    alchemy(亡灵)
    你能qq我吗?
    我的qq:2258148
    多谢了
      

  5.   

    先说下抱歉吧:)
    我一直用atl,mfc我也不熟悉
    不过我想思想上应该差不多的
    mfc用的是嵌套方法实现接口的:

    BEGIN_INTERFACE_PART(PersistPropertyBag,IpersistPropertyBag)
    STDMETHOD(Load)(IPropertyBag * pBag,IErrorLog *pLog);
    ...
    END_INTERFACE_PART()
    声明接口
    然后要映射到你的类里好实现QueryInterface..
    BEGIN_INTERFACE_MAP(CYourObj,CCmdTarget)
    INTERFACE_PART(CYourObj,IID_PersistPropertyBag,PersistPropertyBag)
    ...
    END_INTERFACE_MAP()
    然后在你的控件类里写:成员好象是m_xPersistPropertyBag?
    HRESULT CYourObj::XPersistPropertyBag::Load(IPropertyBag * pBag,IErrorLog *pLog)
    {
    CComVariant v;
    USES_CONVERSION;
    LPTSTR pstr = NULL;
    v.vt = VT_BSTR;
    if(SUCCEEDED(pBag->Read(OLESTR("IPADDR"),&v,pLog)))
    {
    pstr = W2T(v.bstrVal));
    }
    return S_OK;
    };
    你的情况应该有些不同,试试吧,好运.
    我的qq是1845503
    不常用的:)
      

  6.   

    谢谢啦!我已经向你申请好友的,不过你还没有认证:-(我还想请问关于这个IPersistPropertyBag::Load函数,它是会在初始化的时候自动被调用运行吗?还是需要我的干预呀???呀,把我加为好友吧,我身边没有人做过com和activex,一个人搞起来好痛苦呀
      

  7.   

    发给你了,是工程文件
    [email protected]