IQueueCommand インターフェイス
IQueueCommand インターフェイスは、指定された時間で処理するためにコマンドをキューに入れる。フィルタ グラフ マネージャは、このインターフェイスを公開している。アプリケーションはこのインターフェイスを使って、グラフコントロール コマンドを前もってキューに入れることができる。
IQueueCommand 内のメソッドは IDispatch::InvokeAt メソッドの後で設計された。アプリケーションはインターフェイス、インターフェイスのメソッド、メソッドの引数、基準タイムを指定する。フィルタ グラフ マネージャはこの情報をキューに入れ、次に指定された時間にこのメソッドを起動する。要求されたインターフェイスは IDispatch を継承し、フィルタ グラフ マネージャによって公開されなければならない。例としては IMediaControl、IMediaEventEx、IMediaPosition が挙げられる。
コマンドがキューに入れられると、フィルタ グラフ マネージャは IDeferredCommand インターフェイスへのポインタを返す。アプリケーションは、このインターフェイスを使ってそのコマンドを取り消したり、変更したりできる。
注 : IQueueCommand の 2 つのメソッドはそれぞれ、ストリーム タイムとプレゼンテーション タイムを参照する。フィルタ グラフ マネージャのコンテキストでは、ストリーム タイムとプレゼンテーション タイムが等しいため、この 2 つのメソッドに機能上の差はない。ただし、その他のオブジェクトでは、IQueueCommand を別に実装することもできる。ストリーム タイムとプレゼンテーション タイムの詳細については、「DirectShow のタイムとクロック」を参照すること。
IUnknown から継承したメソッドに加えて、IQueueCommand インターフェイスは次のメソッドを公開する。
メソッド | 説明 |
InvokeAtPresentationTime | 指定されたプレゼンテーション タイムに起動するため、メソッドをキューに入れる。 |
InvokeAtStreamTime | 指定されたストリーム タイムに起動するため、メソッドをキューに入れる。 |