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

ISCPSecureQuery

COM
IID1dcb3a0d-33ed-11d3-8470-00c04f79dbc0継承元IUnknown自前メソッド開始 vtbl3

メソッド 4

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

vtbl 3 HRESULT GetDataDemands(DWORD* pfuFlags, DWORD* pdwMinRightsData, DWORD* pdwMinExamineData, DWORD* pdwMinDecideData, BYTE* abMac)
pfuFlagsDWORD*out処理に必要なデータ要件を示すフラグを受け取る出力。
pdwMinRightsDataDWORD*out権利判定に必要な最小データ量をバイト単位で受け取る出力。
pdwMinExamineDataDWORD*outコンテンツ検査に必要な最小データ量を受け取る出力。
pdwMinDecideDataDWORD*out転送可否判定に必要な最小データ量を受け取る出力。
abMacBYTE*inoutパラメータ改ざん検証用のMACを受け取るバイト配列。
vtbl 4 HRESULT ExamineData(DWORD fuFlags, LPWSTR pwszExtension, BYTE* pData, DWORD dwSize, BYTE* abMac)
fuFlagsDWORDin検査動作を制御するフラグ。検査の種類や条件を指定する。
pwszExtensionLPWSTRinoptionalコンテンツのファイル拡張子を示す文字列。種別判定に使う。
pDataBYTE*in検査対象コンテンツの先頭データを格納したバッファ。
dwSizeDWORDinpDataバッファのサイズをバイト単位で指定する。
abMacBYTE*inout入力データ改ざん検証用のMACを格納したバイト配列。
vtbl 5 HRESULT MakeDecision(DWORD fuFlags, BYTE* pData, DWORD dwSize, DWORD dwAppSec, BYTE* pbSPSessionKey, DWORD dwSessionKeyLen, IMDSPStorageGlobals* pStorageGlobals, ISCPSecureExchange** ppExchange, BYTE* abMac)
fuFlagsDWORDin転送可否判定の動作を制御するフラグ。
pDataBYTE*in判定対象コンテンツデータを格納したバッファ。
dwSizeDWORDinpDataバッファのサイズをバイト単位で指定する。
dwAppSecDWORDinアプリケーションのセキュリティレベル値を指定する。
pbSPSessionKeyBYTE*inサービスプロバイダのセッションキーを格納したバッファ。
dwSessionKeyLenDWORDinセッションキーの長さをバイト単位で指定する。
pStorageGlobalsIMDSPStorageGlobals*inoptional転送先媒体情報を示すIMDSPStorageGlobals。
ppExchangeISCPSecureExchange**outセキュア転送を実行するISCPSecureExchangeを受け取る出力。
abMacBYTE*inout入力データ改ざん検証用のMACを格納したバイト配列。
vtbl 6 HRESULT GetRights(BYTE* pData, DWORD dwSize, BYTE* pbSPSessionKey, DWORD dwSessionKeyLen, IMDSPStorageGlobals* pStgGlobals, WMDMRIGHTS** ppRights, DWORD* pnRightsCount, BYTE* abMac)
pDataBYTE*in権利取得対象コンテンツデータを格納したバッファ。
dwSizeDWORDinpDataバッファのサイズをバイト単位で指定する。
pbSPSessionKeyBYTE*inサービスプロバイダのセッションキーを格納したバッファ。
dwSessionKeyLenDWORDinセッションキーの長さをバイト単位で指定する。
pStgGlobalsIMDSPStorageGlobals*inoptional対象媒体情報を示すIMDSPStorageGlobals。
ppRightsWMDMRIGHTS**out取得した権利情報WMDMRIGHTS配列を受け取る出力。
pnRightsCountDWORD*out権利配列の要素数を受け取る出力。
abMacBYTE*inout入出力データ検証用のMACを受け渡すバイト配列。

HSP用 COM定義

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

出力引数:
#define global IID_ISCPSecureQuery "{1DCB3A0D-33ED-11D3-8470-00C04F79DBC0}"
#usecom global ISCPSecureQuery IID_ISCPSecureQuery "{}"
#comfunc global ISCPSecureQuery_GetDataDemands  3 var,var,var,var,var
#comfunc global ISCPSecureQuery_ExamineData     4 int,wstr,var,int,var
#comfunc global ISCPSecureQuery_MakeDecision    5 int,var,int,int,var,int,sptr,sptr,var
#comfunc global ISCPSecureQuery_GetRights       6 var,int,var,int,sptr,var,var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。