Fornecendo informações de classe
Muitas vezes, é útil para um cliente de um objeto examinar as informações de tipo do objeto. Dado o CLSID do objeto, um cliente pode localizar a biblioteca de tipos do objeto usando entradas do Registro e, em seguida, pode verificar a biblioteca de tipos para a entrada de coclasse na biblioteca correspondente ao CLSID.
No entanto, nem todos os objetos têm um CLSID, embora ainda precisem fornecer informações de tipo. Além disso, é conveniente para um cliente ter uma maneira de simplesmente pedir a um objeto suas informações de tipo em vez de passar por todo o tédio para extrair as mesmas informações das entradas do registro. Esse recurso é importante ao lidar com interfaces de saída em objetos conectáveis. (Veja Usando IProvideClassInfo para obter mais informações sobre como objetos conectáveis fornecem esse recurso.)
Nesses casos, um cliente pode consultar o objeto para IProvideClassInfo ou IProvideClassInfo2. Se essas interfaces existirem, o cliente chamará o método GetClassInfo para obter as informações de tipo para a interface.
Ao implementar IProvideClassInfo ou IProvideClassInfo2, um objeto especifica que ele pode fornecer informações de tipo para toda a sua classe, ou seja, o que ele descreveria em sua seção coclass de sua biblioteca de tipos, se tiver uma. GetClassInfo retorna um ponteiro ITypeInfo correspondente às informações de coclasse do objeto. Por meio desse ponteiro ITypeInfo , o cliente pode examinar todas as definições de interface de entrada e saída do objeto.
O objeto também pode fornecer IProvideClassInfo2. A interface IProvideClassInfo2 é uma extensão simples para IProvideClassInfo que torna rápido e fácil recuperar os identificadores de interface de saída de um objeto para seu conjunto de eventos padrão. IProvideClassInfo2 é derivado de IProvideClassInfo.
Tópicos relacionados