Condividi tramite


QueryInterface

Sebbene esistano meccanismi che un oggetto può esprimere le funzionalità includono staticamente (prima che vengano create), il meccanismo sottostante COM è possibile utilizzare il metodo IUnknown chiamato QueryInterface.

Ogni interfaccia è derivata da IUnknown, in modo da ogni interfaccia è un'implementazione QueryInterface.Indipendentemente dall'implementazione, questo metodo esegue una query su un oggetto utilizzando dall'interfaccia a cui il chiamante richiede un puntatore.Se i contenuti multimediali collegata, QueryInterface l'oggetto recupera un puntatore a interfaccia, mentre però chiamando AddRef.In caso contrario, restituisce il codice di errore E_NOINTERFACE.

Si noti che è necessario devono sempre le regole Conteggio dei riferimenti.Se si chiama Release in un puntatore a interfaccia per diminuire il conteggio dei riferimenti a zero, non è necessario utilizzare nuovamente il puntatore.Talvolta potrebbe essere necessario ottenere un riferimento debole a un oggetto (ovvero è possibile ottenere un puntatore a una delle interfacce senza incrementare il conteggio dei riferimenti), ma non è possibile eseguire questa operazione chiamando QueryInterface seguito da Release.Il puntatore ottenuto in modo non valido e non deve essere utilizzato.Questo diventa più facilmente evidente quando _ATL_DEBUG_INTERFACES è definito, pertanto definire questa macro è utile di individuare i bug di conteggio dei riferimenti.

Vedere anche

Riferimenti

Introduzione a COM

QueryInterface: Navigating in an Object