Win32 API 日本語リファレンス
ホームMedia.MediaFoundation › IMFMediaEventQueue

IMFMediaEventQueue

COM
IID36f846fc-2256-48b6-b58e-e2b638316581継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IMFMediaEventGenerator インターフェースを実装する必要があるアプリケーションのために、イベントキューを提供します。

解説(Remarks)

このインターフェースは、Windows Media Format 11 SDK の再頒布可能コンポーネントがインストールされている場合、以下のプラットフォームで利用できます。

メソッド 7

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetEvent(DWORD dwFlags, IMFMediaEvent** ppEvent)

キュー内の次のイベントを取得します。このメソッドは同期的です。IMFMediaEventGenerator::GetEvent の実装内でこのメソッドを呼び出します。そのメソッドのパラメーターを、直接このメソッドに渡してください。

dwFlagsDWORDinイベントがキューに入れられるまでメソッドをブロックするかどうかを指定します。有効なフラグの一覧については、IMFMediaEventGenerator::GetEvent を参照してください。
ppEventIMFMediaEvent**outIMFMediaEvent インターフェースへのポインターを受け取ります。

戻り値

このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。
MF_E_SHUTDOWN
Shutdown メソッドが呼び出されました。

解説(Remarks)

このインターフェースは、Windows Media Format 11 SDK の再頒布可能コンポーネントがインストールされている場合、以下のプラットフォームで利用できます。

vtbl 4 HRESULT BeginGetEvent(IMFAsyncCallback* pCallback, IUnknown* punkState)

キュー内の次のイベントに対する非同期要求を開始します。IMFMediaEventGenerator::BeginGetEvent の実装内でこのメソッドを呼び出します。そのメソッドのパラメーターを、直接このメソッドに渡してください。

pCallbackIMFAsyncCallback*inコールバックオブジェクトの IMFAsyncCallback インターフェースへのポインター。
punkStateIUnknown*in呼び出し側が定義する状態オブジェクトの IUnknown インターフェースへのポインター。このパラメーターには NULL を指定できます。このオブジェクトは、コールバックが呼び出されるときに呼び出し側へ返されます。

戻り値

このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。
MF_E_SHUTDOWN
Shutdown メソッドが呼び出されました。

解説(Remarks)

このインターフェースは、Windows Media Format 11 SDK の再頒布可能コンポーネントがインストールされている場合、以下のプラットフォームで利用できます。

vtbl 5 HRESULT EndGetEvent(IMFAsyncResult* pResult, IMFMediaEvent** ppEvent)

キュー内の次のイベントに対する非同期要求を完了します。IMFMediaEventGenerator::EndGetEvent の実装内でこのメソッドを呼び出します。そのメソッドのパラメーターを、直接このメソッドに渡してください。

pResultIMFAsyncResult*inIMFAsyncResult インターフェースへのポインター。
ppEventIMFMediaEvent**outイベントオブジェクトの IMFMediaEvent インターフェースへのポインターを受け取ります。呼び出し側はこのインターフェースを解放する必要があります。

戻り値

このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。
MF_E_SHUTDOWN
Shutdown メソッドが呼び出されました。

解説(Remarks)

このインターフェースは、Windows Media Format 11 SDK の再頒布可能コンポーネントがインストールされている場合、以下のプラットフォームで利用できます。

vtbl 6 HRESULT QueueEvent(IMFMediaEvent* pEvent)

イベントをキューに入れます。

pEventIMFMediaEvent*inキューに入れるイベントの IMFMediaEvent インターフェースへのポインター。

戻り値

このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。
MF_E_SHUTDOWN
Shutdown メソッドが呼び出されました。

解説(Remarks)

コンポーネントが属性を含むイベントを発生させる必要がある場合に、このメソッドを呼び出します。イベントオブジェクトを作成するには、MFCreateMediaEvent を呼び出します。IMFAttributes インターフェースのメソッドを使用して、イベントに属性を追加します。(IMFMediaEvent インターフェースは IMFAttributes を継承しています。)

