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


Метод CCmdQueue.New

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

Метод New инициализирует выполняемую команду и возвращает новый объект CDeferredCommand .

Синтаксис

virtual HRESULT New(
   CDeferredCommand **ppCmd,
   LPUNKNOWN        pUnk,
   REFTIME          time,
   GUID             *iid,
   long             dispidMethod,
   short            wFlags,
   long             cArgs,
   VARIANT          *pDispParams,
   VARIANT          *pvarResult,
   short            *puArgErr,
   BOOL             bStream
);

Параметры

ppCmd

Адрес указателя на объект CDeferredCommand , с помощью которого приложение может отменить команду, задать для нее новое время презентации или получить оценочную информацию.

Панк

Указатель на объект, который будет выполнять команду .

time

Время выполнения команды или команд, помещенных в очередь.

Iid

Указатель на глобальный уникальный идентификатор (GUID) вызываемого интерфейса.

dispidMethod

Метод в вызываемом интерфейсе.

wFlags

Флаги, описывающие контекст вызова. Этот параметр поддерживает те же флаги, что и метод IDispatch::Invoke .

cArgs

Число переданных аргументов.

pDispParams

Указатель на список типов вариантов, связанных с параметрами диспетчеризации.

pvarResult

Указатель на список, в котором должны быть возвращены результаты ( если таковые имеются).

puArgErr

Указатель на индекс в списке параметров pDispParams , где произошла последняя ошибка.

bStream

Значение, указывающее, является ли параметр time значением времени потока (TRUE) или значением времени презентации (FALSE).

Возвращаемое значение

В случае успешного выполнения возвращает S_OK. Возвращает E_OUTOFMEMORY, если ppCmd возвращает результат создания нового объекта CDeferredCommand со значением NULL. В противном случае возвращает HRESULT , указывающее на ошибку при попытке создать новый объект CDeferredCommand . Если возникает ошибка, объект не помещается в очередь.

Комментарии

Новый объект CDeferredCommand будет инициализирован с параметрами и будет добавлен в очередь во время построения. Этот метод аналогичен методу IDispatch::Invoke .

Ниже приведены значения параметра wFlags .

Значение Описание
DISPATCH_METHOD Член выполняется как метод. Если свойство имеет одинаковое имя, можно задать как этот, так и DISPATCH_PROPERTYGET флаг.
DISPATCH_PROPERTYGET Элемент извлекается как свойство или элемент данных.
DISPATCH_PROPERTYPUT Элемент изменяется как свойство или элемент данных.
DISPATCH_PROPERTYPUTREF Член изменяется с помощью назначения ссылки, а не назначения значения. Это значение допустимо, только если свойство принимает ссылку на объект .

Требования

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

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

Класс CCmdQueue