Partager via


CComModule, classe

À partir d’ATL 7.0, CComModule est déconseillé : consultez les classes de module ATL pour plus d’informations.

Important

Cette classe et ses membres ne peuvent pas être utilisés dans les applications qui s’exécutent dans Windows Runtime.

Syntaxe

class CComModule : public _ATL_MODULE

Membres

Méthodes publiques

Nom Description
CComModule ::GetClassObject Crée un objet d’un CLSID spécifié. Pour les DLL uniquement.
CComModule ::GetModuleInstance Retourne m_hInst.
CComModule ::GetResourceInstance Retourne m_hInstResource.
CComModule ::GetTypeLibInstance Retourne m_hInstTypeLib.
CComModule ::Init Initialise les membres de données.
CComModule ::RegisterClassHelper Entre l’inscription de classe standard d’un objet dans le registre système.
CComModule ::RegisterClassObjects Inscrit l’objet de classe. Pour les exEs uniquement.
CComModule ::RegisterServer Met à jour le Registre système pour chaque objet dans le mappage d’objets.
CComModule ::RegisterTypeLib Inscrit une bibliothèque de types.
CComModule ::RevokeClassObjects Révoque l’objet de classe. Pour les exEs uniquement.
CComModule ::Term Libère les membres de données.
CComModule ::UnregisterClassHelper Supprime l’inscription de classe standard d’un objet du registre système.
CComModule ::UnregisterServer Annule l’inscription de chaque objet dans le mappage d’objets.
CComModule ::UpdateRegistryClass Inscrit ou annule l’inscription d’une classe standard d’un objet.
CComModule ::UpdateRegistryFromResourceD Exécute le script contenu dans une ressource spécifiée pour inscrire ou annuler l’inscription d’un objet.
CComModule ::UpdateRegistryFromResourceS Liens statiques vers le composant de Registre ATL. Exécute le script contenu dans une ressource spécifiée pour inscrire ou annuler l’inscription d’un objet.

Membres de données publics

Nom Description
CComModule ::m_csObjMap Garantit l’accès synchronisé aux informations de mappage d’objets.
CComModule ::m_csTypeInfoHolder Garantit l’accès synchronisé aux informations de la bibliothèque de types.
CComModule ::m_csWindowCreate Garantit l’accès synchronisé aux informations de classe de fenêtre et aux données statiques utilisées lors de la création de la fenêtre.
CComModule ::m_hInst Contient le handle de l’instance de module.
CComModule ::m_hInstResource Par défaut, contient le handle de l’instance de module.
CComModule ::m_hInstTypeLib Par défaut, contient le handle de l’instance de module.
CComModule ::m_pObjMap Pointe vers le mappage d’objets géré par l’instance de module.

Notes

Remarque

Cette classe est déconseillée et les Assistants de génération de code ATL utilisent désormais les classes dérivées CAtlAutoThreadModule et CAtlModule . Pour plus d’informations, consultez les classes de module ATL. Les informations suivantes sont utilisées avec les applications créées avec des versions antérieures d’ATL. CComModule fait toujours partie d’ATL pour la fonctionnalité descendante.

CComModule implémente un module de serveur COM, ce qui permet à un client d’accéder aux composants du module. CComModule prend en charge les modules DLL (in-process) et EXE (local).

Une CComModule instance utilise un mappage d’objets pour gérer un ensemble de définitions d’objets de classe. Cette carte d’objets est implémentée en tant que tableau de _ATL_OBJMAP_ENTRY structures et contient des informations pour :

  • Saisie et suppression de descriptions d’objets dans le Registre système.

  • Instanciation d’objets via une fabrique de classes.

  • Établissement de la communication entre un client et l’objet racine dans le composant.

  • Gestion de la durée de vie des objets de classe.

Lorsque vous exécutez ATL COM AppWizard, l’Assistant génère _Moduleautomatiquement , une instance globale de celle-ci CComModule ou une classe dérivée de celle-ci. Pour plus d’informations sur l’Assistant Projet ATL, consultez l’article Création d’un projet ATL.

En plus de CComModule, ATL fournit CComAutoThreadModule, qui implémente un module de modèle appartement pour les services EXEs et Windows. Dérivez votre module à partir du CComAutoThreadModule moment où vous souhaitez créer des objets dans plusieurs appartements.

Hiérarchie d'héritage

_ATL_MODULE

CAtlModule

CAtlModuleT

CComModule

Spécifications

En-tête : atlbase.h

