はじめまして。皆様。
VS2008&XPの環境でIEツールバーを作成しているものです。
KBBarをダウンロードし、コンパイルまで通るようになりました。
KBBar:http://support.microsoft.com/kb/246234/ja
私がご質問したいことは、
ieコンポーネントからのイベントをこのツールバーに取り込む方法です。
http://www.nitoyon.com/vc/tips/ie_component.htmを参考にしていますが、
ツールバーに置き換えたとたん、頭が混乱してしまうのです。
実装方法についてご教授いただければ幸いです。
よろしくお願いいたします。
> 実装方法についてご教授いただければ幸いです。
1、http://www.nitoyon.com/vc/tips/ie_component.htm#event のサンプルコードを download
2、サンプル内の CIEsink.h を kbbar プロジェクトにコピー
3、#include <EXDISPID.H>
4、CIEsink.h を修正
// HRESULT AdviseToIE(CComPtr<IUnknown> pUnkIE)
HRESULT AdviseToIE(IUnknown* pUnkIE)
5、KBBarBand.cpp にコード追加
STDMETHODIMP CKBBarBand::SetSite(IUnknown* punkSite) {
:
if(!CreateToolWindow())
return E_FAIL;
// 以下を追加
> if (m_pIE != NULL) {
> CComObject<CIESink>* sink;
> CComObject<CIESink>::CreateInstance(&sink);
> sink->AdviseToIE(m_pIE);
> }
return S_OK;
}
6、IEからのイベントに対応する処理を CIESink に組み込む
VS2008 で試してないので他に修正等要るかもしんないケド、そこは臨機応変に対応して。
ツイート | ![]() |