void CMyActiveXCtrl::OnSetClientSite(void)
{
IOleClientSite* pClientSite = GetClientSite();
HRESULT hr = S_OK;
pWebBrowser = NULL;
IServiceProvider *isp, *isp2 = NULL;//用于導航DHTML物件層次,作用就是提供服務
if (!pClientSite)
{
if(pWebBrowser!=NULL)
{
pWebBrowser->Release();
pWebBrowser = NULL;
}
return;// !S_OK;
}
else
{
hr = pClientSite->QueryInterface(IID_IServiceProvider, reinterpret_cast<void **>(&isp));
if (FAILED(hr))
{
hr = S_OK;
goto cleanup;
}
hr = isp->QueryService(SID_STopLevelBrowser, IID_IServiceProvider, reinterpret_cast<void **>(&isp2));
if (FAILED(hr))
{
hr = S_OK;
goto cleanup;
}
//獲得瀏覽器
hr = isp->QueryService(SID_SWebBrowserApp, IID_IWebBrowser2, reinterpret_cast<void **>(&pWebBrowser));
if (FAILED(hr))
{
hr = S_OK;
goto cleanup;
}
hr = this->pWebBrowser->get_Document((IDispatch**)&pHTMLDocument); //查詢Web頁面介面
if (FAILED(hr))
{
hr = S_OK;
goto cleanup;
}
cleanup:
// Free resources.
if(isp!=NULL)
{
isp->Release();
isp = NULL;
}
if(isp2!=NULL)
{
isp2->Release();
isp2 = NULL;
}
return;// hr;
}
return;
其中只要添加這代碼hr = this->pWebBrowser->get_Document((IDispatch**)&pHTMLDocument); //查詢Web頁面介面
關閉網頁就會提示記憶體錯誤,崩潰現象。但是屏蔽了又沒辦法呼叫JS的函式。有什么辦法可以改善呢?各位,求助!!!!!!!!!!!!!!
uj5u.com熱心網友回復:
自己頂下!!!!!希望有webC++的高手來相助。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/148773.html
下一篇:資料結構
