KBBarとIEイベント


藁をもつかみたい猫  2009-03-17 04:02:20  No: 69853

はじめまして。皆様。

VS2008&XPの環境でIEツールバーを作成しているものです。
KBBarをダウンロードし、コンパイルまで通るようになりました。
KBBar:http://support.microsoft.com/kb/246234/ja

私がご質問したいことは、
ieコンポーネントからのイベントをこのツールバーに取り込む方法です。
http://www.nitoyon.com/vc/tips/ie_component.htmを参考にしていますが
ツールバーに置き換えたとたん、頭が混乱してしまうのです。

実装方法についてご教授いただければ幸いです。
よろしくお願いいたします。


gak  2009-03-20 02:17:02  No: 69854

> 実装方法についてご教授いただければ幸いです。
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 で試してないので他に修正等要るかもしんないケド、そこは臨機応変に対応して。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加