Поделиться через


Класс CUnknown

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]

иерархия классов cunknown

Класс CUnknown реализует интерфейс IUnknown . Большинство объектов COM в DirectShow являются производными от CUnknown.

При реализации COM-объекта может потребоваться наследовать его от CUnknown. Наследование от CUnknown обеспечивает потокобезопасную реализацию и избавляет вас от проблем с реализацией IUnknown.

Подробное описание использования этого базового класса см. в разделе Реализация IUnknown. Ниже приводится краткая сводка.

  • Включите макрос DECLARE_IUNKNOWN в открытый раздел определения класса. Этот макрос объявляет три метода интерфейса IUnknown .
  • Переопределите метод NonDelegatingQueryInterface для поддержки интерфейсов, отличных от IUnknown. В этом методе вызовите функцию GetInterface для получения указателей интерфейса.
  • В конструкторе класса вызовите метод конструктора CUnknown .
Защищенные переменные-члены Описание
m_cRef Количество ссылок.
Открытые методы Описание
CUnknown Метод конструктора.
~ CUnknown Метод деструктора. Виртуальной.
GetOwner Возвращает указатель на управляющую точку IUnknown.
Методы INonDelegatingUnknown Описание
NonDelegatingAddRef Увеличивает число ссылок.
NonDelegatingQueryInterface Извлекает указатель интерфейса и увеличивает число ссылок.
NonDelegatingRelease Уменьшает количество ссылок.

Требования

Требование Значение
Заголовок
Combase.h (включая Streams.h)
Библиотека
Strmbase.lib (розничные сборки);
Strmbasd.lib (отладочные сборки)

См. также раздел

Базовые классы DirectShow