西晋建立者:WINCE 下 CDialog中显示网页 VC

来源:百度文库 编辑:九乡新闻网 时间:2024/05/09 04:03:49
http://blog.csdn.net/sunloverain2/archive/2010/09/28/5912568.aspx 利用VC 在WinCE下显示网页对于显示网页想到了用IE Browser 但是最终写的时候发现,用那个控件出了好多问题,后来参看网上的做法利用IWebBrowser2 DCOM组件但是发现噩梦远没有结束实现代码添加变量view plaincopy to clipboardprint?
IWebBrowser2 *m_pBrowser;//组件  
CWnd   m_wndBrowser;//容纳组件的容器 
在Initdialog中添加view plaincopy to clipboardprint?
CoUninitialize();//这句非常重要,网上示例中没有这句我的噩梦就是由此而来  
        if(!m_wndBrowser.CreateControl(CLSID_WebBrowser, NULL, WS_VISIBLE | WS_CHILD,   
            rect, this, AFX_IDW_PANE_FIRST))  
        {  
            return FALSE;  
        }  
    LPUNKNOWN lpUnk = m_wndBrowser.GetControlUnknown();  
    if(lpUnk==NULL)  
    {  
        m_wndBrowser.DestroyWindow();  
        return FALSE;  
    }  
    HRESULT hr = lpUnk->QueryInterface(IID_IWebBrowser2, (void**) &m_pBrowser);  
    if (! SUCCEEDED(hr))  
    {  
        m_pBrowser = NULL;  
        m_wndBrowser.DestroyWindow();  
        return FALSE;  
    } 
在创建控件前之所以添加CoUninitialize(); 在这里CreateControl 自动调用了AtlOleInitialize对于关闭所加载的DCOM库,防止在其他程序或者类库中调用了DCOM设置的模式不一样,而引发问题,在没有加这句话时候引发了这个导致程序终止的原因,原因是我一个做视频采集的类中用到了drictshow 而在他的初始化中设置的模式为多线程模式,所以引起冲突造成程序异常终止,同时添加这个方法,来定向相应的网页view plaincopy to clipboardprint?
void CAssistMachinceDlg::Navigate(CString url)  
{  
    COleVariant     empty;  
    BSTR bstrURL = url.AllocSysString();  
    HRESULT result;  
    result=m_pBrowser->Navigate (bstrURL, COleVariant((long) 0, VT_I4), empty, empty, empty);  
    if (!SUCCEEDED(result))  
    {  
        MessageBox(_T("Open failture"));  
    }  


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sunloverain2/archive/2010/09/28/5912568.aspx ( # )