CAtlExeModuleT, classe
Cette classe représente le module d’une application.
Syntaxe
template <class T>
class ATL_NO_VTABLE CAtlExeModuleT : public CAtlModuleT<T>
Paramètres
T
Votre classe dérivée de CAtlExeModuleT
.
Membres
Constructeurs publics
Nom | Description |
---|---|
CAtlExeModuleT ::CAtlExeModuleT | Constructeur . |
CAtlExeModuleT ::~CAtlExeModuleT | Destructeur. |
Méthodes publiques
Nom | Description |
---|---|
CAtlExeModuleT ::InitializeCom | Initialise COM. |
CAtlExeModuleT ::P arseCommandLine | Analyse la ligne de commande et effectue l’inscription si nécessaire. |
CAtlExeModuleT ::P ostMessageLoop | Cette méthode est appelée immédiatement après la sortie de la boucle de message. |
CAtlExeModuleT ::P reMessageLoop | Cette méthode est appelée immédiatement avant d’entrer la boucle de message. |
CAtlExeModuleT ::RegisterClassObjects | Inscrit l’objet de classe. |
CAtlExeModuleT ::RevokeClassObjects | Révoque l’objet de classe. |
CAtlExeModuleT ::Run | Cette méthode exécute du code dans le module EXE pour initialiser, exécuter la boucle de message et nettoyer. |
CAtlExeModuleT ::RunMessageLoop | Cette méthode exécute la boucle de message. |
CAtlExeModuleT ::UninitializeCom | Non initialise COM. |
CAtlExeModuleT ::Unlock | Décrémente le nombre de verrous du module. |
CAtlExeModuleT ::WinMain | Cette méthode implémente le code requis pour exécuter un EXE. |
Membres de données publics
Nom | Description |
---|---|
CAtlExeModuleT ::m_bDelayShutdown | Indicateur indiquant qu’il doit y avoir un délai d’arrêt du module. |
CAtlExeModuleT ::m_dwPause | Valeur de pause utilisée pour vérifier que tous les objets sont libérés avant l’arrêt. |
CAtlExeModuleT ::m_dwTimeOut | Valeur de délai d’attente utilisée pour retarder le déchargement du module. |
Notes
CAtlExeModuleT
représente le module d’une application (EXE) et contient du code qui prend en charge la création d’un EXE, le traitement de la ligne de commande, l’inscription d’objets de classe, l’exécution de la boucle de message et le nettoyage à la sortie.
Cette classe est conçue pour améliorer les performances lorsque les objets COM du serveur EXE sont continuellement créés et détruits. Une fois le dernier objet COM libéré, l’EXE attend une durée spécifiée par le membre de données CAtlExeModuleT ::m_dwTimeOut . S’il n’existe aucune activité pendant cette période (autrement dit, aucun objet COM n’est créé), le processus d’arrêt est lancé.
Le membre de données CAtlExeModuleT ::m_bDelayShutdown est un indicateur utilisé pour déterminer si l’EXE doit utiliser le mécanisme défini ci-dessus. S’il est défini sur false, le module se termine immédiatement.
Pour plus d’informations sur les modules dans ATL, consultez les classes de module ATL.
Hiérarchie d'héritage
CAtlExeModuleT
Spécifications
En-tête : atlbase.h
CAtlExeModuleT ::CAtlExeModuleT
Constructeur .
CAtlExeModuleT() throw();
Notes
Si le module EXE n’a pas pu être initialisé, WinMain retourne immédiatement sans traitement supplémentaire.
CAtlExeModuleT ::~CAtlExeModuleT
Destructeur.
~CAtlExeModuleT() throw();
Notes
Libère toutes les ressources allouées.
CAtlExeModuleT ::InitializeCom
Initialise COM.
static HRESULT InitializeCom() throw();
Valeur de retour
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Notes
Cette méthode est appelée à partir du constructeur et peut être substituée pour initialiser COM d’une manière différente de l’implémentation par défaut. L’implémentation par défaut appelle CoInitializeEx(NULL, COINIT_MULTITHREADED)
ou CoInitialize(NULL)
dépend de la configuration du projet.
La substitution de cette méthode nécessite normalement la substitution de CAtlExeModuleT ::UninitializeCom.
CAtlExeModuleT ::m_bDelayShutdown
Indicateur indiquant qu’il doit y avoir un délai d’arrêt du module.
bool m_bDelayShutdown;
Notes
Pour plus d’informations, consultez la vue d’ensemble de CAtlExeModuleT.
CAtlExeModuleT ::m_dwPause
Valeur de pause utilisée pour s’assurer que tous les objets sont partis avant l’arrêt.
DWORD m_dwPause;
Notes
Modifiez cette valeur après avoir appelé CAtlExeModuleT ::InitializeCom pour définir le nombre de millisecondes utilisées comme valeur de pause pour arrêter le serveur. La valeur par défaut est de 1 000 millisecondes.
CAtlExeModuleT ::m_dwTimeOut
Valeur de délai d’attente utilisée pour retarder le déchargement du module.
DWORD m_dwTimeOut;
Notes
Modifiez cette valeur après avoir appelé CAtlExeModuleT ::InitializeCom pour définir le nombre de millisecondes utilisées comme valeur de délai d’attente pour arrêter le serveur. La valeur par défaut est 5 000 millisecondes. Pour plus d’informations, consultez la vue d’ensemble de CAtlExeModuleT.
CAtlExeModuleT ::P arseCommandLine
Analyse la ligne de commande et effectue l’inscription si nécessaire.
bool ParseCommandLine(LPCTSTR lpCmdLine, HRESULT* pnRetCode) throw();
Paramètres
lpCmdLine
Ligne de commande transmise à l’application.
pnRetCode
HRESULT correspondant à l’inscription (si elle a eu lieu).
Valeur de retour
Retourne la valeur true si l’application doit continuer à s’exécuter, sinon false.
Notes
Cette méthode est appelée à partir de CAtlExeModuleT ::WinMain et peut être remplacée pour gérer les commutateurs de ligne de commande. L’implémentation par défaut vérifie les arguments de ligne de commande /RegServer et /UnRegServer et effectue l’inscription ou l’annulation de l’inscription.
CAtlExeModuleT ::P ostMessageLoop
Cette méthode est appelée immédiatement après la sortie de la boucle de message.
HRESULT PostMessageLoop() throw();
Valeur de retour
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Notes
Remplacez cette méthode pour effectuer un nettoyage d’application personnalisé. L’implémentation par défaut appelle CAtlExeModuleT ::RevokeClassObjects.
CAtlExeModuleT ::P reMessageLoop
Cette méthode est appelée immédiatement avant d’entrer la boucle de message.
HRESULT PreMessageLoop(int nShowCmd) throw();
Paramètres
nShowCmd
Valeur passée en tant que paramètre nShowCmd dans WinMain.
Valeur de retour
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Notes
Remplacez cette méthode pour ajouter du code d’initialisation personnalisé pour l’application. L’implémentation par défaut inscrit les objets de classe.
CAtlExeModuleT ::RegisterClassObjects
Inscrit l’objet de classe auprès d’OLE afin que d’autres applications puissent y se connecter.
HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags) throw();
Paramètres
dwClsContext
Spécifie le contexte dans lequel l’objet de classe doit être exécuté. Les valeurs possibles sont CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER ou CLSCTX_LOCAL_SERVER.
dwFlags
Détermine les types de connexion à l’objet de classe. Les valeurs possibles sont REGCLS_SINGLEUSE, REGCLS_MULTIPLEUSE ou REGCLS_MULTI_SEPARATE.
Valeur de retour
Retourne S_OK en cas de réussite, S_FALSE s’il n’y avait aucune classe à inscrire ou une erreur HRESULT en cas d’échec.
CAtlExeModuleT ::RevokeClassObjects
Supprime l’objet de classe.
HRESULT RevokeClassObjects() throw();
Valeur de retour
Retourne S_OK en cas de réussite, S_FALSE s’il n’y avait aucune classe à inscrire ou une erreur HRESULT en cas d’échec.
CAtlExeModuleT ::Run
Cette méthode exécute du code dans le module EXE pour initialiser, exécuter la boucle de message et nettoyer.
HRESULT Run(int nShowCmd = SW_HIDE) throw();
Paramètres
nShowCmd
Spécifie la façon dont la fenêtre doit être affichée. Ce paramètre peut être l’une des valeurs décrites dans la section WinMain . La valeur par défaut est SW_HIDE.
Valeur de retour
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Notes
Cette méthode peut être substituée. Toutefois, dans la pratique, il est préférable de remplacer CAtlExeModuleT ::P reMessageLoop, CAtlExeModuleT ::RunMessageLoop ou CAtlExeModuleT ::P ostMessageLoop à la place.
CAtlExeModuleT ::RunMessageLoop
Cette méthode exécute la boucle de message.
void RunMessageLoop() throw();
Notes
Cette méthode peut être substituée pour modifier le comportement de la boucle de message.
CAtlExeModuleT ::UninitializeCom
Non initialise COM.
static void UninitializeCom() throw();
Notes
Par défaut, cette méthode appelle simplement CoUninitialize et est appelée à partir du destructeur. Remplacez cette méthode si vous remplacez CAtlExeModuleT ::InitializeCom.
CAtlExeModuleT ::Unlock
Décrémente le nombre de verrous du module.
LONG Unlock() throw();
Valeur de retour
Retourne une valeur qui peut être utile pour les diagnostics ou les tests.
CAtlExeModuleT ::WinMain
Cette méthode implémente le code requis pour exécuter un EXE.
int WinMain(int nShowCmd) throw();
Paramètres
nShowCmd
Spécifie la façon dont la fenêtre doit être affichée. Ce paramètre peut être l’une des valeurs décrites dans la section WinMain .
Valeur de retour
Retourne la valeur de retour de l’exécutable.
Notes
Cette méthode peut être substituée. Si vous substituez CAtlExeModuleT ::P reMessageLoop, CAtlExeModuleT ::P ostMessageLoop ou CAtlExeModuleT ::RunMessageLoop ne fournit pas suffisamment de flexibilité, il est possible de remplacer la fonction à l’aide WinMain
de cette méthode.
Voir aussi
Exemple ATLDuck
CAtlModuleT, classe
CAtlDllModuleT, classe
Vue d’ensemble de la classe