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

IMFContentDecryptionModuleFactory

COM
IID7d5abf16-4cbb-4e08-b977-9ba59049943e継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IMFContentDecryptionModuleAccess オブジェクトを作成するためのファクトリインターフェイスです。

メソッド 2

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

vtbl 3 BOOL IsTypeSupported(LPWSTR keySystem, LPWSTR contentType)

指定した Key System、および必要に応じてコンテンツタイプがサポートされているかどうかを照会します。

keySystemLPWSTRinサポートの有無を照会する Key System を指定する LPCWSTR です。
contentTypeLPWSTRin省略可能。サポートの有無を照会するコンテンツタイプを指定する LPCWSTR です。このパラメーターの詳細については 解説 セクションを参照してください。

戻り値

指定した Key System とコンテンツタイプがサポートされている場合は true、それ以外の場合は false を返します。

解説(Remarks)

メモ

contentType パラメーターは PlayReady では無視されるため、そのコンテンツ保護システムでは戻り値は指定した Key System がサポートされているかどうかのみを示します。指定した Key System がサポートされている場合、contentType にどのような値が指定されていても、このメソッドは true を返します。contentType パラメーターは、他のコンテンツ保護システムでも無視される場合があります。

Key System の詳細については、Encrypted Media Extension 仕様の Key System を参照してください。

vtbl 4 HRESULT CreateContentDecryptionModuleAccess(LPWSTR keySystem, IPropertyStore** configurations, DWORD numConfigurations, IMFContentDecryptionModuleAccess** contentDecryptionModuleAccess)

IMFContentDecryptionModuleAccess インターフェイスのインスタンスを作成します。

keySystemLPWSTRinインターフェイスを作成する対象の Key System を識別する LPWSTR です。
configurationsIPropertyStore**inCDM の構成オプションを含む IPropertyStore オブジェクトです。
numConfigurationsDWORDinconfigurations パラメーター内のプロパティの数を指定する DWORD です。
contentDecryptionModuleAccessIMFContentDecryptionModuleAccess**out作成された IMFContentDecryptionModuleAccess オブジェクトを受け取ります。

戻り値

成功した場合は S_OK を返します。

解説(Remarks)

IMFContentDecryptionModuleAccess は、Encrypted Media Extension 仕様の MediaKeySystemAccess.getConfiguration に基づいています。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IMFContentDecryptionModuleFactory "{7D5ABF16-4CBB-4E08-B977-9BA59049943E}"
#usecom global IMFContentDecryptionModuleFactory IID_IMFContentDecryptionModuleFactory "{}"
#comfunc global IMFContentDecryptionModuleFactory_IsTypeSupported                      3 wstr,wstr
#comfunc global IMFContentDecryptionModuleFactory_CreateContentDecryptionModuleAccess  4 wstr,sptr,int,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。