Share via


ATLEventHandling サンプル : IDispEventImpl と IDispEventSimpleImpl を使用した Word イベントの処理

更新 : 2007 年 11 月

ATLEventHandling サンプルでは、IDispEventImplIDispEventSimpleImpl を使用して、Microsoft Word で発生したイベントを処理する方法を示します。

このサンプルは、CSimple および CNotSoSimple という 2 つの COM クラスを含む ATL プロジェクトで構成されます。この 2 つのクラスは、Microsoft Word で発生した文書変更イベントに対してメッセージ ボックスを表示する COM オブジェクトを表します。CSimple は ATL の IDispEventSimpleImpl クラス テンプレートを使用してイベントを処理する方法を示し、CNotSoSimple は ATL の IDispEventImpl クラス テンプレートを使用してイベントを処理する方法を示します。2 つのクラスのコードは、異なる ATL テンプレートを使用することで生じる違いを除いて同一です。

e85w507k.alert_security(ja-jp,VS.90).gifセキュリティに関するメモ :

このサンプル コードは概念を示す目的で提供されているものです。必ずしも最も安全なコーディング手法に従っているわけではないので、アプリケーションまたは Web サイトでは使用しないでください。Microsoft は、サンプル コードが意図しない目的で使用された場合に、付随的または間接的な損害について責任を負いません。

サンプルとそのインストール手順を取得するには

  • Visual Studio で、[ヘルプ] メニューの [サンプル] をクリックします。

    詳細については、「サンプル ファイルの格納場所」を参照してください。

  • 使用できるサンプルの最新バージョンと完全な一覧については、オンラインの Visual Studio 2008 Samples のページを参照してください。

  • サンプルは、コンピュータのハード ディスク上にもあります。既定では、サンプルおよび Readme ファイルは、\Program Files\Visual Studio 9.0\Samples\ の下のフォルダにコピーされます。Visual Studio Express Edition の場合、すべてのサンプルはオンライン上にあります。

サンプルのビルドと実行

e85w507k.alert_note(ja-jp,VS.90).gifメモ :

このサンプルを使用するには、Microsoft Office 2000 がインストールされている必要があります。ほかのバージョンの Microsoft Office でこのサンプルを使用する場合は、ATLEventHandling ディレクトリの StdAfx.h ファイルで参照される mso dll ファイルのパスを指定してください。たとえば、Office 2000 では mso9.dll を使用し、Office XP では mso.dll を使用します。

このサンプルをビルドして実行するには

  1. ソリューション ファイル ATLEventHandling.sln を開きます。

  2. Excel 2000 を使用している場合は、StdAfx.h 内の次の行を変更します。

    #define OFFICE_VER OFFICEXP
    

    次のように変更してください。

    #define OFFICE_VER OFFICE2000
    
  3. [ビルド] メニューの [ソリューションのビルド] をクリックします。

  4. MFCClient.exe を実行します。

ドロップダウン リストのあるダイアログ ボックスが表示されます。このダイアログ ボックスで、IDispEventImpl または IDispEventSimpleImpl を使用してテストを実行できます。これらのアイテムのいずれかを選択し、[Start] ボタンをクリックします。Microsoft Word がコンピュータにインストールされている場合は、アクティブな文書が変更されるたびに、新規インスタンスが読み込まれ、テスト コンポーネントが Word から送られたイベントの受信を開始します。

Word の [ウィンドウ] メニューを使用して、新規文書の作成、文書の読み込み、または別の文書への切り替えを行うことにより、イベントを発生させることができます。文書が変更されるたびに、イベントを受信しているコンポーネントおよび新規にアクティブになった文書の名前を示すメッセージ ボックスが表示されます。ドロップダウン リストの選択項目を変更するか、または Word を閉じることにより、[MFCClient] ダイアログ ボックスの [Stop] を使用して Word のインスタンスからイベント ハンドラを切断できます。

[OK] または [Cancel]、あるいはダイアログ ボックスの [閉じる] ボタンを使用して、サンプル アプリケーションを閉じます。

キーワード

このサンプルでは、次のキーワードを使用します。

_ATL_FUNC_INFO, BEGIN_SINK_MAP, END_SINK_MAP, SINK_ENTRY_EX, SINK_ENTRY_INFO, IDispEventImpl, IDispEventSimpleImpl, IDispEventSimpleImpl::DispEventAdvise, IDispEventSimpleImpl::DispEventUnadvise

参照

その他の技術情報

ATL サンプル