Поделиться через


Поддержка контекстов активации в состоянии модуля MFC

MFC создает контекст активации с помощью ресурса манифеста предоставлен модулем пользователя. Дополнительные сведения о том, как контексты активации создаются см. в следующих разделах:

Примечания

При чтении эти разделы Windows SDK, обратите внимание, что механизм контекста активации MFC напоминает контекста активации Windows SDK, за исключением того, что MFC не использует API контекста активации Windows SDK.

Контекст активации работает в приложениях MFC DLL, пользователя и библиотеками расширения следующими способами:

  • Приложения MFC 1 используют идентификатор ресурса для их ресурсов манифеста. В этом случае MFC не создает свой собственный контекст активации, но использует контекст приложения по умолчанию.

  • Библиотека DLL MFC пользователя используют идентификатор ресурса 2 для них ресурсов манифеста. В данном случае MFC создает контекст активации библиотеки DLL для каждого пользователя, поэтому 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, так и библиотека DLL MFC, разрешения кода MFC для выполнения в правильном контексте активации выбранном DLL пользователя.

См. также

Ссылки

Activation Contexts

Application Manifests

Assembly Manifests

AfxWinInit

AfxGetStaticModuleState

AFX_MANAGE_STATE