ホーム › Media.DirectShow › IBDA_WMDRMSession
IBDA_WMDRMSession
COMメソッド 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)
| MaxCaptureToken | DWORD* | out | サポートされるキャプチャトークンの最大数を受け取る出力ポインタ。 |
| MaxStreamingPid | DWORD* | out | 同時にストリーミング可能なPIDの最大数を受け取る出力ポインタ。 |
| MaxLicense | DWORD* | out | 保持可能なライセンスの最大数を受け取る出力ポインタ。 |
| MinSecurityLevel | DWORD* | out | 要求される最小セキュリティレベルを受け取る出力ポインタ。 |
| RevInfoSequenceNumber | DWORD* | out | 失効情報のシーケンス番号を受け取る出力ポインタ。 |
| RevInfoIssuedTime | ULONGLONG* | out | 失効情報の発行時刻を受け取る出力ポインタ。64ビット時刻値。 |
| RevInfoTTL | DWORD* | out | 失効情報の有効期間(TTL)を受け取る出力ポインタ。 |
| RevListVersion | DWORD* | out | 失効リスト(CRL)のバージョン番号を受け取る出力ポインタ。 |
| ulState | DWORD* | out | WMDRMセッションの現在の状態を表すフラグ値を受け取る出力ポインタ。 |
| ulRevInfoLen | DWORD | in | pbRevInfoが指す失効情報バッファのバイト長を指定する入力値。 |
| pbRevInfo | BYTE* | in | 設定する失効情報(Revocation Info)データへの入力ポインタ。 |
| ulCrlLen | DWORD | in | pbCrlLenが指す失効リストバッファのバイト長を指定する入力値。 |
| pbCrlLen | BYTE* | in | 設定する証明書失効リスト(CRL)データへの入力ポインタ。 |
vtbl 6 HRESULT TransactMessage(DWORD ulcbRequest, BYTE* pbRequest, DWORD* pulcbResponse, BYTE* pbResponse)
| ulcbRequest | DWORD | in | pbRequestが指す要求メッセージのバイト長を指定する入力値。 |
| pbRequest | BYTE* | in | ライセンスサーバへ送る要求メッセージデータへの入力ポインタ。 |
| pulcbResponse | DWORD* | inout | 入出力で応答バッファのバイト長を指定/受け取るポインタ。NULLで必要サイズを取得する。 |
| pbResponse | BYTE* | inout | 応答メッセージを書き込む出力バッファへのポインタ。NULLでサイズ取得のみ行う。 |
| uuidKey | GUID* | in | 取得対象ライセンスのキーを識別するGUIDへの入力ポインタ。 |
| pulPackageLen | DWORD* | inout | 入出力でライセンスパッケージバッファのバイト長を指定/受け取るポインタ。 |
| pbPackage | BYTE* | inout | ライセンスパッケージを書き込む出力バッファへのポインタ。NULLでサイズ取得のみ行う。 |
vtbl 8 HRESULT ReissueLicense(GUID* uuidKey)
| uuidKey | GUID* | in | 再発行するライセンスのキーを識別するGUIDへの入力ポインタ。 |
vtbl 9 HRESULT RenewLicense(DWORD ulInXmrLicenseLen, BYTE* pbInXmrLicense, DWORD ulEntitlementTokenLen, BYTE* pbEntitlementToken, DWORD* pulDescrambleStatus, DWORD* pulOutXmrLicenseLen, BYTE* pbOutXmrLicense)
| ulInXmrLicenseLen | DWORD | in | pbInXmrLicenseが指す入力XMRライセンスのバイト長を指定する入力値。 |
| pbInXmrLicense | BYTE* | in | 更新元となる入力XMRライセンスデータへの入力ポインタ。 |
| ulEntitlementTokenLen | DWORD | in | pbEntitlementTokenが指すトークンのバイト長を指定する入力値。 |
| pbEntitlementToken | BYTE* | in | ライセンス更新の権利を示すエンタイトルメントトークンへの入力ポインタ。 |
| pulDescrambleStatus | DWORD* | out | デスクランブル(復号)処理の結果状態を受け取る出力ポインタ。 |
| pulOutXmrLicenseLen | DWORD* | inout | 入出力で出力XMRライセンスバッファのバイト長を指定/受け取るポインタ。 |
| pbOutXmrLicense | BYTE* | inout | 更新後のXMRライセンスを書き込む出力バッファへのポインタ。NULLでサイズ取得のみ行う。 |
| pulKeyInfoLen | DWORD* | inout | 入出力でキー情報バッファのバイト長を指定/受け取るポインタ。NULLで必要サイズを取得する。 |
| pbKeyInfo | BYTE* | 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 方式にも切替可。#define global IID_IBDA_WMDRMSession "{4BE6FA3D-07CD-4139-8B80-8C18BA3AEC88}" #usecom global IBDA_WMDRMSession IID_IBDA_WMDRMSession "{}" #comfunc global IBDA_WMDRMSession_GetStatus 3 sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr #comfunc global IBDA_WMDRMSession_SetRevInfo 4 int,sptr #comfunc global IBDA_WMDRMSession_SetCrl 5 int,sptr #comfunc global IBDA_WMDRMSession_TransactMessage 6 int,sptr,sptr,sptr #comfunc global IBDA_WMDRMSession_GetLicense 7 sptr,sptr,sptr #comfunc global IBDA_WMDRMSession_ReissueLicense 8 sptr #comfunc global IBDA_WMDRMSession_RenewLicense 9 int,sptr,int,sptr,sptr,sptr,sptr #comfunc global IBDA_WMDRMSession_GetKeyInfo 10 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。