CDeferredCommand 类
[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
延迟命令通过调用 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 值。 |