Пожалуйста, помогите мне понять, что я делаю неправильно!ShowBrowserBar() не отображает панель инструментов в IE8
У меня проблема, когда я программно активирую панель инструментов IE из другой программы. внесении его в соответствии с инструкцией на данном веб-сайте поддержки Microsoft (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 в обоих из них.
У кого-нибудь есть ключи?
С уважением, Anna.