CComModule ::GetClassObject

À partir d’ATL 7.0, CComModule est obsolète : consultez les classes de module ATL pour plus d’informations.

HRESULT GetClassObject(
    REFCLSID rclsid,
    REFIID riid,
    LPVOID* ppv) throw();

Paramètres

rclsid
[in] CLSID de l’objet à créer.

riid
[in] IID de l’interface demandée.

ppv
[out] Pointeur vers le pointeur d’interface identifié par riid. Si l’objet ne prend pas en charge cette interface, ppv est défini sur NULL.

Valeur de retour

Valeur HRESULT standard.

Notes

Crée un objet du CLSID spécifié et récupère un pointeur d’interface vers cet objet.

GetClassObject est disponible uniquement pour les DLL.

CComModule ::GetModuleInstance

À partir d’ATL 7.0, CComModule est obsolète : consultez les classes de module ATL pour plus d’informations.

HINSTANCE GetModuleInstance() throw();

Valeur de retour

HINSTANCE identifiant ce module.

Notes

Retourne le membre de données m_hInst .

CComModule ::GetResourceInstance

À partir d’ATL 7.0, CComModule est obsolète : consultez les classes de module ATL pour plus d’informations.

HINSTANCE GetResourceInstance() throw();

Valeur de retour

Un HINSTANCE.

Notes

Retourne le membre de données m_hInstResource .

CComModule ::GetTypeLibInstance

À partir d’ATL 7.0, CComModule est obsolète : consultez les classes de module ATL pour plus d’informations.

HINSTANCE GetTypeLibInstance() const throw();

Valeur de retour

Un HINSTANCE.

Notes

Retourne le membre de données m_hInstTypeLib .

CComModule ::Init

À partir d’ATL 7.0, CComModule est obsolète : consultez les classes de module ATL pour plus d’informations.

HRESULT Init(
    _ATL_OBJMAP_ENTRY* p,
    HINSTANCE h,
    const GUID* plibid = NULL) throw();

Paramètres

p
[in] Pointeur vers un tableau d’entrées de mappage d’objets.

h
[in] L’HINSTANCE est passée à DLLMain ou WinMain.

plibid
[in] Pointeur vers le LIBID de la bibliothèque de types associée au projet.

Valeur de retour

Valeur HRESULT standard.

Notes

Initialise tous les membres de données.

CComModule ::m_csObjMap

À partir d’ATL 7.0, CComModule est obsolète : consultez les classes de module ATL pour plus d’informations.

CRITICAL_SECTION m_csObjMap;

Notes

Garantit l’accès synchronisé à la carte d’objets.

CComModule ::m_csTypeInfoHolder

À partir d’ATL 7.0, CComModule est obsolète : consultez les classes de module ATL pour plus d’informations.

CRITICAL_SECTION m_csTypeInfoHolder;

Notes

Garantit l’accès synchronisé à la bibliothèque de types.

CComModule ::m_csWindowCreate

À partir d’ATL 7.0, CComModule est obsolète : consultez les classes de module ATL pour plus d’informations.

CRITICAL_SECTION m_csWindowCreate;

Notes

Garantit l’accès synchronisé aux informations de classe de fenêtre et aux données statiques utilisées lors de la création de la fenêtre.

CComModule ::m_hInst

À partir d’ATL 7.0, CComModule est obsolète : consultez les classes de module ATL pour plus d’informations.

HINSTANCE m_hInst;

Notes

Contient le handle de l’instance de module.

La méthode Init définit m_hInst le handle passé à DLLMain ou WinMain.

CComModule ::m_hInstResource

À partir d’ATL 7.0, CComModule est obsolète : consultez les classes de module ATL pour plus d’informations.

HINSTANCE m_hInstResource;

Notes

Par défaut, contient le handle de l’instance de module.

La méthode Init définit m_hInstResource le handle passé à DLLMain ou WinMain. Vous pouvez définir m_hInstResource explicitement le handle sur une ressource.

La méthode GetResourceInstance retourne le handle stocké dans m_hInstResource.

CComModule ::m_hInstTypeLib

À partir d’ATL 7.0, CComModule est obsolète : consultez les classes de module ATL pour plus d’informations.

HINSTANCE m_hInstTypeLib;

Notes

Par défaut, contient le handle de l’instance de module.

La méthode Init définit m_hInstTypeLib le handle passé à DLLMain ou WinMain. Vous pouvez définir m_hInstTypeLib explicitement le handle sur une bibliothèque de types.

