我制作了一个IE工具条.
现在必须 IE-查看-工具栏 钩选才能显示.
我想如何才能注册组件后 立刻能显示呢?
本人比较菜 希望大家能提供详细代码,分不够可以再加.我是参考CSDN上的例子写的.
http://dev.csdn.net/develop/article/7/7099.shtm
代码我一点都没有改,只为学习.
现在希望高手大哥们能给段代码 告诉我应该放在这个例子的什么位置...我搜索的答案大致感觉是要控制 IE的BHO 信息,但实在是不知如何继续....

解决方案 »

  1.   

    转载,见http://blog.csdn.net/cathyeagle/archive/2004/09/22/113557.aspx你的问题比较常见。
    标准的,也是最好的办法是在你的工具条之外再实现一个Browser Helper Object(BHO),比如下面的CShowBarObj,并在IObjectWithSite::SetSite方法中调用IWebBrowser2的ShowBrowserBar函数来显示你的工具条。VC中的例子如下:STDMETHODIMP CShowBarObj::SetSite(IUnknown *pUnkSite)
    {
       if (NULL != pUnkSite)
       {
          IWebBrowser2 *pBrowser = NULL;
          // Ensure that our site is an browser window
          HRESULT hr = pUnkSite->QueryInterface(IID_IWebBrowser2, (void **) &pBrowser);
          if (SUCCEEDED(hr))
          {
             // Display the band object (the Search bar in this case)
             VARIANT vtBandGUID, vtShow;
             vtBandGUID.vt = VT_BSTR;
             //把这里的CLSID换成你的工具条CLSID
             vtBandGUID.bstrVal = SysAllocString(OLESTR("{30D02401-6A81-11D0-8274-00C04FD5AE38}"));
             vtShow.vt = VT_BOOL;
             vtShow.boolVal = true;
             pBrowser->ShowBrowserBar(&vtBandGUID, &vtShow, 0);
             SysFreeString(vtBandGUID.bstrVal);
             pBrowser->Release();
          }
       }
       return S_OK;
    }
      

  2.   

    这个是VC的解决.
    我根本转不成 DELPHI...
      

  3.   

    在你抄的那个网页代码的
    function TGetMailBand.SetSite(const pUnkSite: IUnknown):HResult;stdcall;
    这个函数里,加下面这句
      (pUnkSite as IWebbrowser2).ShowBrowserBar(Class_GetMailBand, True, 0); 放在
      Result := S_OK; 
    end;
    前面应该就可了 如果编译有问题,就 uses Shdocvw, ActiveX;
      

  4.   

    [Error] BandUnit.pas(153): Types of actual and formal var parameters must be identical
    [Fatal Error] MailIEBand.dpr(7): Could not compile used unit 'BandUnit.pas'试了一下 还是有这个提示啊....USES 已经照做了...
      

  5.   

    加如下变量:
    var
      vaClsID, vaEnabled, vaDummy: Olevariant;
    begin  ...
      vaCLSID := Class_GetMailBand;
      vaEnabled := True;
      vaDummy := 0;
      (pUnkSite as IWebbrowser2).ShowBrowserBar(vaCLSID, vaEnabled, vaDummy);
      Result := S_OK;
    end;