スレッドとして動作する静的メソッドをクラスに追加します。クリックしてください。pParam);のようになります。メンバ変数として追加します。<afxtempl.h>を追加します。前行の直前に追加の宣言を挿入します。メンバ変数として追加します。コンストラクタに追加します。以下のように編集します。以前に退避したスレッドハンドルが残っていれば削除する。接続インタフェースをすべて取得し、マーシャリング後、配列に格納する。インタフェースをマーシャリングし、格納する。マーシャリングして格納する。スレッドを作成し、開始する。Error(_T("スレッドを作成できませんでした。スレッド終了待ち合わせのための、スレッドハンドルを複製する。Error(_T("致命的なエラーが発生しました。以下のように編集します。待ち合わせを行ったあと、削除する。適当な時間を設定している。イベント通知に使用するインタフェースを解放する。以下のように編集します。ライブラリを初期化し、新たなアパートメントスレッドに入る。クラスインスタンスへのポインタを取り出す。時間のかかる処理をする。コンテナ終了時以外は通知する。コンテナにイベント通知する。アンマーシャリング後の接続ポイントを格納する。インタフェースを格納する。接続インタフェースをアンマーシャリングし配列に格納する。インタフェースをアンマーシャリングし、格納する。インタフェースに値を設定しイベントを発生する。ライブラリを解放する。通知を行うことによってアクセス違反が起きるためです。テストしてみてください。応答が固まることもなく、かつ、スレッド処理が終了したら、イベントが発生するのが確認できると思います。このサンプルではスレッド内のフラグの排他処理やスレッドの二重起動などには一切対処していません。実際に業務で使用する場合は、それらを考慮する必要があると思われますので、お気をつけください。行うと、時々、異常終了してしまうことを確認しています。無効になっているのだと思います。スレッドをなんとか正常終了させることができるようで、アクセス違反は起こらなくなります。本来はコントロール側で対処するべきなのですが、根本的な解決策を見つけられていません。埋め込んで利用になる場合は十分ご注意ください。