问========================================
eagleboost,您好!
在csdn上看到你以前写的关于IE编程方面的文章,看得出来你对这方面非常熟悉。我现在有个问题想请教一下你,就是我已经做了一个类似google工具条的东西,已经注册了,但要自己去右键菜单勾上才能显示出来。
我想让它一注册,ie就默认将其显示出来,不知道要修改注册表什么地方?
麻烦你解答一下,非常感谢!
2004-09-22
答========================================
你的问题比较常见。
标准的,也是最好的办法是在你的工具条之外再实现一个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;
}
引用地址:FAQ:启动IE时自动显示工具条