Clase CAtlExeModuleT
Esta clase representa el módulo de una aplicación.
Sintaxis
template <class T>
class ATL_NO_VTABLE CAtlExeModuleT : public CAtlModuleT<T>
Parámetros
T
La clase se deriva de CAtlExeModuleT
.
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
CAtlExeModuleT::CAtlExeModuleT | Constructor . |
CAtlExeModuleT::~CAtlExeModuleT | El destructor . |
Métodos públicos
Nombre | Descripción |
---|---|
CAtlExeModuleT::InitializeCom | Inicializa COM. |
CAtlExeModuleT::ParseCommandLine | Analiza la línea de comandos y realiza el registro si es necesario. |
CAtlExeModuleT::PostMessageLoop | Se llama a este método inmediatamente después de que se cierre el bucle de mensajes. |
CAtlExeModuleT::PreMessageLoop | Se llama a este método inmediatamente antes de escribir el bucle de mensajes. |
CAtlExeModuleT::RegisterClassObjects | Registra el objeto de clase. |
CAtlExeModuleT::RevokeClassObjects | Revoca el objeto de clase. |
CAtlExeModuleT::Run | Este método ejecuta código en el módulo EXE para inicializar, ejecutar el bucle de mensajes y hacer limpieza. |
CAtlExeModuleT::RunMessageLoop | Este método ejecuta el bucle de mensajes. |
CAtlExeModuleT::UninitializeCom | Anula la inicialización de COM. |
CAtlExeModuleT::Unlock | Disminuye el recuento de bloqueos del módulo. |
CAtlExeModuleT::WinMain | Este método implementa el código necesario para ejecutar un EXE. |
Miembros de datos públicos
Nombre | Descripción |
---|---|
CAtlExeModuleT::m_bDelayShutdown | Marca que indica que debería haber un retraso al apagar el módulo. |
CAtlExeModuleT::m_dwPause | Valor de pausa utilizado para garantizar que todos los objetos se liberan antes del apagado. |
CAtlExeModuleT::m_dwTimeOut | Valor de tiempo de espera utilizado para retrasar la descarga del módulo. |
Comentarios
CAtlExeModuleT
representa el módulo de una aplicación (EXE) y contiene código que admite la creación de un EXE, el procesamiento de la línea de comandos, el registro de objetos de clase, la ejecución del bucle de mensajes y la limpieza al salir.
Esta clase está diseñada para mejorar el rendimiento cuando los objetos COM del servidor EXE se crean y destruyen continuamente. Una vez liberado el último objeto COM, el EXE espera una duración especificada por el miembro de datos CAtlExeModuleT::m_dwTimeOut. Si no hay ninguna actividad durante este período (es decir, no se crean objetos COM), se inicia el proceso de apagado.
El miembro de datos CAtlExeModuleT::m_bDelayShutdown es una marca utilizada para determinar si el EXE debe usar el mecanismo definido anteriormente. Si se establece en “false”, el módulo finalizará inmediatamente.
Para obtener más información sobre los módulos de ATL, consulte Clases de módulo de ATL.
Jerarquía de herencia
CAtlExeModuleT
Requisitos
Encabezado: atlbase.h
CAtlExeModuleT::CAtlExeModuleT
Constructor .
CAtlExeModuleT() throw();
Comentarios
Si no se pudo inicializar el módulo EXE, WinMain hará la devolución inmediatamente sin ningún procesamiento adicional.
CAtlExeModuleT::~CAtlExeModuleT
El destructor .
~CAtlExeModuleT() throw();
Comentarios
Libera todos los recursos asignados.
CAtlExeModuleT::InitializeCom
Inicializa COM.
static HRESULT InitializeCom() throw();
Valor devuelto
Devuelve S_OK si es correcto o un error HRESULT en caso de error.
Comentarios
Se llama a este método desde el constructor y se puede invalidar para inicializar COM de una manera diferente a la implementación predeterminada. La implementación predeterminada llama a CoInitializeEx(NULL, COINIT_MULTITHREADED)
o a CoInitialize(NULL)
en función de la configuración del proyecto.
Normalmente, la invalidación de este método requiere invalidar CAtlExeModuleT::UninitializeCom.
CAtlExeModuleT::m_bDelayShutdown
Marca que indica que debería haber un retraso al apagar el módulo.
bool m_bDelayShutdown;
Comentarios
Consulte la información general de CAtlExeModuleT para obtener más detalles.
CAtlExeModuleT::m_dwPause
Valor de pausa utilizado para garantizar que no queda ningún objeto antes del apagado.
DWORD m_dwPause;
Comentarios
Cambie este valor después de llamar a CAtlExeModuleT::InitializeCom para establecer el número de milisegundos usados como valor de pausa para apagar el servidor. El valor predeterminado es 1000 milisegundos.
CAtlExeModuleT::m_dwTimeOut
Valor de tiempo de espera utilizado para retrasar la descarga del módulo.
DWORD m_dwTimeOut;
Comentarios
Cambie este valor después de llamar a CAtlExeModuleT::InitializeCom para definir el número de milisegundos usados como valor de tiempo de espera para apagar el servidor. El valor predeterminado es 5000 milisegundos. Consulte la información general de CAtlExeModuleT para obtener más detalles.
CAtlExeModuleT::ParseCommandLine
Analiza la línea de comandos y realiza el registro si es necesario.
bool ParseCommandLine(LPCTSTR lpCmdLine, HRESULT* pnRetCode) throw();
Parámetros
lpCmdLine
La línea de comandos pasada a la aplicación.
pnRetCode
El valor HRESULT correspondiente al registro (si tuvo lugar).
Valor devuelto
Devuelve “true” si la aplicación debe seguir ejecutándose; de lo contrario, devuelve “false”.
Comentarios
Se llama a este método desde CAtlExeModuleT::WinMain y se puede invalidar para controlar los modificadores de línea de comandos. La implementación predeterminada comprueba los argumentos de la línea de comandos /RegServer y /UnRegServer y realiza el registro o la anulación del registro.
CAtlExeModuleT::PostMessageLoop
Se llama a este método inmediatamente después de que se cierre el bucle de mensajes.
HRESULT PostMessageLoop() throw();
Valor devuelto
Devuelve S_OK si es correcto o un error HRESULT en caso de error.
Comentarios
Invalide este método para realizar la limpieza de aplicaciones personalizada. La implementación predeterminada llama a CAtlExeModuleT::RevokeClassObjects.
CAtlExeModuleT::PreMessageLoop
Se llama a este método inmediatamente antes de escribir el bucle de mensajes.
HRESULT PreMessageLoop(int nShowCmd) throw();
Parámetros
nShowCmd
Valor pasado como el parámetro nShowCmd en WinMain.
Valor devuelto
Devuelve S_OK si es correcto o un error HRESULT en caso de error.
Comentarios
Invalide este método para agregar código de inicialización personalizado a la aplicación. La implementación predeterminada registra los objetos de clase.
CAtlExeModuleT::RegisterClassObjects
Registra el objeto de clase con OLE para que otras aplicaciones puedan conectarse a él.
HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags) throw();
Parámetros
dwClsContext
Especifica el contexto en el que se va a ejecutar el objeto de clase. Los valores posibles son CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER o CLSCTX_LOCAL_SERVER.
dwFlags
Determina los tipos de conexión al objeto de clase. Los valores posibles son REGCLS_SINGLEUSE, REGCLS_MULTIPLEUSE, o REGCLS_MULTI_SEPARATE.
Valor devuelto
Devuelve S_OK si se ha realizado correctamente, S_FALSE si no hay ninguna clase que registrar o un error HRESULT en caso de error.
CAtlExeModuleT::RevokeClassObjects
Quita el objeto de clase.
HRESULT RevokeClassObjects() throw();
Valor devuelto
Devuelve S_OK si se ha realizado correctamente, S_FALSE si no hay ninguna clase que registrar o un error HRESULT en caso de error.
CAtlExeModuleT::Run
Este método ejecuta código en el módulo EXE para inicializar, ejecutar el bucle de mensajes y hacer limpieza.
HRESULT Run(int nShowCmd = SW_HIDE) throw();
Parámetros
nShowCmd
Especifica cómo se va a mostrar la ventana. Este parámetro puede ser uno de los valores descritos en la sección WinMain. Su valor predeterminado es SW_HIDE.
Valor devuelto
Devuelve S_OK si es correcto o un error HRESULT en caso de error.
Comentarios
Este método no se puede invalidar. Sin embargo, en la práctica es mejor invalidar CAtlExeModuleT::PreMessageLoop, CAtlExeModuleT::RunMessageLoop o CAtlExeModuleT::PostMessageLoop en su lugar.
CAtlExeModuleT::RunMessageLoop
Este método ejecuta el bucle de mensajes.
void RunMessageLoop() throw();
Comentarios
Este método se puede invalidar para cambiar el comportamiento del bucle de mensajes.
CAtlExeModuleT::UninitializeCom
Anula la inicialización de COM.
static void UninitializeCom() throw();
Comentarios
De manera predeterminada, este método simplemente llama a CoUninitialize y se le llama desde el destructor. Invalide este método si invalida CAtlExeModuleT::InitializeCom.
CAtlExeModuleT::Unlock
Disminuye el recuento de bloqueos del módulo.
LONG Unlock() throw();
Valor devuelto
Devuelve un valor que puede ser útil para los diagnósticos o las pruebas.
CAtlExeModuleT::WinMain
Este método implementa el código necesario para ejecutar un EXE.
int WinMain(int nShowCmd) throw();
Parámetros
nShowCmd
Especifica cómo se va a mostrar la ventana. Este parámetro puede ser uno de los valores descritos en la sección WinMain.
Valor devuelto
Devuelve el valor devuelto del ejecutable.
Comentarios
Este método no se puede invalidar. Si reemplazar CAtlExeModuleT::PreMessageLoop, CAtlExeModuleT::PostMessageLoop o CAtlExeModuleT::RunMessageLoop no proporciona suficiente flexibilidad, se puede invalidar la función WinMain
mediante este método.
Consulte también
Ejemplo de ATLDuck
CAtlModuleT (clase)
CAtlDllModuleT (clase)
Información general sobre la clase