Compatibilidad con los contextos de activación en el estado del módulo MFC
MFC crea un contexto de activación mediante un recurso de manifiesto proporcionado por el módulo de usuario. Para obtener más información sobre cómo se crean los contextos de activación, consulta los temas siguientes:
Comentarios
Al leer estos temas de Windows SDK, tenga en cuenta que el mecanismo de contexto de activación de MFC es similar al contexto de activación de Windows SDK, excepto que MFC no usa la API de contexto de activación de Windows SDK.
El contexto de activación funciona en aplicaciones de MFC, archivos DLL de usuario y archivos DLL de extensión MFC de las siguientes maneras:
Las aplicaciones MFC usan el identificador de recurso 1 para su recurso de manifiesto. En este caso, MFC no crea su propio contexto de activación, pero usa el contexto de aplicación predeterminado.
Los archivos DLL de usuario de MFC usan el identificador de recurso 2 para su recurso de manifiesto. Aquí, MFC crea un contexto de activación para cada DLL de usuario, por lo que los archivos DLL de usuario diferentes pueden usar versiones diferentes de las mismas bibliotecas (por ejemplo, la biblioteca de controles comunes).
Los archivos DLL de extensión MFC dependen de sus aplicaciones de hospedaje o archivos DLL de usuario para establecer su contexto de activación.
Aunque el estado de contexto de activación se puede modificar mediante los procesos descritos en Uso de la API de contexto de activación, el uso del mecanismo de contexto de activación de MFC puede ser útil al desarrollar arquitecturas de complemento basadas en DLL en las que no es fácil (o no es posible) cambiar manualmente el estado de activación antes y después de llamadas individuales a complementos externos.
El contexto de activación se crea en AfxWinInit. Se destruye en el destructor AFX_MODULE_STATE
. Un identificador de contexto de activación se mantiene en AFX_MODULE_STATE
. (AFX_MODULE_STATE
se describe en AfxGetStaticModuleState.)
La macro AFX_MANAGE_STATE activa y desactiva el contexto de activación. AFX_MANAGE_STATE
está habilitado para bibliotecas MFC estáticas, así como DLL de MFC, con el fin de permitir que el código MFC se ejecute en el contexto de activación adecuado seleccionado por la DLL de usuario.
Consulte también
Contextos de activación
Manifiestos de aplicación
Manifiestos de ensamblado
AfxWinInit
AfxGetStaticModuleState
AFX_MANAGE_STATE