請幫我理解我在做什麼錯了!ShowBrowserBar()在IE8中不顯示工具欄
我從其他程序以編程方式激活我的IE工具欄時遇到問題。 使其成爲在微軟支持網站(http://support.microsoft.com/kb/q255920/)給出的指令後:
SHDocVw::IWebBrowser2Ptr pIE;
HRESULT hr = ::CoCreateInstance(CLSID_InternetExplorer, NULL,
CLSCTX_LOCAL_SERVER, IID_IWebBrowser2, (LPVOID*)&pIE);
if(FAILED(hr)) return;
try {
_variant_t vClsID;
_variant_t vVis;
_variant_t vNotUsed;
vClsID.vt = VT_BSTR;
vClsID.bstrVal = SysAllocString(OLESTR("{MY_TOOLBAR_GUID}"));
vVis.vt = VT_BOOL;
vVis.boolVal = VARIANT_TRUE;
vNotUsed.vt = VT_INT;
vNotUsed.intVal = 1;
hr = pIE->ShowBrowserBar()(&vClsID, &vVis, &vNotUsed);
SysFreeString(vClsID.bstrVal);
if(FAILED(hr)) return;
}catch(...) {return;}
pIE->Navigate2(&Url);
pIE->Visible = TRUE;
此代碼工作正常在IE7,但在IE8無法正常工作。在這兩種情況下,ShowBrowserBar()都會返回S_OK,但在IE8中toolbar.dll並未加載到瀏覽器中,即工具欄未激活,因此不會顯示。 我也嘗試使用三個選項卡啓動IE8,並檢查ShowBrowserBar()是否嘗試在選項卡中打開工具欄,而不是管理器進程。
這是日誌文件:
Handle url 'outlook:'
ShowBrowserBar() FAILED!
Handle url 'http://www.handypassword.com'
ShowBrowserBar() SUCCESSED!
Handle url 'http://www.google.ru/'
ShowBrowserBar() SUCCESSED!
Handle url 'http://vkontakte.ru/'
ShowBrowserBar() SUCCESSED!
一切都按預期在IE7,但不是在IE8的,我不明白爲什麼ShowBrowserBar()方法,在他們兩人返回S_OK。
有沒有人得到任何線索?
溫馨的問候, 安娜。