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 _Module
automatiquement , 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 UpdateRegistryFromResourceD
ensuite , 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 UpdateRegistryFromResourceS
ensuite , 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).