Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
À 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
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).