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

Recupera o CLSID (identificador de classe) do objeto .

Sintaxe

HRESULT GetClassID(
  [out] CLSID *pClassID
);

Parâmetros

[out] pClassID

Um ponteiro para o local que recebe o CLSID no retorno. O CLSID é um GUID (identificador global exclusivo) que representa exclusivamente uma classe de objeto que define o código que pode manipular os dados do objeto.

Retornar valor

Se o método for bem-sucedido, o valor retornado será S_OK. Caso contrário, será E_FAIL.

Comentários

O método GetClassID recupera o CLSID (identificador de classe) de um objeto, usado em operações posteriores para carregar código específico do objeto no contexto do chamador.

Anotações aos Chamadores

Um aplicativo de contêiner pode chamar esse método para recuperar o CLSID original de um objeto que ele está tratando como uma classe diferente. Essa chamada seria necessária se um usuário executasse uma operação de edição que exigisse que o objeto fosse salvo. Se o contêiner o salvasse usando o CLSID, o aplicativo original não seria mais capaz de editar o objeto. Normalmente, nesse caso, o contêiner chama a função auxiliar OleSave , que executa todas as etapas necessárias. Por esse motivo, a maioria dos aplicativos de contêiner não precisa chamar esse método diretamente.

A exceção seria um contêiner que fornece um manipulador de objetos para determinados objetos. Em particular, um aplicativo de contêiner não deve obter o CLSID de um objeto e, em seguida, usá-lo para recuperar informações específicas da classe do registro. Em vez disso, o contêiner deve usar interfaces IOleObject e IDataObject para recuperar essas informações específicas da classe diretamente do objeto .

Observações aos implementadores

Normalmente, as implementações desse método simplesmente fornecem uma CLSID constante para um objeto . Se, no entanto, a chave do Registro TreatAs do objeto tiver sido definida por um aplicativo que dá suporte à emulação (e, portanto, estiver tratando o objeto como uma de uma classe diferente), uma chamada para GetClassID deverá fornecer o CLSID especificado na chave TreatAs . Para obter mais informações sobre emulação, consulte CoTreatAsClass.

Quando um objeto está no estado em execução, o manipulador padrão chama uma implementação de GetClassID que delega a chamada para a implementação no objeto . Quando o objeto não está em execução, o manipulador padrão chama a função ReadClassStg para ler o CLSID salvo no armazenamento do objeto.

Se você estiver escrevendo um manipulador de objetos personalizado para seu objeto, convém simplesmente delegar esse método para a implementação do manipulador padrão (consulte OleCreateDefaultHandler).

Notas do Moniker de URL

Esse método retorna CLSID_StdURLMoniker.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho objidl.h

Confira também

Ibasefilter

IPersist

IPersistFolder