La méthode GetTypeLibInstance retourne le handle stocké dans m_hInstTypeLib.

CComModule ::m_pObjMap

À partir d’ATL 7.0, CComModule est obsolète : consultez les classes de module ATL pour plus d’informations.

_ATL_OBJMAP_ENTRY* m_pObjMap;

Notes

Pointe vers le mappage d’objets géré par l’instance de module.

CComModule ::RegisterClassHelper

À partir d’ATL 7.0, CComModule est obsolète : consultez les classes de module ATL pour plus d’informations.

ATL_DEPRECATED HRESULT RegisterClassHelper(
    const CLSID& clsid,
    LPCTSTR lpszProgID,
    LPCTSTR lpszVerIndProgID,
    UINT nDescID,
    DWORD dwFlags);

Paramètres

clsid
[in] CLSID de l’objet à inscrire.

lpszProgID
[in] ProgID associé à l’objet.

lpszVerIndProgID
[in] ProgID indépendant de la version associé à l’objet.

nDescID
[in] Identificateur d’une ressource de chaîne pour la description de l’objet.

dwFlags
[in] Spécifie le modèle de thread à entrer dans le Registre. Les valeurs possibles sont THREADFLAGS_APARTMENT, THREADFLAGS_BOTH ou AUTPRXFLAG.

Valeur de retour

Valeur HRESULT standard.

Notes

Entre l’inscription de classe standard d’un objet dans le registre système.

La méthode UpdateRegistryClass appelle RegisterClassHelper.

CComModule ::RegisterClassObjects

À partir d’ATL 7.0, CComModule est obsolète : consultez les classes de module ATL pour plus d’informations.

HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags) throw();

Paramètres

dwClsContext
[in] 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. Pour obtenir une description de ces valeurs, consultez CLSCTX dans le Kit de développement logiciel (SDK) Windows.

dwFlags
[in] Détermine les types de connexion à l’objet de classe. Les valeurs possibles sont REGCLS_SINGLEUSE, REGCLS_MULTIPLEUSE ou REGCLS_MULTI_SEPARATE. Pour obtenir une description de ces valeurs, consultez REGCLS dans le Kit de développement logiciel (SDK) Windows.

Valeur de retour

Valeur HRESULT standard.

Notes

Inscrit un objet de classe EXE auprès d’OLE afin que d’autres applications puissent y se connecter. Cette méthode est disponible uniquement pour les exEs.

CComModule ::RegisterServer

À partir d’ATL 7.0, CComModule est obsolète : consultez les classes de module ATL pour plus d’informations.

HRESULT RegisterServer(
    BOOL bRegTypeLib = FALSE,
    const CLSID* pCLSID = NULL) throw();

Paramètres

bRegTypeLib
[in] Indique si la bibliothèque de types est inscrite. La valeur par défaut est FALSE.

pCLSID
[in] Pointe vers le CLSID de l’objet à inscrire. Si la valeur null (valeur par défaut), tous les objets du mappage d’objets sont inscrits.

Valeur de retour

Valeur HRESULT standard.

Notes

Selon le paramètre pCLSID , met à jour le registre système pour un objet de classe unique ou pour tous les objets du mappage d’objets.

Si bRegTypeLib a la valeur TRUE, les informations de bibliothèque de types sont également mises à jour.

Consultez OBJECT_ENTRY_AUTO pour plus d’informations sur l’ajout d’une entrée à la carte d’objets.

RegisterServer sera appelé automatiquement par DLLRegisterServer une DLL ou par WinMain une exécution EXE avec l’option /RegServer de ligne de commande.

CComModule ::RegisterTypeLib

À partir d’ATL 7.0, CComModule est obsolète : consultez les classes de module ATL pour plus d’informations.

HRESULT RegisterTypeLib() throw();
HRESULT RegisterTypeLib(LPCTSTR lpszIndex) throw();

Paramètres

lpszIndex
[in] Chaîne au format "\\N", où N est l’index entier de la ressource TYPELIB.

Valeur de retour

Valeur HRESULT standard.

Notes

Ajoute des informations sur une bibliothèque de types au registre système.

Si l’instance de module contient plusieurs bibliothèques de types, utilisez la deuxième version de cette méthode pour spécifier la bibliothèque de types à utiliser.

CComModule ::RevokeClassObjects

À partir d’ATL 7.0, CComModule est obsolète : consultez les classes de module ATL pour plus d’informations.

