Partager via


Méthode IPersist ::GetClassID (objidl.h)

Récupère l’identificateur de classe (CLSID) de l’objet .

Syntaxe

HRESULT GetClassID(
  [out] CLSID *pClassID
);

Paramètres

[out] pClassID

Pointeur vers l’emplacement qui reçoit le CLSID au retour. Le CLSID est un identificateur global unique (GUID) qui représente une seule classe d'objet qui définit le code pouvant manipuler les données de l'objet.

Valeur retournée

Si la méthode réussit, la valeur de retour est S_OK. Sinon, c’est E_FAIL.

Remarques

La méthode GetClassID récupère l’identificateur de classe (CLSID) d’un objet, utilisé dans les opérations ultérieures pour charger du code spécifique à l’objet dans le contexte de l’appelant.

Remarques aux appelants

Une application conteneur peut appeler cette méthode pour récupérer le CLSID d’origine d’un objet qu’elle traite comme une classe différente. Un tel appel est nécessaire si un utilisateur a effectué une opération de modification nécessitant l’enregistrement de l’objet. Si le conteneur devait l’enregistrer à l’aide du CLSID traité comme , l’application d’origine ne serait plus en mesure de modifier l’objet. En règle générale, dans ce cas, le conteneur appelle la fonction d’assistance OleSave , qui effectue toutes les étapes nécessaires. Pour cette raison, la plupart des applications conteneur n’ont pas besoin d’appeler cette méthode directement.

L’exception serait un conteneur qui fournit un gestionnaire d’objets pour certains objets. En particulier, une application conteneur ne doit pas obtenir le CLSID d’un objet, puis l’utiliser pour récupérer des informations spécifiques à la classe à partir du Registre. Au lieu de cela, le conteneur doit utiliser les interfaces IOleObject et IDataObject pour récupérer ces informations spécifiques à la classe directement à partir de l’objet .

Remarques aux implémenteurs

En règle générale, les implémentations de cette méthode fournissent simplement un CLSID constant pour un objet. Toutefois, si la clé de Registre TreatAs de l’objet a été définie par une application qui prend en charge l’émulation (et traite donc l’objet comme une classe différente), un appel à GetClassID doit fournir le CLSID spécifié dans la clé TreatAs . Pour plus d’informations sur l’émulation, consultez CoTreatAsClass.

Lorsqu’un objet est à l’état en cours d’exécution, le gestionnaire par défaut appelle une implémentation de GetClassID qui délègue l’appel à l’implémentation dans l’objet . Lorsque l’objet n’est pas en cours d’exécution, le gestionnaire par défaut appelle plutôt la fonction ReadClassStg pour lire le CLSID enregistré dans le stockage de l’objet.

Si vous écrivez un gestionnaire d’objets personnalisé pour votre objet, vous pouvez simplement déléguer cette méthode à l’implémentation de gestionnaire par défaut (voir OleCreateDefaultHandler).

Remarques sur le moniker d’URL

Cette méthode retourne CLSID_StdURLMoniker.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête objidl.h

Voir aussi

IBaseFilter

Ipersist

IPersistFolder