Condividi tramite


Fornire informazioni sulla classe

Spesso è utile per un client di un oggetto per esaminare le informazioni sul tipo dell'oggetto. Dato il CLSID dell'oggetto, un client può individuare la libreria dei tipi dell'oggetto usando le voci del Registro di sistema e quindi analizzare la libreria dei tipi per la voce della coclasse nella libreria corrispondente a CLSID.

Tuttavia, non tutti gli oggetti hanno un CLSID, anche se devono comunque fornire informazioni sul tipo. Inoltre, è conveniente per un client avere un modo per chiedere semplicemente a un oggetto le informazioni sul tipo invece di passare attraverso tutto il tedium per estrarre le stesse informazioni dalle voci del Registro di sistema. Questa funzionalità è importante quando si gestiscono interfacce in uscita su oggetti collegabili. (Vedere Uso di IProvideClassInfo per altre informazioni su come gli oggetti collegabili forniscono questa funzionalità.

In questi casi, un client può eseguire una query sull'oggetto per IProvideClassInfo o IProvideClassInfo2. Se queste interfacce esistono, il client chiama il metodo GetClassInfo per ottenere le informazioni sul tipo per l'interfaccia.

Implementando IProvideClassInfo o IProvideClassInfo2, un oggetto specifica che può fornire informazioni sul tipo per l'intera classe, ovvero ciò che descriverebbe nella sezione relativa alla coclasse della libreria dei tipi, se presente. GetClassInfo restituisce un puntatore ITypeInfo corrispondente alle informazioni della coclasse dell'oggetto. Tramite questo puntatore ITypeInfo , il client può esaminare tutte le definizioni di interfaccia in ingresso e in uscita dell'oggetto.

L'oggetto può anche fornire IProvideClassInfo2. L'interfaccia IProvideClassInfo2 è una semplice estensione di IProvideClassInfo che semplifica il recupero degli identificatori di interfaccia in uscita di un oggetto per il set di eventi predefinito. IProvideClassInfo2 è derivato da IProvideClassInfo.

Client e server COM