Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Функция, связанная с этой страницей 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 вызываемого метода. |