このインターフェースは、Windows Media Format 11 SDK の再頒布可能コンポーネントがインストールされている場合、以下のプラットフォームで利用できます。

vtbl 7 HRESULT QueueEventParamVar(DWORD met, GUID* guidExtendedType, HRESULT hrStatus, PROPVARIANT* pvValue)

イベントを作成し、PROPVARIANT をイベントデータとして設定して、そのイベントをキューに入れます。IMFMediaEventGenerator::QueueEvent の実装内でこのメソッドを呼び出します。

metDWORDinキューに追加するイベントの種類を指定します。イベントの種類は、イベントの IMFMediaEvent::GetType メソッドによって返されます。イベントの種類の一覧については、Media Foundation Events を参照してください。
guidExtendedTypeGUID*inイベントの拡張型。イベントに拡張型がない場合は、値 GUID_NULL を使用します。拡張型は、イベントの IMFMediaEvent::GetExtendedType メソッドによって返されます。
hrStatusHRESULTinイベントのステータスを示す成功または失敗のコード。この値は、イベントの IMFMediaEvent::GetStatus メソッドによって返されます。
pvValuePROPVARIANT*inイベント値を含む PROPVARIANT へのポインター。このパラメーターには NULL を指定できます。この値は、イベントの IMFMediaEvent::GetValue メソッドによって返されます。

戻り値

このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。
MF_E_SHUTDOWN
Shutdown メソッドが呼び出されました。

解説(Remarks)

このインターフェースは、Windows Media Format 11 SDK の再頒布可能コンポーネントがインストールされている場合、以下のプラットフォームで利用できます。

vtbl 8 HRESULT QueueEventParamUnk(DWORD met, GUID* guidExtendedType, HRESULT hrStatus, IUnknown* pUnk)

イベントを作成し、IUnknown ポインターをイベントデータとして設定して、そのイベントをキューに入れます。

metDWORDinキューに追加するイベントのイベント種類を指定します。イベントの種類は、イベントの IMFMediaEvent::GetType メソッドによって返されます。イベントの種類の一覧については、Media Foundation Events を参照してください。
guidExtendedTypeGUID*inイベントの拡張型。イベントに拡張型がない場合は、値 GUID_NULL を使用します。拡張型は、イベントの IMFMediaEvent::GetExtendedType メソッドによって返されます。
hrStatusHRESULTinイベントのステータスを示す成功または失敗のコード。この値は、イベントの IMFMediaEvent::GetStatus メソッドによって返されます。
pUnkIUnknown*inIUnknown インターフェースへのポインター。メソッドはこのポインターをイベント値として設定します。このポインターは、イベントの IMFMediaEvent::GetValue メソッドによって返されます。

戻り値

このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。
MF_E_SHUTDOWN
Shutdown メソッドが呼び出されました。

解説(Remarks)

コンポーネントが、属性を含まず IUnknown ポインター値を持つイベントを発生させる必要がある場合に、このメソッドを呼び出します。イベントに属性が含まれる場合は、代わりに IMFMediaEventQueue::QueueEvent を使用してください。

このインターフェースは、Windows Media Format 11 SDK の再頒布可能コンポーネントがインストールされている場合、以下のプラットフォームで利用できます。

vtbl 9 HRESULT Shutdown()

イベントキューをシャットダウンします。

戻り値

このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

コンポーネントをシャットダウンするときに、このメソッドを呼び出します。このメソッドが呼び出された後は、すべての IMFMediaEventQueue メソッドが MF_E_SHUTDOWN を返します。

このメソッドは、キューからすべてのイベントを削除します。

このインターフェースは、Windows Media Format 11 SDK の再頒布可能コンポーネントがインストールされている場合、以下のプラットフォームで利用できます。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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 指定が可能。