Microsoft DirectX 8.0 |
特定の時間に処理するためにコマンドをキューに入れる。フィルタ グラフ マネージャはそれを使ってグラフ管理コマンドを先にキューに入れることができる。
IQueueCommand 内のメソッドは IDispatch::InvokeAt メソッドの後で設計された。アプリケーションはインターフェイスとインターフェイスのメソッドと、メソッドのパラメータと、基準タイムを指定する。フィルタ グラフ マネージャはこの情報をキューに入れ、次に指定した時間にこのメソッドを起動する。リクエストされたインターフェイスは IDispatch を継承し、フィルタ グラフ マネージャによって公開されなければならない。例としては IMediaControl、IMediaEventEx、および IMediaPosition が挙げられる。
コマンドがキューに入れられると、フィルタ グラフ マネージャは IDeferredCommand インターフェイスへのポインタを返す。アプリケーションは、このインターフェイスを使用してそのコマンドを取り消したり変更したりすることができる。
注 : IQueueCommand には、InvokeAtStreamTime と InvokeAtPresentationTime の 2 つのメソッドがある。フィルタ グラフ マネージャのコンテキストでは、ストリーム タイムとプレゼンテーション時間が等しいため、この 2 つのメソッドに機能上の差はない。ただし、その他のオブジェクトでは、それとは異なった IQueueCommand を実装する可能性がある。ストリーム タイムとプレゼンテーション時間の詳細については、「DirectShow のタイムとクロック」を参照すること。
vtable 順のメソッド
IUnknown メソッド 説明 QueryInterface サポートされているインターフェイスへのポインタを返す。 AddRef 参照カウントをインクリメントする。 Release 参照カウントをデクリメントする。 IQueueCommand メソッド 説明 InvokeAtStreamTime 指定されたストリーム タイムに起動するため、メソッドをキューに入れる。 InvokeAtPresentationTime 指定されたプレゼンテーション時間に起動するため、メソッドをキューに入れる。
指定されたストリーム タイムに起動するため、メソッドをキューに入れる。
構文
HRESULT InvokeAtPresentationTime( IDeferredCommand **pCmd, REFTIME time, GUID *iid, long dispidMember, short wFlags, long cArgs, VARIANT *pDispParams, VARIANT *pvarResult, short *puArgErr );
パラメータ
- pCmd
- [out] IDeferredCommand インターフェイス ポインタを受け取る変数へのポインタ。
- time
- [in] コマンドを起動する時間。
- iid
- [in] インターフェイスのインターフェイス識別子 (IID) へのポインタ。
- dispidMember
- [in] インターフェイスのメソッドまたはプロパティのディスパッチ識別子 (DISPID)。IDispatch::InvokeAt メソッドの dispIdMember パラメータと同等。
- wFlags
- [in] 呼び出しのコンテキストを記述するフラグ。IDispatch::InvokeAt メソッドの wFlags パラメータと同等。
- cArgs
- [in] pDispParams 内の引数の数。DISPPARAMS 構造体の cArgs メンバと同等。
- pDispParams
- [in] 引数が格納された配列へのポインタ。DISPPARAMS 構造体の rgvarg メンバと同等。
- pvarResult
- [in, out] 結果を受け取る VARIANT へのポインタ。IDispatch::InvokeAt メソッドの pVarResult パラメータと同等。
- puArgErr
- [out] 最初にエラーが発生した引数のインデックスを受け取る変数へのポインタ。IDispatch::InvokeAt メソッドの puArgErr パラメータと同等。
戻り値
HRESULT 値を返す。
注意
dispidMember パラメータのための DISPID を取得するには、IDispatch::GetIDsOfNames メソッドを使用する。
特定のストリーム タイム (つまり、現在のストリーム タイム オフセットとプレゼンテーション時間の差) に実行するため、メソッドまたはプロパティの変更をキューに入れる。
構文
HRESULT InvokeAtStreamTime( IDeferredCommand **pCmd, REFTIME time, GUID *iid, long dispidMember, short wFlags, long cArgs, VARIANT *pDispParams, VARIANT *pvarResult, short *puArgErr );
パラメータ
- pCmd
- [out] IDeferredCommand インターフェイス ポインタを受け取る変数へのポインタ。
- time
- [in] コマンドを起動する時間。
- iid
- [in] インターフェイスのインターフェイス識別子 (IID) へのポインタ。
- dispidMember
- [in] インターフェイスのメソッドまたはプロパティのディスパッチ識別子 (DISPID)。IDispatch::InvokeAt メソッドの dispIdMember パラメータと同等。
- wFlags
- [in] 呼び出しのコンテキストを記述するフラグ。IDispatch::InvokeAt メソッドの wFlags パラメータと同等。
- cArgs
- [in] pDispParams 内の引数の数。DISPPARAMS 構造体の cArgs メンバと同等。
- pDispParams
- [in] 引数が格納された配列へのポインタ。DISPPARAMS 構造体の rgvarg メンバと同等。
- pvarResult
- [in, out] 結果を受け取る VARIANT へのポインタ。IDispatch::InvokeAt メソッドの pVarResult パラメータと同等。
- puArgErr
- [out] 最初にエラーが発生した引数のインデックスを受け取る変数へのポインタ。IDispatch::InvokeAt メソッドの puArgErr パラメータと同等。
戻り値
HRESULT 値を返す。
注意
dispidMember パラメータのための DISPID を取得するには、IDispatch::GetIDsOfNames メソッドを使用する。