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

IBDA_WMDRMSession

COM
IID4be6fa3d-07cd-4139-8b80-8c18ba3aec88継承元IUnknown自前メソッド開始 vtbl3

メソッド 8

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

vtbl 3 HRESULT GetStatus(DWORD* MaxCaptureToken, DWORD* MaxStreamingPid, DWORD* MaxLicense, DWORD* MinSecurityLevel, DWORD* RevInfoSequenceNumber, ULONGLONG* RevInfoIssuedTime, DWORD* RevInfoTTL, DWORD* RevListVersion, DWORD* ulState)
MaxCaptureTokenDWORD*outサポートされるキャプチャトークンの最大数を受け取る出力ポインタ。
MaxStreamingPidDWORD*out同時にストリーミング可能なPIDの最大数を受け取る出力ポインタ。
MaxLicenseDWORD*out保持可能なライセンスの最大数を受け取る出力ポインタ。
MinSecurityLevelDWORD*out要求される最小セキュリティレベルを受け取る出力ポインタ。
RevInfoSequenceNumberDWORD*out失効情報のシーケンス番号を受け取る出力ポインタ。
RevInfoIssuedTimeULONGLONG*out失効情報の発行時刻を受け取る出力ポインタ。64ビット時刻値。
RevInfoTTLDWORD*out失効情報の有効期間(TTL)を受け取る出力ポインタ。
RevListVersionDWORD*out失効リスト(CRL)のバージョン番号を受け取る出力ポインタ。
ulStateDWORD*outWMDRMセッションの現在の状態を表すフラグ値を受け取る出力ポインタ。
vtbl 4 HRESULT SetRevInfo(DWORD ulRevInfoLen, BYTE* pbRevInfo)
ulRevInfoLenDWORDinpbRevInfoが指す失効情報バッファのバイト長を指定する入力値。
pbRevInfoBYTE*in設定する失効情報(Revocation Info)データへの入力ポインタ。
vtbl 5 HRESULT SetCrl(DWORD ulCrlLen, BYTE* pbCrlLen)
ulCrlLenDWORDinpbCrlLenが指す失効リストバッファのバイト長を指定する入力値。
pbCrlLenBYTE*in設定する証明書失効リスト(CRL)データへの入力ポインタ。
vtbl 6 HRESULT TransactMessage(DWORD ulcbRequest, BYTE* pbRequest, DWORD* pulcbResponse, BYTE* pbResponse)
ulcbRequestDWORDinpbRequestが指す要求メッセージのバイト長を指定する入力値。
pbRequestBYTE*inライセンスサーバへ送る要求メッセージデータへの入力ポインタ。
pulcbResponseDWORD*inout入出力で応答バッファのバイト長を指定/受け取るポインタ。NULLで必要サイズを取得する。
pbResponseBYTE*inout応答メッセージを書き込む出力バッファへのポインタ。NULLでサイズ取得のみ行う。
vtbl 7 HRESULT GetLicense(GUID* uuidKey, DWORD* pulPackageLen, BYTE* pbPackage)
uuidKeyGUID*in取得対象ライセンスのキーを識別するGUIDへの入力ポインタ。
pulPackageLenDWORD*inout入出力でライセンスパッケージバッファのバイト長を指定/受け取るポインタ。
pbPackageBYTE*inoutライセンスパッケージを書き込む出力バッファへのポインタ。NULLでサイズ取得のみ行う。
vtbl 8 HRESULT ReissueLicense(GUID* uuidKey)
uuidKeyGUID*in再発行するライセンスのキーを識別するGUIDへの入力ポインタ。
vtbl 9 HRESULT RenewLicense(DWORD ulInXmrLicenseLen, BYTE* pbInXmrLicense, DWORD ulEntitlementTokenLen, BYTE* pbEntitlementToken, DWORD* pulDescrambleStatus, DWORD* pulOutXmrLicenseLen, BYTE* pbOutXmrLicense)
ulInXmrLicenseLenDWORDinpbInXmrLicenseが指す入力XMRライセンスのバイト長を指定する入力値。
pbInXmrLicenseBYTE*in更新元となる入力XMRライセンスデータへの入力ポインタ。
ulEntitlementTokenLenDWORDinpbEntitlementTokenが指すトークンのバイト長を指定する入力値。
pbEntitlementTokenBYTE*inライセンス更新の権利を示すエンタイトルメントトークンへの入力ポインタ。
pulDescrambleStatusDWORD*outデスクランブル(復号)処理の結果状態を受け取る出力ポインタ。
pulOutXmrLicenseLenDWORD*inout入出力で出力XMRライセンスバッファのバイト長を指定/受け取るポインタ。
pbOutXmrLicenseBYTE*inout更新後のXMRライセンスを書き込む出力バッファへのポインタ。NULLでサイズ取得のみ行う。
vtbl 10 HRESULT GetKeyInfo(DWORD* pulKeyInfoLen, BYTE* pbKeyInfo)
pulKeyInfoLenDWORD*inout入出力でキー情報バッファのバイト長を指定/受け取るポインタ。NULLで必要サイズを取得する。
pbKeyInfoBYTE*inoutコンテンツキー情報を書き込む出力バッファへのポインタ。NULLでサイズ取得のみ行う。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IBDA_WMDRMSession "{4BE6FA3D-07CD-4139-8B80-8C18BA3AEC88}"
#usecom global IBDA_WMDRMSession IID_IBDA_WMDRMSession "{}"
#comfunc global IBDA_WMDRMSession_GetStatus        3 var,var,var,var,var,var,var,var,var
#comfunc global IBDA_WMDRMSession_SetRevInfo       4 int,var
#comfunc global IBDA_WMDRMSession_SetCrl           5 int,var
#comfunc global IBDA_WMDRMSession_TransactMessage  6 int,var,var,var
#comfunc global IBDA_WMDRMSession_GetLicense       7 var,var,var
#comfunc global IBDA_WMDRMSession_ReissueLicense   8 var
#comfunc global IBDA_WMDRMSession_RenewLicense     9 int,var,int,var,var,var,var
#comfunc global IBDA_WMDRMSession_GetKeyInfo       10 var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。