IMFMediaEventQueue
COM公式ドキュメント
IMFMediaEventGenerator インターフェースを実装する必要があるアプリケーションのために、イベントキューを提供します。
解説(Remarks)
このインターフェースは、Windows Media Format 11 SDK の再頒布可能コンポーネントがインストールされている場合、以下のプラットフォームで利用できます。
- Windows XP Service Pack 2 (SP2) 以降。
- KB900325 (Windows XP Media Center Edition 2005) および KB925766 (October 2006 Update Rollup for Windows XP Media Center Edition) がインストールされた Windows XP Media Center Edition 2005。
メソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
キュー内の次のイベントを取得します。このメソッドは同期的です。IMFMediaEventGenerator::GetEvent の実装内でこのメソッドを呼び出します。そのメソッドのパラメーターを、直接このメソッドに渡してください。
| dwFlags | DWORD | in | イベントがキューに入れられるまでメソッドをブロックするかどうかを指定します。有効なフラグの一覧については、IMFMediaEventGenerator::GetEvent を参照してください。 |
| ppEvent | IMFMediaEvent** | out | IMFMediaEvent インターフェースへのポインターを受け取ります。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| Shutdown メソッドが呼び出されました。 |
解説(Remarks)
このインターフェースは、Windows Media Format 11 SDK の再頒布可能コンポーネントがインストールされている場合、以下のプラットフォームで利用できます。
- Windows XP Service Pack 2 (SP2) 以降。
- KB900325 (Windows XP Media Center Edition 2005) および KB925766 (October 2006 Update Rollup for Windows XP Media Center Edition) がインストールされた Windows XP Media Center Edition 2005。
キュー内の次のイベントに対する非同期要求を開始します。IMFMediaEventGenerator::BeginGetEvent の実装内でこのメソッドを呼び出します。そのメソッドのパラメーターを、直接このメソッドに渡してください。
| pCallback | IMFAsyncCallback* | in | コールバックオブジェクトの IMFAsyncCallback インターフェースへのポインター。 |
| punkState | IUnknown* | in | 呼び出し側が定義する状態オブジェクトの IUnknown インターフェースへのポインター。このパラメーターには NULL を指定できます。このオブジェクトは、コールバックが呼び出されるときに呼び出し側へ返されます。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| Shutdown メソッドが呼び出されました。 |
解説(Remarks)
このインターフェースは、Windows Media Format 11 SDK の再頒布可能コンポーネントがインストールされている場合、以下のプラットフォームで利用できます。
- Windows XP Service Pack 2 (SP2) 以降。
- KB900325 (Windows XP Media Center Edition 2005) および KB925766 (October 2006 Update Rollup for Windows XP Media Center Edition) がインストールされた Windows XP Media Center Edition 2005。
キュー内の次のイベントに対する非同期要求を完了します。IMFMediaEventGenerator::EndGetEvent の実装内でこのメソッドを呼び出します。そのメソッドのパラメーターを、直接このメソッドに渡してください。
| pResult | IMFAsyncResult* | in | IMFAsyncResult インターフェースへのポインター。 |
| ppEvent | IMFMediaEvent** | out | イベントオブジェクトの IMFMediaEvent インターフェースへのポインターを受け取ります。呼び出し側はこのインターフェースを解放する必要があります。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| Shutdown メソッドが呼び出されました。 |
解説(Remarks)
このインターフェースは、Windows Media Format 11 SDK の再頒布可能コンポーネントがインストールされている場合、以下のプラットフォームで利用できます。
- Windows XP Service Pack 2 (SP2) 以降。
- KB900325 (Windows XP Media Center Edition 2005) および KB925766 (October 2006 Update Rollup for Windows XP Media Center Edition) がインストールされた Windows XP Media Center Edition 2005。
イベントをキューに入れます。
| pEvent | IMFMediaEvent* | in | キューに入れるイベントの IMFMediaEvent インターフェースへのポインター。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| Shutdown メソッドが呼び出されました。 |
解説(Remarks)
コンポーネントが属性を含むイベントを発生させる必要がある場合に、このメソッドを呼び出します。イベントオブジェクトを作成するには、MFCreateMediaEvent を呼び出します。IMFAttributes インターフェースのメソッドを使用して、イベントに属性を追加します。(IMFMediaEvent インターフェースは IMFAttributes を継承しています。)
このインターフェースは、Windows Media Format 11 SDK の再頒布可能コンポーネントがインストールされている場合、以下のプラットフォームで利用できます。
- Windows XP Service Pack 2 (SP2) 以降。
- KB900325 (Windows XP Media Center Edition 2005) および KB925766 (October 2006 Update Rollup for Windows XP Media Center Edition) がインストールされた Windows XP Media Center Edition 2005。
イベントを作成し、PROPVARIANT をイベントデータとして設定して、そのイベントをキューに入れます。IMFMediaEventGenerator::QueueEvent の実装内でこのメソッドを呼び出します。
| met | DWORD | in | キューに追加するイベントの種類を指定します。イベントの種類は、イベントの IMFMediaEvent::GetType メソッドによって返されます。イベントの種類の一覧については、Media Foundation Events を参照してください。 |
| guidExtendedType | GUID* | in | イベントの拡張型。イベントに拡張型がない場合は、値 GUID_NULL を使用します。拡張型は、イベントの IMFMediaEvent::GetExtendedType メソッドによって返されます。 |
| hrStatus | HRESULT | in | イベントのステータスを示す成功または失敗のコード。この値は、イベントの IMFMediaEvent::GetStatus メソッドによって返されます。 |
| pvValue | PROPVARIANT* | in | イベント値を含む PROPVARIANT へのポインター。このパラメーターには NULL を指定できます。この値は、イベントの IMFMediaEvent::GetValue メソッドによって返されます。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| Shutdown メソッドが呼び出されました。 |
解説(Remarks)
このインターフェースは、Windows Media Format 11 SDK の再頒布可能コンポーネントがインストールされている場合、以下のプラットフォームで利用できます。
- Windows XP Service Pack 2 (SP2) 以降。
- KB900325 (Windows XP Media Center Edition 2005) および KB925766 (October 2006 Update Rollup for Windows XP Media Center Edition) がインストールされた Windows XP Media Center Edition 2005。
イベントを作成し、IUnknown ポインターをイベントデータとして設定して、そのイベントをキューに入れます。
| met | DWORD | in | キューに追加するイベントのイベント種類を指定します。イベントの種類は、イベントの IMFMediaEvent::GetType メソッドによって返されます。イベントの種類の一覧については、Media Foundation Events を参照してください。 |
| guidExtendedType | GUID* | in | イベントの拡張型。イベントに拡張型がない場合は、値 GUID_NULL を使用します。拡張型は、イベントの IMFMediaEvent::GetExtendedType メソッドによって返されます。 |
| hrStatus | HRESULT | in | イベントのステータスを示す成功または失敗のコード。この値は、イベントの IMFMediaEvent::GetStatus メソッドによって返されます。 |
| pUnk | IUnknown* | in | IUnknown インターフェースへのポインター。メソッドはこのポインターをイベント値として設定します。このポインターは、イベントの IMFMediaEvent::GetValue メソッドによって返されます。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| Shutdown メソッドが呼び出されました。 |
解説(Remarks)
コンポーネントが、属性を含まず IUnknown ポインター値を持つイベントを発生させる必要がある場合に、このメソッドを呼び出します。イベントに属性が含まれる場合は、代わりに IMFMediaEventQueue::QueueEvent を使用してください。
このインターフェースは、Windows Media Format 11 SDK の再頒布可能コンポーネントがインストールされている場合、以下のプラットフォームで利用できます。
- Windows XP Service Pack 2 (SP2) 以降。
- KB900325 (Windows XP Media Center Edition 2005) および KB925766 (October 2006 Update Rollup for Windows XP Media Center Edition) がインストールされた Windows XP Media Center Edition 2005。
イベントキューをシャットダウンします。
戻り値
このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
コンポーネントをシャットダウンするときに、このメソッドを呼び出します。このメソッドが呼び出された後は、すべての IMFMediaEventQueue メソッドが MF_E_SHUTDOWN を返します。
このメソッドは、キューからすべてのイベントを削除します。
このインターフェースは、Windows Media Format 11 SDK の再頒布可能コンポーネントがインストールされている場合、以下のプラットフォームで利用できます。
- Windows XP Service Pack 2 (SP2) 以降。
- KB900325 (Windows XP Media Center Edition 2005) および KB925766 (October 2006 Update Rollup for Windows XP Media Center Edition) がインストールされた Windows XP Media Center Edition 2005。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IMFMediaEventQueue "{36F846FC-2256-48B6-B58E-E2B638316581}" #usecom global IMFMediaEventQueue IID_IMFMediaEventQueue "{}" #comfunc global IMFMediaEventQueue_GetEvent 3 int,sptr #comfunc global IMFMediaEventQueue_BeginGetEvent 4 sptr,sptr #comfunc global IMFMediaEventQueue_EndGetEvent 5 sptr,sptr #comfunc global IMFMediaEventQueue_QueueEvent 6 sptr #comfunc global IMFMediaEventQueue_QueueEventParamVar 7 int,var,int,var #comfunc global IMFMediaEventQueue_QueueEventParamUnk 8 int,var,int,sptr #comfunc global IMFMediaEventQueue_Shutdown 9 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IMFMediaEventQueue "{36F846FC-2256-48B6-B58E-E2B638316581}" #usecom global IMFMediaEventQueue IID_IMFMediaEventQueue "{}" #comfunc global IMFMediaEventQueue_GetEvent 3 int,sptr #comfunc global IMFMediaEventQueue_BeginGetEvent 4 sptr,sptr #comfunc global IMFMediaEventQueue_EndGetEvent 5 sptr,sptr #comfunc global IMFMediaEventQueue_QueueEvent 6 sptr #comfunc global IMFMediaEventQueue_QueueEventParamVar 7 int,sptr,int,sptr #comfunc global IMFMediaEventQueue_QueueEventParamUnk 8 int,sptr,int,sptr #comfunc global IMFMediaEventQueue_Shutdown 9 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。