针对 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