利用VC 在WinCE下显示webPage

利用VC 在WinCE下显示网页

对于显示网页想到了用IE Browser 但是最终写的时候发现,用那个控件出了好多问题,后来参看网上的做法利用IWebBrowser2 DCOM组件但是发现噩梦远没有结束

实现代码

添加变量

[cpp]  view plain copy
  1. IWebBrowser2 *m_pBrowser;//组件  
  2. CWnd   m_wndBrowser;//容纳组件的容器  
 

在Initdialog中添加

 

 

[c-sharp] view plain copy
  1. CoUninitialize();//这句非常重要,网上示例中没有这句我的噩梦就是由此而来  
  2.         if(!m_wndBrowser.CreateControl(CLSID_WebBrowser, NULL, WS_VISIBLE | WS_CHILD,   
  3.             rect, this, AFX_IDW_PANE_FIRST))  
  4.         {  
  5.             return FALSE;  
  6.         }  
  7.     LPUNKNOWN lpUnk = m_wndBrowser.GetControlUnknown();  
  8.     if(lpUnk==NULL)  
  9.     {  
  10.         m_wndBrowser.DestroyWindow();  
  11.         return FALSE;  
  12.     }  
  13.     HRESULT hr = lpUnk->QueryInterface(IID_IWebBrowser2, (void**) &m_pBrowser);  
  14.     if (! SUCCEEDED(hr))  
  15.     {  
  16.         m_pBrowser = NULL;  
  17.         m_wndBrowser.DestroyWindow();  
  18.         return FALSE;  
  19.     }  

在创建控件前之所以添加CoUninitialize(); 在这里CreateControl 自动调用了AtlOleInitialize对于关闭所加载的DCOM库,防止在其他程序或者类库中调用了DCOM设置的模式不一样,而引发问题,在没有加这句话时候引发了这个导致程序终止的原因,原因是我一个做视频采集的类中用到了drictshow 而在他的初始化中设置的模式为多线程模式,所以引起冲突造成程序异常终止,同时添加这个方法,来定向相应的网页

  1. void CAssistMachinceDlg::Navigate(CString url)  
  2. {  
  3.     COleVariant     empty;  
  4.     BSTR bstrURL = url.AllocSysString();  
  5.     HRESULT result;  
  6.     result=m_pBrowser->Navigate (bstrURL, COleVariant((long) 0, VT_I4), empty, empty, empty);  
  7.     if (!SUCCEEDED(result))  
  8.     {  
  9.         MessageBox(_T("Open failture"));  
  10.     }  
  11. }  

  注意:建立工程时要勾选winsock,Activex选项

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值