lwg7603,你能说的详细一点吗?
我真的很急!!!

解决方案 »

  1.   

    CComQIPtr<IWebBrowser2> m_spBrowser;
    CAxWindow content_wnd;
    ......
    if(  _tcslen(m_tcHtmlFileName) > 0 )
    {
    RECT rc;
    GetClientRect( &rc );
    if(m_spBrowser==NULL)
    {
    LPOLESTR pstrbrowserid;
    StringFromCLSID(IID_IWebBrowser2,&pstrbrowserid);
    _bstr_t bstrbrowser(pstrbrowserid);
    CoTaskMemFree(pstrbrowserid);
    if(content_wnd.IsWindow())
    content_wnd.DestroyWindow();
    content_wnd.Create( m_hWnd, rc, LPCTSTR(bstrbrowser), WS_CHILD|WS_VISIBLE|WS_HSCROLL|WS_VSCROLL );//create a browser control
    HRESULT hrbrowser;
    hrbrowser = content_wnd.QueryControl( IID_IWebBrowser2, reinterpret_cast<void**>(&m_spBrowser) );
    }
    if(m_spBrowser)
    {
    VARIANT varflag;
    VariantInit(&varflag);
    varflag.vt = VT_INT;
    varflag.intVal =0x6;//BrowserNavConstants::navNoHistory|BrowserNavConstants::navNoReadFromCache;
    VARIANT varurl;
    VariantInit(&varurl);
    varurl.vt = VT_BSTR;
    varurl.bstrVal = _bstr_t(m_tcHtmlFileName);
    VARIANT vartarget;
    VariantInit(&vartarget);
    vartarget.vt = VT_BSTR;
    vartarget.bstrVal = _bstr_t("_self");
    m_spBrowser->Navigate2(&varurl,&varflag,&vartarget,NULL,NULL);
    }
      

  2.   

    ActiveX是COM的一些标准接口的集合,当然这个标准是M$指定的,也就是说ActiveX的使用和使用COM的方法是一样,但另一方面,一个COM的组件不一定是一个ActiveX组件。通常一个COM组件的使用分三种方式,一,纯C++的方式(我最喜欢),二,ATL的方式(简洁,高效),三,MFC方式(所有COM涉及的主题均可实现,并且是GUI-rich的)。所以如果你会这三种方法中的任何一种,你便可以在COM中使用ActiveX.