Partilhar via


Utilizando IProvideClassInfo

Um objeto conectável pode oferecer as interfaces IProvideClassInfo e IProvideClassInfo2 para que os seus clientes possam examinar facilmente as suas informações de classe. Esse recurso é importante ao lidar com interfaces de saída, que, por definição, são definidas por um objeto, mas implementadas por um cliente em seu próprio objeto de coletor. Em alguns casos, uma interface de saída é conhecida em tempo de compilação para o objeto conectável e o objeto coletor; é o caso do IPropertyNotifySink.

Em outros casos, no entanto, apenas o objeto conectável conhece suas definições de interface de saída em tempo de compilação. Nesses casos, o cliente deve obter as informações de tipo para a interface de saída de forma a poder fornecer dinamicamente um recetor que suporte os pontos de entrada corretos, como segue:

  1. O cliente enumera os pontos de conexão e, em seguida, para obter os IIDs de interfaces de saída suportadas pelo objeto conectável, chama IConnectionPoint::GetConnectionInterface para cada ponto de conexão.
  2. O cliente consulta o objeto conectável para uma das interfaces de IProvideClassInfo.
  3. O cliente chama métodos nas IProvideClassInfo interfaces para obter a informação de tipo para a interface de saída.
  4. O cliente cria um objeto de coletor que suporta a interface de saída.
  5. O processo continua e o cliente chama IConnectionPoint::Advise para conectar seu coletor ao ponto de conexão.

Nas informações de tipo, o atributo de origem marca uma interface ou dispinterface listada sob uma coclasse como uma interface de saída. Aqueles listados sem esse atributo são considerados interfaces de entrada.

Interfaces de objeto conectáveis

Fornecendo informações de classe