CDeferredCommand 类

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

cdeferredcommand 类层次结构

延迟命令通过调用 IQueueCommand 接口上的方法排队,并由筛选器图管理器和某些筛选器公开。 成功调用这些方法之一将返回表示排队命令的 IDeferredCommand 接口。

对象 CDeferredCommand 表示单个延迟命令,并公开 IDeferredCommand 接口以及允许时间检查和实际执行的其他方法。 对象 CDeferredCommand 包含对其排队的 CCmdQueue 对象的引用。

引用计数控制类的 CDeferredCommand 生存期。 调用 CDeferredCommand::Invoke 成员函数时,调用应用程序获取一个引用计数的接口指针,并且 CCmdQueue 对象还保留延迟命令的引用计数。 调用 IDeferredCommand::Cancel 成员函数会将延迟的命令从命令队列中删除,从而将引用计数减少一个。 从队列中取出后,命令无法重新放在队列上。

受保护的数据成员 说明
m_bStream 流时间或演示时间的标志。 要传递给调用的方法。
m_Dispatch 访问 ITypeInfo 接口。
m_dispidMethod 要运行的接口上的方法。
m_DispParams 包含 DISPPARAMS 参数列表的 CDispParams 对象
m_hrResult 存储返回的 HRESULT 值。
m_iid 接口的 GUID) (全局唯一标识符。
m_pQueue 指向公开 IQueueCommand 接口的 CCmdQueue 对象的指针。
m_pUnk 指向将运行命令的接口的 IUnknown 指针。
m_pvarResult 来自调用方法的结果信息(如果有)。
m_time 运行命令的时间。
m_wFlags 指定调用上下文的标志。
成员函数 说明
CDeferredCommand 构造 CDeferredCommand 对象。
GetFlags 检索与延迟命令关联的上下文标志。
GetIID 检索将运行方法的接口 (IID) 的接口标识符。
GetMethod 检索要运行的方法的调度标识符。
GetParams 检索方法的 DISPPARAMS 参数列表。
GetResult 检索生成的参数列表(如果存在)。
GetTime 检索方法的运行时间。
调用 提供对对象公开的方法和属性的访问。
IsStreamTime 指定是在流时间还是演示时间运行命令。
IDeferredCommand 方法 说明
取消 取消以前排队的 CDeferredCommand::Invoke 请求。
置信度 目前尚未实现。
推迟 指定以前排队的命令的新演示时间。
GetHResult 检索调用方法的 HRESULT 值。