Condividi tramite


Uso di IProvideClassInfo

Un oggetto connettibile può offrire le interfacce IProvideClassInfo e IProvideClassInfo2 in modo che i client possano esaminare facilmente le informazioni sul tipo. Questa funzionalità è importante quando si gestiscono interfacce in uscita, che, per definizione, sono definite da un oggetto ma implementate da un client nel proprio oggetto sink. In alcuni casi, un'interfaccia in uscita è nota in fase di compilazione sia per l'oggetto collegabile che per l'oggetto sink; questo è il caso con IPropertyNotifySink.

In altri casi, tuttavia, solo l'oggetto connettibile conosce le relative definizioni di interfaccia in uscita in fase di compilazione. In questi casi, il client deve ottenere le informazioni sul tipo per l'interfaccia in uscita in modo che possa fornire dinamicamente un sink che supporti i punti di ingresso corretti, come indicato di seguito:

  1. Il client enumera i punti di connessione e quindi, per ottenere gli ID di interfaccia in uscita supportati dall'oggetto connettibile, chiama I Connessione ionPoint::Get Connessione ionInterface per ogni punto di connessione.
  2. Il client esegue una query sull'oggetto connettibile per una delle interfacce IProvideClassInfo.
  3. Il client chiama i metodi nelle interfacce IProvideClassInfo per ottenere le informazioni sul tipo per l'interfaccia in uscita.
  4. Il client crea un oggetto sink che supporta l'interfaccia in uscita.
  5. Il processo continua e il client chiama I Connessione ionPoint::Advise per connettere il sink al punto di connessione.

Nelle informazioni sul tipo l'origine dell'attributo contrassegna un'interfaccia o una dispinterface elencata sotto una coclasse come interfaccia in uscita. Quelli elencati senza questo attributo sono considerati interfacce in ingresso.

interfacce oggetto Connessione able

Fornire informazioni sulla classe