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


Класс CDeferredCommand

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

Иерархия классов cdeferredcommand

Отложенные команды помещаются в очередь с помощью вызовов методов в интерфейсе IQueueCommand и предоставляются диспетчером графов фильтров и некоторыми фильтрами. При успешном вызове одного из этих методов возвращается интерфейс IDeferredCommand , представляющий команду в очереди.

Объект CDeferredCommand представляет одну отложенную команду и предоставляет интерфейс IDeferredCommand , а также другие методы, разрешающие проверку времени и фактическое выполнение. Объект CDeferredCommand содержит ссылку на объект CCmdQueue , в котором он находится в очереди.

Счетчики ссылок управляют временем существования CDeferredCommand класса. При вызове функции-члена CDeferredCommand::Invoke вызывающее приложение получает указатель интерфейса, который подсчитывается по ссылке, а объект CCmdQueue также содержит счетчик ссылок на отложенную команду. Вызов функции-члена IDeferredCommand::Cancel выводит отложенную команду из очереди команд и тем самым уменьшает количество ссылок на единицу. После того как она была снята, команда не может быть возвращена в очередь.

Защищенные члены данных Описание
m_bStream Пометка для времени потоковой передачи или времени презентации. значение , передаваемое в вызываемый метод.
m_Dispatch Обращается к интерфейсу ITypeInfo .
m_dispidMethod Метод для запускаемого интерфейса.
m_DispParams Объект CDispParams, содержащий список параметров DISPPARAMS
m_hrResult Сохраняет возвращенное значение HRESULT .
m_iid Глобальный уникальный идентификатор (GUID) интерфейса.
m_pQueue Указатель на объект CCmdQueue , предоставляющий интерфейс IQueueCommand .
m_pUnk IUnknown — указатель на интерфейс, в котором будет выполняться команда.
m_pvarResult Результирующие сведения, если таковые есть, из вызываемого метода.
m_time Время выполнения команды.
m_wFlags Флаги, указывающие контекст вызова.
Функции элементов Описание
CDeferredCommand Создает объект CDeferredCommand .
GetFlags Извлекает флаги контекста, связанные с отложенной командой.
GetIID Извлекает идентификатор интерфейса (IID) интерфейса, на котором будет выполняться метод.
GetMethod Извлекает идентификатор диспетчеризации выполняемого метода.
GetParams Извлекает список аргументов DISPPARAMS в метод .
GetResult Извлекает результирующий список аргументов, если он существует.
GetTime Извлекает время выполнения метода.
Invoke Предоставляет доступ к методам и свойствам, предоставляемым объектом .
IsStreamTime Указывает, должна ли команда выполняться во время потока или во время презентации.
Методы IDeferredCommand Описание
Отменить Отменяет ранее поставленный в очередь запрос CDeferredCommand::Invoke .
Достоверность В настоящий момент не реализовано.
Отложить Задает новое время презентации для ранее помещенной в очередь команды.
GetHResult Извлекает значение HRESULT вызываемого метода.