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

IMFMediaKeys

COM
IID5cb31c05-61ff-418f-afda-caaf41421a38継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

デジタル著作権管理 (DRM) キーシステムを使用してメディアデータを復号するために使用されるメディアキーを表します。

メソッド 4

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

vtbl 3 HRESULT CreateSession(LPWSTR mimeType, BYTE* initData, DWORD cb, BYTE* customData, DWORD cbCustomData, IMFMediaKeySessionNotify* notify, IMFMediaKeySession** ppSession)

指定された初期化データとカスタムデータを使用して、メディアキーセッションオブジェクトを作成します。

mimeTypeLPWSTRinoptionalコンテンツに使用されるメディアコンテナーの MIME タイプ。
initDataBYTE*inoptionalキーシステムの初期化データ。
cbDWORDinoptionalinitData のバイト数。
customDataBYTE*inoptionalキーシステムに送信されるカスタムデータ。
cbCustomDataDWORDincbCustomData のバイト数。
notifyIMFMediaKeySessionNotify*innotify
ppSessionIMFMediaKeySession**outメディアキーセッション。

戻り値

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

vtbl 4 HRESULT get_KeySystem(LPWSTR* keySystem)

IMFMediaKeys オブジェクトの作成時に使用されたキーシステム文字列を取得します。

keySystemLPWSTR*outキーシステムの文字列名。

戻り値

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

vtbl 5 HRESULT Shutdown()

IMFMediaKeys::Shutdown (mfmediaengine.h) メソッドは、関連付けられた Content Decryption Module (CDM) をシャットダウンします。

戻り値

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

解説(Remarks)

Shutdown は、最終的な解放の前にアプリケーションによって呼び出す必要があります。この時点で、Content Decryption Module (CDM) への参照とその他のリソースが解放されます。ただし、関連するセッションは解放またはクローズされません。

vtbl 6 HRESULT GetSuspendNotify(IMFCdmSuspendNotify** notify)

Content Decryption Module (CDM) のサスペンド通知インターフェイスを取得します。

notifyIMFCdmSuspendNotify**outContent Decryption Module (CDM) のサスペンド通知インターフェイス。

戻り値

このメソッドが成功した場合は 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_IMFMediaKeys "{5CB31C05-61FF-418F-AFDA-CAAF41421A38}"
#usecom global IMFMediaKeys IID_IMFMediaKeys "{}"
#comfunc global IMFMediaKeys_CreateSession     3 wstr,var,int,var,int,sptr,sptr
#comfunc global IMFMediaKeys_get_KeySystem     4 var
#comfunc global IMFMediaKeys_Shutdown          5
#comfunc global IMFMediaKeys_GetSuspendNotify  6 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。