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