次の方法で共有


IAMStreamControl::StartAt

StartAt メソッドは、データ送信をいつ開始するかをピンに通知する。

構文

  HRESULT StartAt(
  const REFERENCE_TIME *ptStart,
  DWORD dwCookie
);

パラメータ

ptStart

[in] ピンがいつデータ送信を開始するべきかを指定する REFERENCE_TIME 値へのポインタ。値が MAXLONGLONG (0x7FFFFFFFFFFFFFFF) の場合、このメソッドは、前回の開始要求をキャンセルする。psStart が NULL の場合、ピンは、グラフの実行と同時に開始する。

プレビュー ピンの場合は送信するサンプルにタイム スタンプを設定しないため、有効な値は NULL および MAXLONGLONG のみである。

dwCookie

[in] 開始通知と共に送信する値を指定する。「注意」を参照。

戻り値

メソッドが成功した場合は、S_OK を返す。それ以外の場合は、失敗の原因を示す HRESULT 値を返す。

注意

既定では、ピンは、フィルタ グラフの実行と同時にデータを送信する。StartAt メソッドを使うことで、グラフの実行からピンのデータ送信開始までの待機時間を指定できる。

dwCookie 引数がゼロでない場合、ピンは、データ送信を開始する際、EC_STREAM_CONTROL_STARTED イベントを送信する。先頭のイベント引数は、ピンの IPin インターフェイスへのポインタであり、2 番目の引数は、dwCookie の値である。

このメソッドは、以下の特別なケースを実装する。

  • ptStart が NULL の場合、ピンは、グラフの実行と同時に開始する。イベントは送信されず、dwCookie の値は無視される。
  • ptStart に値 MAXLONGLONG が含まれていて、ペンディング状態の終了要求がある場合、ピンは、グラフの実行と同時に開始する。ペンディング状態の終了要求がない場合、ピンは停止したままになる。どちらの場合も、開始イベントは送信されず、dwCookie の値は無視される。

このメソッドは、以下の境界条件も処理する。

  • 開始タイムがサンプルの開始タイムと終了タイムの間にある場合、ピンはそのサンプルを送信する。
  • 開始タイムと終了タイムが同じ場合、ピンは 1 つのサンプルを送信する。

MAXLONGLONGREFERENCE_TIME の最大値である。基底クラス ライブラリでは、定数 MAX_TIME としても定義されている。

参照