2010-07-14 1 views
0

Когда я запускаю этот код в IE8, ShowBrowserBar возвращает S_OK, но панель инструментов не отображается. На IE7 он отлично работает. Я видел аналогичный вопрос здесь, Анна, но без рабочего ответа ... :) Любые предложения?VC++ ShowBrowserBar не работает на IE8

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    CoInitialize(0); 
    IWebBrowser2 *pIE = NULL; 

    // Create an instance of Internet Explorer 
    HRESULT hr = CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_SERVER,  IID_IWebBrowser2, (void**)&pIE); 
    if (FAILED(hr)) { 
     return 1; 
    } 

    if(pIE != NULL) { 
     VARIANT vtBandGUID, vtShow, vtSize; 
     vtBandGUID.vt = VT_BSTR; 
     vtBandGUID.bstrVal = SysAllocString(L"{my-toolbar-guid}"); 

     vtShow.vt = VT_BOOL; 
     vtShow.boolVal = VARIANT_TRUE; 
     vtSize.vt = VT_I2; 
     vtSize.iVal = 0; 

     HRESULT hr = pIE->ShowBrowserBar(&vtBandGUID, &vtShow, &vtSize); 
     SysFreeString(vtBandGUID.bstrVal); 
     pIE->Release(); 
    } 
    CoUninitialize(); 
    return 0; 
} 

ответ

1

По умолчанию любое добавление или панель инструментов, которые вы устанавливаете в Internet Explorer, будет включена; но впоследствии он может стать отключенным (вы больше не сможете его использовать), так как вы или другой пользователь Windows вручную отключили его, или потому, что сторонний установщик в конфликте автоматически отключил его. Если пользователь отключить панель инструментов вручную, вы не сможете ее автоматически отобразить! Вам нужно снова включить надстройку в «Инструменты», «Управление надстройками».

Смежные вопросы