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