CCmdQueue.New 方法

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 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 对象的指针的地址,应用程序可通过该对象取消命令、为其设置新的呈现时间或检索估计信息。

pUnk

指向将运行命令的 对象的指针。

time

运行排队命令的时间。

iid

指向要调用的接口的全局唯一标识符 (GUID) 的指针。

dispidMethod

要调用的接口上的 方法。

wFlags

描述调用的上下文的标志。 此参数支持与 IDispatch::Invoke 方法相同的标志。

cArgs

传递的参数数。

pDispParams

指向与调度参数关联的变体类型列表的指针。

pvarResult

指向要返回结果(如果有)的列表的指针。

puArgErr

指向发生上次错误的 pDispParams 参数列表中的索引的指针。

bStream

指示 时间 参数是流时间值 (TRUE) 还是演示时间值 (FALSE) 的值。

返回值

如果成功,则返回S_OK。 如果 ppCmd 从创建值为 NULL 的新 CDeferredCommand 对象返回,则返回E_OUTOFMEMORY。 否则,返回一个 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 类