支持 MFC 模块状态中的激活上下文

MFC 使用用户模块提供的清单资源创建激活上下文。 有关如何创建激活上下文的详细信息,请参阅以下主题:

注解

阅读这些 Windows SDK 主题时,请注意,MFC 激活上下文机制类似于 Windows SDK 激活上下文,但 MFC 不使用 Windows SDK 激活上下文 API。

激活上下文在 MFC 应用程序、用户 DLL 和 MFC 扩展 DLL 中的工作方式如下:

  • MFC 应用程序将资源 ID 1 用于其清单资源。 在这种情况下,MFC 不会创建自己的激活上下文,而是使用默认应用程序上下文。

  • MFC 用户 DLL 对其清单资源使用资源 ID 2。 在这里,MFC 为每个用户 DLL 创建一个激活上下文,因此不同的用户 DLL 可以使用相同库的不同版本(例如 Common Controls 库)。

  • MFC 扩展 DLL 依赖于其托管应用程序或用户 DLL 来建立其激活上下文。

尽管可以使用“ 使用激活上下文 API”中所述的进程修改激活上下文状态,但在开发基于 DLL 的插件体系结构时,使用 MFC 激活上下文机制非常有用,因为开发不方便(或不可能)在对外部插件进行单独调用之前和之后手动切换激活状态。

激活上下文是在 AfxWinInit 中创建的。 它在析构函数中 AFX_MODULE_STATE 被销毁。 激活上下文句柄保留在 AFX_MODULE_STATE内。 (AFX_MODULE_STATEAfxGetStaticModuleState 中介绍)。

AFX_MANAGE_STATE宏激活并停用激活上下文。 AFX_MANAGE_STATE 为静态 MFC 库和 MFC DLL 启用,以允许 MFC 代码在用户 DLL 选择的适当激活上下文中执行。

另请参阅

激活上下文
应用程序清单
程序集清单
AfxWinInit
AfxGetStaticModuleState
AFX_MANAGE_STATE