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

IMFMediaEngineClassFactoryEx

COM
IIDc56156c6-ea5b-48a5-9df8-fbe035d0929e継承元IMFMediaEngineClassFactory自前メソッド開始 vtbl6

公式ドキュメント

IMFMediaEngineClassFactory インターフェースの拡張です。

解説(Remarks)

このクラスは Media Engine (CLSID_MFMediaEngineClassFactory) によって実装されます。

メソッド 3

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

vtbl 6 HRESULT CreateMediaSourceExtension(DWORD dwFlags, IMFAttributes* pAttr, IMFMediaSourceExtension** ppMSE)

IMFMediaSourceExtension のインスタンスを作成します。

dwFlagsDWORDinこのパラメーターは予約されており、0 に設定する必要があります。
pAttrIMFAttributes*in

このメソッドは次の Media Foundation 属性をサポートします。

ppMSEIMFMediaSourceExtension**out作成された IMFMediaSourceExtension です。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 7 HRESULT CreateMediaKeys(LPWSTR keySystem, LPWSTR cdmStorePath, IMFMediaKeys** ppKeys)

指定されたキーシステムに基づいて media keys オブジェクトを作成します。(IMFMediaEngineClassFactoryEx.CreateMediaKeys)

keySystemLPWSTRinmedia keys システムです。
cdmStorePathLPWSTRinoptionalContent Decryption Module (CDM) データを保存する場所を指します。この場所は複数のプロセスによってロックされる可能性があり、そのためストアアプリのサスペンションと互換性がない場合があります。
ppKeysIMFMediaKeys**outmedia keys です。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

keySystem がサポートされているキーシステムかどうかを確認し、関連する Content Decryption Module (CDM) を作成します。

vtbl 8 HRESULT IsTypeSupported(LPWSTR type, LPWSTR keySystem, BOOL* isSupported)

指定されたキーシステムが指定されたメディアタイプをサポートするかどうかを示す値を取得します。

typeLPWSTRinoptionalサポートを確認する MIME タイプです。
keySystemLPWSTRinサポートを確認するキーシステムです。
isSupportedBOOL*outtype が keySystem によってサポートされている場合は true、それ以外の場合は false です。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IMFMediaEngineClassFactoryEx "{C56156C6-EA5B-48A5-9DF8-FBE035D0929E}"
#usecom global IMFMediaEngineClassFactoryEx IID_IMFMediaEngineClassFactoryEx "{}"
#comfunc global IMFMediaEngineClassFactoryEx_CreateMediaSourceExtension  6 int,sptr,sptr
#comfunc global IMFMediaEngineClassFactoryEx_CreateMediaKeys             7 wstr,wstr,sptr
#comfunc global IMFMediaEngineClassFactoryEx_IsTypeSupported             8 wstr,wstr,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。