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

Recupera el identificador de clase (CLSID) del objeto .

Sintaxis

HRESULT GetClassID(
  [out] CLSID *pClassID
);

Parámetros

[out] pClassID

Puntero a la ubicación que recibe el CLSID al devolver. CLSID es un identificador único global (GUID) que representa de forma única una clase de objeto que define el código que puede manipular los datos del objeto.

Valor devuelto

Si el método se realiza correctamente, el valor devuelto es S_OK. De lo contrario, es E_FAIL.

Comentarios

El método GetClassID recupera el identificador de clase (CLSID) de un objeto, que se usa en operaciones posteriores para cargar código específico del objeto en el contexto del autor de la llamada.

Notas a los autores de llamadas

Una aplicación contenedora podría llamar a este método para recuperar el CLSID original de un objeto que trata como una clase diferente. Esta llamada sería necesaria si un usuario realizó una operación de edición que requería guardar el objeto. Si el contenedor fuera a guardarlo con el CLSID treat-as, la aplicación original ya no podría editar el objeto. Normalmente, en este caso, el contenedor llama a la función auxiliar OleSave , que realiza todos los pasos necesarios. Por este motivo, la mayoría de las aplicaciones contenedora no necesitan llamar directamente a este método.

La excepción sería un contenedor que proporciona un controlador de objetos para determinados objetos. En concreto, una aplicación contenedora no debe obtener el CLSID de un objeto y, a continuación, usarlo para recuperar información específica de la clase del registro. En su lugar, el contenedor debe usar interfaces IOleObject e IDataObject para recuperar dicha información específica de la clase directamente del objeto.

Notas para los implementadores

Normalmente, las implementaciones de este método simplemente proporcionan un CLSID constante para un objeto. Sin embargo, si la aplicación que admite la emulación ha establecido la clave del Registro TreatAs del objeto (y, por tanto, trata el objeto como una de una clase diferente), una llamada a GetClassID debe proporcionar el CLSID especificado en la clave TreatAs . Para obtener más información sobre la emulación, vea CoTreatAsClass.

Cuando un objeto está en estado de ejecución, el controlador predeterminado llama a una implementación de GetClassID que delega la llamada a la implementación en el objeto . Cuando el objeto no se está ejecutando, el controlador predeterminado llama a la función ReadClassStg para leer el CLSID que se guarda en el almacenamiento del objeto.

Si va a escribir un controlador de objetos personalizado para el objeto, es posible que desee simplemente delegar este método en la implementación del controlador predeterminado (consulte OleCreateDefaultHandler).

Notas del moniker de dirección URL

Este método devuelve CLSID_StdURLMoniker.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado objidl.h

Consulte también

IBaseFilter

IPersist

IPersistFolder