Определение интерфейса, который поддерживает объект
[Функция, связанная с этой страницей, Пользовательские обработчики файлов и потоков, является устаревшей функцией. Он был заменен классом MediaStreamSource. Класс MediaStreamSource оптимизирован для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать класс MediaStreamSource вместо пользовательских обработчиков файлов и потоков, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Метод QueryInterface позволяет приложению запрашивать объект , чтобы определить, какие интерфейсы оно поддерживает. Пример приложения задает ppv-указатель на текущий интерфейс.
STDMETHODIMP CAVIFileCF::QueryInterface(
const IID FAR& iid,
void FAR* FAR* ppv)
{
if (iid == IID_IUnknown)
*ppv = this; // set the interface pointer
// to this instance
else if (iid == IID_IClassFactory)
*ppv = this; // second chance to set the
// interface pointer to this
// instance
else
return ResultFromScode(E_NOINTERFACE);
AddRef(); //Increment the reference count
return NULL;
}