IQueueCommand::InvokeAtStreamTime 方法 (control.h)

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

方法 InvokeAtStreamTime 将方法或属性更改排在指定的流时间 (,即相对于当前流时间偏移) 的呈现时间。

语法

HRESULT InvokeAtStreamTime(
  [out]     IDeferredCommand **pCmd,
  [in]      REFTIME          time,
  [in]      GUID             *iid,
  [in]      long             dispidMethod,
  [in]      short            wFlags,
  [in]      long             cArgs,
  [in]      VARIANT          *pDispParams,
  [in, out] VARIANT          *pvarResult,
  [out]     short            *puArgErr
);

参数

[out] pCmd

接收 IDeferredCommand 接口指针的变量的地址。

[in] time

调用命令的时间。

[in] iid

指向接口的 IID) (接口标识符的指针。

[in] dispidMethod

调度标识符 (接口上的方法或属性的 DISPID) 。 等效于 IDispatch::Invoke 方法的 dispIdMember 参数。

[in] wFlags

描述调用的上下文的标志。 等效于 IDispatch::Invoke 方法的 wFlags 参数。

[in] cArgs

pDispParams 中的参数数。 等效于 DISPPARAMS 结构的 cArgs 成员。

[in] pDispParams

指向包含参数的数组的指针。 等效于 DISPPARAMS 结构的 rgvarg 成员。

[in, out] pvarResult

指向接收结果的 VARIANT 的指针。 等效于 IDispatch::Invoke 方法的 pVarResult 参数。

[out] puArgErr

指向一个变量的指针,该变量接收有错误的第一个参数的索引。 等效于 IDispatch::Invoke 方法的 puArgErr 参数。

返回值

返回 HRESULT 值。

注解

使用 IDispatch::GetIDsOfNames 方法检索 dispidMember 参数的 DISPID

示例

以下示例将 IMediaControl::Stop 命令排队 3.0 秒。


IQueueCommand *pQ = 0;
IMediaControl *pControl = 0;

// Query for IQueueCommand.
pGraph->QueryInterface(IID_IQueueCommand, reinterpret_cast<void**>(&pQ));

// Query for IMediaControl.
pGraph->QueryInterface(IID_IMediaControl, reinterpret_cast<void**>(&pControl));

// Find the DISPID of the IMediaControl::Stop method.
OLECHAR *szMethod = OLESTR("Stop");

long dispid;
hr = pControl->GetIDsOfNames(IID_NULL, &szMethod, 1, 0, &dispid);

// Invoke the command.
IDeferredCommand *pCmd = 0;
hr = pQ->InvokeAtPresentationTime(&pCmd, 3.0,
    const_cast<GUID*>(&IID_IMediaControl), dispid, DISPATCH_METHOD, 
    0, 0, 0, 0);
if (SUCCEEDED(hr))
{
    pControl->Run();
    pCmd->Release();
}

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 control.h (包括 Dshow.h)
Library Strmiids.lib

另请参阅

错误和成功代码

IQueueCommand 接口