Класс CBaseObject

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

Класс CBaseObject является абстрактным классом для реализации объектов DirectShow. Для реализации объектов COM используйте класс CUnknown , производный от CBaseObject.

Методы класса Описание
CBaseObject Метод конструктора.
~CBaseObject Метод деструктора.
ObjectsActive Извлекает количество активных объектов.

Комментарии

Большинство базовых классов DirectShow являются производными от CBaseObject. Этот класс предоставляет помощь в отладке, сохраняя количество всех объектов DirectShow, активных во время выполнения. Число объектов хранится в переменной-члене класса static:

class CBaseObject
{
private:
    static LONG m_cObjects;  // Total number of objects active. 
/* ... */
};

В отладочных сборках библиотека DLL будет утверждать, если она выгружена, а число объектов больше нуля. Это упрощает отслеживание утечек, вызванных проблемами подсчета ссылок.

Конструктор CBaseObject принимает один аргумент — имя отладки для объекта . Это имя хранится в глобальной таблице в библиотеке DLL. Функция DbgDumpObjectRegister форматирует список объектов, активных в библиотеке DLL, и отправляет его в выходные данные отладки.

Требования

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

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

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