我做了一个IE Band工具栏,希望做成和IE的历史差不多,点击IE bar上的按钮弹出左面的band窗口
里面出现一个网页,在里面显示一个网页,而且我想把网页做成动态的,
就是我在IE Toolbar做了一个Edit控件,edit控件按下Enter之后,控件内容传到
IE Band里面的网页里并且刷新这个网页,
我本来的想法是在Edit空间的回车事件里面用CoCreateInstance得到IE Band的,
可是原来的IE Band的网页没变,反而显示出一个新的IE Band,并且显示在IE工具栏上m_pUnkSite是工具栏按钮的SetSite中保存下来的IUnknown变量
IUnknown* pUnk;
HRESULT hr = ::CoCreateInstance(CLSID_VerticalBar, NULL, CLSCTX_INPROC_SERVER, IID_IUnknown, (void**)&pUnk);
IObjectWithSite* pOWS;
hr = pUnk->QueryInterface(IID_IObjectWithSite, (void**)&pOWS);
pOWS->SetSite( m_pUnkSite );
IVerticalBar *pdb;
hr = m_pUnkSite->QueryInterface(IID_IVerticalBar, (void**)&pdb);
if (SUCCEEDED(hr))
{
// 调用IE Band的方法,传递参数过去
pdb->OnSearch(_T("KEYWORD"));
}这个是IE Band的定义
class ATL_NO_VTABLE CVerticalBar :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CVerticalBar, &CLSID_VerticalBar>,
public IObjectWithSiteImpl<CVerticalBar>,
public IDispatchImpl<IVerticalBar, &IID_IVerticalBar, &LIBID_MYIEBARVERLib>,
public IPersistStreamInitImpl<CVerticalBar>,
public CWindowImpl<CVerticalBar>,
public IDeskBand,
public IInputObject
不知道问题出在哪里?怎样把原来的IE Band去掉,然后把CoCreateInstance出来的IE Band显示在
IE左边?
实在不行可不可以用hook在IE Band里面得到IE Toolbar的Edit控件按下Enter键时的内容呢?
里面出现一个网页,在里面显示一个网页,而且我想把网页做成动态的,
就是我在IE Toolbar做了一个Edit控件,edit控件按下Enter之后,控件内容传到
IE Band里面的网页里并且刷新这个网页,
我本来的想法是在Edit空间的回车事件里面用CoCreateInstance得到IE Band的,
可是原来的IE Band的网页没变,反而显示出一个新的IE Band,并且显示在IE工具栏上m_pUnkSite是工具栏按钮的SetSite中保存下来的IUnknown变量
IUnknown* pUnk;
HRESULT hr = ::CoCreateInstance(CLSID_VerticalBar, NULL, CLSCTX_INPROC_SERVER, IID_IUnknown, (void**)&pUnk);
IObjectWithSite* pOWS;
hr = pUnk->QueryInterface(IID_IObjectWithSite, (void**)&pOWS);
pOWS->SetSite( m_pUnkSite );
IVerticalBar *pdb;
hr = m_pUnkSite->QueryInterface(IID_IVerticalBar, (void**)&pdb);
if (SUCCEEDED(hr))
{
// 调用IE Band的方法,传递参数过去
pdb->OnSearch(_T("KEYWORD"));
}这个是IE Band的定义
class ATL_NO_VTABLE CVerticalBar :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CVerticalBar, &CLSID_VerticalBar>,
public IObjectWithSiteImpl<CVerticalBar>,
public IDispatchImpl<IVerticalBar, &IID_IVerticalBar, &LIBID_MYIEBARVERLib>,
public IPersistStreamInitImpl<CVerticalBar>,
public CWindowImpl<CVerticalBar>,
public IDeskBand,
public IInputObject
不知道问题出在哪里?怎样把原来的IE Band去掉,然后把CoCreateInstance出来的IE Band显示在
IE左边?
实在不行可不可以用hook在IE Band里面得到IE Toolbar的Edit控件按下Enter键时的内容呢?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货