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

IWMDRMWriter

COM
IIDd6ea5dd0-12a0-43f4-90ab-a3fd451e6a07継承元IUnknown自前メソッド開始 vtbl3

メソッド 4

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

vtbl 3 HRESULT GenerateKeySeed(LPWSTR pwszKeySeed, DWORD* pcwchLength)
pwszKeySeedLPWSTRout生成されたキーシードを受け取る文字列バッファ。NULLで長さ問い合わせ。
pcwchLengthDWORD*inout入力で確保文字数、出力で必要文字数を示すDWORDポインタ。
vtbl 4 HRESULT GenerateKeyID(LPWSTR pwszKeyID, DWORD* pcwchLength)
pwszKeyIDLPWSTRout生成されたキーIDを受け取る文字列バッファ。NULLで長さ問い合わせ。
pcwchLengthDWORD*inout入力で確保文字数、出力で必要文字数を示すDWORDポインタ。
vtbl 5 HRESULT GenerateSigningKeyPair(LPWSTR pwszPrivKey, DWORD* pcwchPrivKeyLength, LPWSTR pwszPubKey, DWORD* pcwchPubKeyLength)
pwszPrivKeyLPWSTRout生成された署名用秘密鍵を受け取る文字列バッファ。
pcwchPrivKeyLengthDWORD*inout入力で秘密鍵バッファ確保文字数、出力で必要文字数を示すポインタ。
pwszPubKeyLPWSTRout生成された署名用公開鍵を受け取る文字列バッファ。
pcwchPubKeyLengthDWORD*inout入力で公開鍵バッファ確保文字数、出力で必要文字数を示すポインタ。
vtbl 6 HRESULT SetDRMAttribute(WORD wStreamNum, LPWSTR pszName, WMT_ATTR_DATATYPE Type, BYTE* pValue, WORD cbLength)
wStreamNumWORDin属性を適用するストリーム番号。0で全体を対象とする。
pszNameLPWSTRin設定するDRM属性名を指す広域文字列。
TypeWMT_ATTR_DATATYPEin属性値のデータ型を示すWMT_ATTR_DATATYPE列挙値。
pValueBYTE*in設定する属性値が格納されたバイトバッファへのポインタ。
cbLengthWORDin属性値のバイト長を指定する。

HSP用 COM定義

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

出力引数:
#define global IID_IWMDRMWriter "{D6EA5DD0-12A0-43F4-90AB-A3FD451E6A07}"
#usecom global IWMDRMWriter IID_IWMDRMWriter "{}"
#comfunc global IWMDRMWriter_GenerateKeySeed         3 var,var
#comfunc global IWMDRMWriter_GenerateKeyID           4 var,var
#comfunc global IWMDRMWriter_GenerateSigningKeyPair  5 var,var,var,var
#comfunc global IWMDRMWriter_SetDRMAttribute         6 int,wstr,int,var,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。