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

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

注解

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

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

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

  • MFC 用户 DLL 为其清单资源使用资源 ID 2。 此时,MFC 将为每用户 DLL 创建激活上下文,以便其他用户 DLL 可使用同一库(例如,公共控件库)的不同版本。

  • MFC 扩展 DLL 依赖其承载应用程序或用户 DLL 建立其激活上下文。

虽然激活上下文状态可以使用“使用激活上下文 API”下描述的过程修改,但在开发基于 DLL 的插件体系结构(其中难以(无法)在单独调用外部插件前后手动切换激活状态)时,使用 MFC 激活上下文机制可能非常有用。

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

AFX_MANAGE_STATE 宏将激活和停用激活上下文。 将为静态 MFC 库以及 MFC DLL 启用 AFX_MANAGE_STATE,以使 MFC 代码在用户 DLL 选择的正确激活上下文中执行。

另请参阅

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