我使用這個代碼下沉C IN上的一個IWebBrowser2的網頁瀏覽器事件++:VARIANT *串拋出未知異常
STDMETHODIMP AdviseSink::Invoke(DISPID dispIdMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS* pDispParams,
VARIANT* pVarResult,
EXCEPINFO* pExcepInfo,
UINT* puArgErr)
{
if (!pDispParams)
return DISP_E_PARAMNOTOPTIONAL;
switch (dispIdMember)
{
case DISPID_DOCUMENTCOMPLETE:
{
DocumentComplete(pVarResult);
return S_OK;
}
case DISPID_NAVIGATECOMPLETE2:
return S_OK;
default:
return DISP_E_MEMBERNOTFOUND;
}
return S_OK;
}
void DocumentComplete(VARIANT *url)
{
std::string strValue = (char*)_bstr_t(url);
}
致電時(無效)的DocumentComplete我得到這個錯誤:
*未處理的異常在webhost.exe的0x7c812afb處:Microsoft C++異常:_com_error在內存位置0x0012ed50。*
如果在DocumentComplete上註釋該行,則不會顯示任何錯誤。也try..catch塊doens't趕上例外。
我想要做的是使用Variant * url與std :: string進行比較。
我該怎麼做?
謝謝,你的回答真的幫了我。 – jarkam 2010-10-05 02:31:34