HRESULT RevokeClassObjects() throw();

Valeur de retour

Valeur HRESULT standard.

Notes

Supprime l’objet de classe. Cette méthode est disponible uniquement pour les exEs.

CComModule ::Term

À partir d’ATL 7.0, CComModule est obsolète : consultez les classes de module ATL pour plus d’informations.

void Term() throw();

Notes

Libère tous les membres de données.

CComModule ::UnregisterClassHelper

À partir d’ATL 7.0, CComModule est obsolète : consultez les classes de module ATL pour plus d’informations.

ATL_DEPRECATED HRESULT UnregisterClassHelper(
    const CLSID& clsid,
    LPCTSTR lpszProgID,
    LPCTSTR lpszVerIndProgID);

Paramètres

clsid
[in] CLSID de l’objet à désinscrire.

lpszProgID
[in] ProgID associé à l’objet.

lpszVerIndProgID
[in] ProgID indépendant de la version associé à l’objet.

Valeur de retour

Valeur HRESULT standard.

Notes

Supprime l’inscription de classe standard d’un objet du registre système.

La méthode UpdateRegistryClass appelle UnregisterClassHelper.

CComModule ::UnregisterServer

À partir d’ATL 7.0, CComModule est obsolète : consultez les classes de module ATL pour plus d’informations.

HRESULT UnregisterServer(const CLSID* pCLSID = NULL) throw ();
inline HRESULT UnregisterServer(BOOL bUnRegTypeLib, const CLSID* pCLSID = NULL) throw ();

Paramètres

bUnRegTypeLib
Si la valeur est TRUE, la bibliothèque de types n’est pas inscrite.

pCLSID
Pointe vers le CLSID de l’objet à désinscrire. Si la valeur NULL (valeur par défaut), tous les objets de la carte d’objets ne sont pas inscrits.

Valeur de retour

Valeur HRESULT standard.

Notes

Selon le paramètre pCLSID , annule l’inscription d’un objet de classe unique ou de tous les objets du mappage d’objets.

UnregisterServer sera appelé automatiquement par DLLUnregisterServer une DLL ou par WinMain une exécution EXE avec l’option /UnregServer de ligne de commande.

Consultez OBJECT_ENTRY_AUTO pour plus d’informations sur l’ajout d’une entrée à la carte d’objets.

CComModule ::UpdateRegistryClass

À partir d’ATL 7.0, CComModule est obsolète : consultez les classes de module ATL pour plus d’informations.

ATL_DEPRECATED HRESULT UpdateRegistryClass(
    const CLSID& clsid,
    LPCTSTR lpszProgID,
    LPCTSTR lpszVerIndProgID,
    UINT nDescID,
    DWORD dwFlags,
    BOOL bRegister);

ATL_DEPRECATED HRESULT UpdateRegistryClass(
    const CLSID& clsid,
    LPCTSTR lpszProgID,
    LPCTSTR lpszVerIndProgID,
    LPCTSTR szDesc,
    DWORD dwFlags,
    BOOL bRegister);

Paramètres

clsid
CLSID de l’objet à inscrire ou annuler l’inscription.

lpszProgID
ProgID associé à l’objet.

lpszVerIndProgID
ProgID indépendant de la version associé à l’objet.

nDescID
Identificateur de la ressource de chaîne pour la description de l’objet.

szDesc
Chaîne contenant la description de l’objet.

dwFlags
Spécifie le modèle de thread à entrer dans le Registre. Les valeurs possibles sont THREADFLAGS_APARTMENT, THREADFLAGS_BOTH ou AUTPRXFLAG.

bRegister
Indique si l’objet doit être inscrit.

Valeur de retour

Valeur HRESULT standard.

Notes

Si bRegister a la valeur TRUE, cette méthode entre l’inscription de classe standard de l’objet dans le registre système.

Si bRegister a la valeur FALSE, il supprime l’inscription de l’objet.

Selon la valeur de bRegister, UpdateRegistryClass appelle RegisterClassHelper ou UnregisterClassHelper.

En spécifiant la macro DECLARE_REGISTRY , UpdateRegistryClass elle est appelée automatiquement lorsque votre mappage d’objets est traité.

CComModule ::UpdateRegistryFromResourceD

À partir d’ATL 7.0, CComModule est obsolète : consultez les classes de module ATL pour plus d’informations.

