次の方法で共有


IQueueCommand::InvokeAtStreamTime メソッド (control.h)

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 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 値を返します。

注釈

dispidMember パラメーターの DISPID を取得するには、IDispatch::GetIDsOfNames メソッドを使用します。

次の例では、 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 インターフェイス