S'il vous plaît aidez-moi à comprendre ce que je fais mal!ShowBrowserBar() ne montre pas la barre d'outils dans IE8
J'ai un problème lorsque j'activer par programme ma barre d'outils IE à partir d'un autre programme. Faire en suivant les instructions données sur le site de support 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;
Ce code fonctionne correctement dans IE7, mais ne fonctionne pas dans IE8. Dans les deux cas, ShowBrowserBar() renvoie S_OK, mais dans IE8, toolbar.dll n'est pas chargé dans le navigateur, c'est-à-dire que la barre d'outils n'est pas activée et n'est donc pas affichée. J'ai également essayé de lancer IE8 avec trois onglets et de vérifier si ShowBrowserBar() tente d'ouvrir la barre d'outils dans les onglets, pas le processus du gestionnaire.
Il est fichier journal:
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!
Tout fonctionne comme prévu dans IE7, mais pas dans IE8, et je ne peux pas comprendre pourquoi la méthode ShowBrowserBar() retourne S_OK dans les deux d'entre eux.
Quelqu'un at-il des indices?
Cordialement, Anna.