DECLARE_IUNKNOWN
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]
Макрос DECLARE_IUNKNOWN объявляет три метода базового интерфейса для нового интерфейса.
Синтаксис
#define DECLARE_IUNKNOWN \
STDMETHODIMP QueryInterface(REFIID riid, void **ppv) { \
return GetOwner()->QueryInterface(riid,ppv); \
}; \
STDMETHODIMP_(ULONG) AddRef() { \
return GetOwner()->AddRef(); \
}; \
STDMETHODIMP_(ULONG) Release() { \
return GetOwner()->Release(); \
};
Комментарии
При создании нового интерфейса он должен быть производным от IUnknown, который имеет три метода: QueryInterface, AddRef и Release. Этот макрос упрощает процесс объявления, объявляя каждый из этих методов для нового интерфейса.
Этот макрос работает только с классами, которые прямо или косвенно являются производными от класса CUnknown .
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|