Suggest me in handling Bad pointer. ( IE Sidebar using as COM Object, VCC+)
Hi,
I have my Vertical sidebar with IE. It is causing a problem when I logout of secured sites (https://).
The history is here:
There was problem in IR5.0 and that was fixed by a piece of code (under SUPPORT_IE5)in sidebar. The bug was fixed in IE6.0 and sidebar was happy with IE6.0 But now with IE7.0, when I logout of secured sites,
URL for the below function is passed something link “{????}” by IE (as we can not go to the previous page of some secured site once logged out of it.) So obviously URL -> bstrlVal ends up as a bad pointer.
Now please suggest me where can I initialize the pointer (URL) as the value to this is passed by IE either with URL of Main browser address bar and URL of sidebar alternatively. It is enough atlease If I could catch the URL when it has NULL Pointer in it.
Please suggest.
HRESULT __stdcall BPCompanion::DocumentComplete(IDispatch* pDisp, VARIANT* URL)
{
DEBUG_TRACE("DocumentComplete");
// Call Script Function
CallScript(pDisp, CComBSTR(L"BeforeNavigation"));
if (NULL != URL)
DEBUG_TRACE("URL %S", URL->bstrVal);
//IE 5
#ifdef SUPPORT_IE5
if (pDisp == m_spWebBrowser)
{
if (!URL || CComBSTR(URL->bstrVal) == CComBSTR("about:blank"))
{
SetFocus();
CallScript(pDisp, CComBSTR(L"RHSDocumentComplete"));
}
if (URL){
if ( wcsstr(URL->bstrVal, L"shdoclc.dll/dnserror.htm#") != NULL ){
DEBUG_TRACE("Calling NavigateError for IE5.0 crash resolution");
NavigateError(pDisp, URL);
}
}
}else{
if (URL){
Now the code fails here
& crashes if ( wcsstr(URL->bstrVal, L"bpworldcompanion.dll") != NULL ){
DEBUG_TRACE("Calling RHSDocumentComplete for IE5.0 crash resolution");
CallScript(pDisp, CComBSTR(L"RHSDocumentComplete"));
}
}
}
#else
if (pDisp == m_spWebBrowser)
{
if (!URL || CComBSTR(URL->bstrVal) == CComBSTR("about:blank"))
{
SetFocus();
}
}
#endif
return S_OK;
} Started By malathiashok on Apr 28, 2009 at 10:40:06 PM |