次の方法で共有


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_STATEAfxGetStaticModuleStateで説明します)。

AFX_MANAGE_STATE のマクロはアクティベーション コンテキストをアクティブにし、非アクティブ化されます。_AFX_MANAGE_STATE を有効にする静的 MFC ライブラリ、 MFC DLL に、 MFC コード実行適切アクティベーション コンテキスト選択に対してユーザー DLL。

参照

関連項目

Activation Contexts

Application Manifests

Assembly Manifests

AfxWinInit

AfxGetStaticModuleState

AFX_MANAGE_STATE