MFC モジュール状態でのアクティベーション コンテキストのサポート
MFC では、ユーザーのモジュールで提供されるマニフェスト リソースを使用してアクティベーション コンテキストを作成します。詳細については、アクティベーション コンテキストがどのように作成されるか、次のトピックを参照:
解説
Windows SDK の " を読み取るときは、 MFC のアクティベーション コンテキストの機能が Windows SDK のアクティベーション コンテキストに似ていますが、 MFC が Windows SDK のアクティベーション コンテキストの API を使用しないことに注意してください。
アクティベーション コンテキストは、 MFC アプリケーション、ユーザーの拡張 DLL と動的リンク ライブラリで次のように動作します:
MFC アプリケーションは、マニフェスト リソースのリソース id 1 を使用します。この場合、 MFC は独自のアクティベーション コンテキストを作成しませんが、既定のアプリケーションのコンテキストを使用します。
MFC のユーザーの DLL はマニフェスト リソースのリソース id 2 を使用します。ここでは、 MFC はユーザーの DLL のアクティベーション コンテキストを作成するので、異なるユーザーの DLL は同じライブラリ (たとえば、コモン コントロール ライブラリ)の異なるバージョンを使用できます。
MFC 拡張ダイナミック リンク ライブラリは、ホスト アプリケーションまたはユーザーの DLL にアクティベーション コンテキストが確立する依存します。
アクティベーション コンテキストの状態が Using the Activation Context APIの下で説明するプロセスを使用して変更できますが、 MFC のアクティベーション コンテキストの機能を使用して手動で外部プラグ インにアクティベーションの状態を前後にユーザーの呼び出し切り替えることができます (または)可能ではない DLL ベースのプラグイン アーキテクチャを開発する場合に便利です。
アクティベーション コンテキストは AfxWinInitに作成されます。これは AFX_MODULE_STATE のデストラクターで破棄されます。アクティベーション コンテキストのハンドルは AFX_MODULE_STATEに保持されます。(AFX_MODULE_STATE は AfxGetStaticModuleStateで説明します)。
AFX_MANAGE_STATE のマクロはアクティベーション コンテキストをアクティブにし、非アクティブ化されます。_AFX_MANAGE_STATE を有効にする静的 MFC ライブラリ、 MFC DLL に、 MFC コード実行適切アクティベーション コンテキスト選択に対してユーザー DLL。