2010-07-14 80 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用戶手動禁用了它,或者因爲處於衝突狀態的第三方安裝程序會自動禁用它。如果用戶手動禁用工具欄,則無法自動顯示它!您需要在Tools,Manage Add-On中重新啓用加載項。