virtual HRESULT UpdateRegistryFromResourceD(
    LPCTSTR lpszRes,
    BOOL bRegister,
    struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();

virtual HRESULT UpdateRegistryFromResourceD(
    UINT nResID,
    BOOL bRegister,
    struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw ();

Paramètres

lpszRes
[in] Nom de la ressource.

nResID
[in] ID de ressource.

bRegister
[in] Indique si l’objet doit être inscrit.

pMapEntries
[in] Pointeur vers la carte de remplacement stockant les valeurs associées aux paramètres remplaçables du script. ATL utilise %MODULE%automatiquement . Pour utiliser des paramètres remplaçables supplémentaires, consultez les remarques pour plus d’informations. Sinon, utilisez la valeur null par défaut.

Valeur de retour

Valeur HRESULT standard.

Notes

Exécute le script contenu dans la ressource spécifiée par lpszRes ou nResID.

Si bRegister a la valeur TRUE, cette méthode inscrit l’objet dans le Registre système ; sinon, il annule l’inscription de l’objet.

En spécifiant la macro DECLARE_REGISTRY_RESOURCE ou DECLARE_REGISTRY_RESOURCEID , UpdateRegistryFromResourceD elle est appelée automatiquement lorsque votre mappage d’objets est traité.

Remarque

Pour remplacer les valeurs de remplacement au moment de l’exécution, ne spécifiez pas la macro DECLARE_REGISTRY_RESOURCE ou DECLARE_REGISTRY_RESOURCEID. Au lieu de cela, créez un tableau de _ATL_REGMAP_ENTRIES structures, où chaque entrée contient un espace réservé variable associé à une valeur pour remplacer l’espace réservé au moment de l’exécution. Appelez UpdateRegistryFromResourceDensuite , en passant le tableau pour le paramètre pMapEntries . Cela ajoute toutes les valeurs de remplacement dans les _ATL_REGMAP_ENTRIES structures à la carte de remplacement du bureau d’enregistrement.

Remarque

Pour établir un lien statique vers le composant de Registre ATL (Bureau d’enregistrement), consultez UpdateRegistryFromResourceS.

Pour plus d’informations sur les paramètres et les scripts remplaçables, consultez l’article The ATL Registry Component (Registrar).

CComModule ::UpdateRegistryFromResourceS

À partir d’ATL 7.0, CComModule est obsolète : consultez les classes de module ATL pour plus d’informations.

virtual HRESULT UpdateRegistryFromResourceS(
    LPCTSTR lpszRes,
    BOOL bRegister,
    struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();

virtual HRESULT UpdateRegistryFromResourceS(
    UINT nResID,
    BOOL bRegister,
    struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();

Paramètres

lpszRes
[in] Nom de la ressource.

nResID
[in] ID de ressource.

bRegister
[in] Indique si le script de ressource doit être inscrit.

pMapEntries
[in] Pointeur vers la carte de remplacement stockant les valeurs associées aux paramètres remplaçables du script. ATL utilise %MODULE%automatiquement . Pour utiliser des paramètres remplaçables supplémentaires, consultez les remarques pour plus d’informations. Sinon, utilisez la valeur null par défaut.

Valeur de retour

Valeur HRESULT standard.

Notes

Similaire à UpdateRegistryFromResourceD , à l’exception UpdateRegistryFromResourceS de la création d’un lien statique vers le composant de Registre ATL (Bureau d’enregistrement).

UpdateRegistryFromResourceS sera appelé automatiquement lorsque votre mappage d’objets est traité, à condition que vous ajoutiez #define _ATL_STATIC_REGISTRY à votre pch.h (stdafx.h dans Visual Studio 2017 et versions antérieures).

Remarque

Pour remplacer les valeurs de remplacement au moment de l’exécution, ne spécifiez pas la macro DECLARE_REGISTRY_RESOURCE ou DECLARE_REGISTRY_RESOURCEID . Au lieu de cela, créez un tableau de _ATL_REGMAP_ENTRIES structures, où chaque entrée contient un espace réservé variable associé à une valeur pour remplacer l’espace réservé au moment de l’exécution. Appelez UpdateRegistryFromResourceSensuite , en passant le tableau pour le paramètre pMapEntries . Cela ajoute toutes les valeurs de remplacement dans les _ATL_REGMAP_ENTRIES structures à la carte de remplacement du bureau d’enregistrement.

Pour plus d’informations sur les paramètres et les scripts remplaçables, consultez l’article The ATL Registry Component (Registrar).

Voir aussi

Vue d’ensemble de la classe