IWMDRMWriter2
COM公式ドキュメント
IWMDRMWriter2 インターフェイスは、Windows Media DRM 10 for Network Devices で暗号化されたコンテンツを書き込むためのメソッドを提供します。IWMDRMWriter2 インターフェイスは、すべてのライターオブジェクトに存在します。
メソッド 1
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
SetWMDRMNetEncryption メソッドは、Windows Media DRM 10 for Network Devices でエンコードされた入力サンプルを受け取るようにライターを構成します。
| fSamplesEncrypted | BOOL | in | ライターに送信されるサンプルが Windows Media DRM 10 for Network Devices プロトコル用にエンコードされるかどうかを指定するフラグです。 |
| pbKeyID | BYTE* | in | メモリ内のキー識別情報のアドレスです。 |
| cbKeyID | DWORD | in | キー識別情報のサイズ(バイト単位)です。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 |
解説(Remarks)
Windows Media DRM 10 for Network Devices をサポートするデバイスへの配信用に既にエンコードされたサンプルがある場合は、このメソッドを使用してライターを準備する必要があります。IWMWriter::BeginWriting を呼び出す前に、このメソッドを呼び出してください。
暗号化されたサンプルを受け取るようにライターを構成した後は、ライターは IWMWriter::WriteSample の呼び出しからのサンプルを受け付けません。代わりに、IWMWriterAdvanced::WriteStreamSample を使用する必要があります。
このメソッドは、Windows Media DRM 10 for Network Devices をサポートするデバイスへの配信用にエンコードされた既存のデータから新しいファイルを作成することのみを目的としています。既存の DRM 保護された ASF ファイルからセキュアなデバイスへのストリーミング用データを生成するには、IWMDRMTranscryptor インターフェイスのメソッドを使用してください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWMDRMWriter2 "{38EE7A94-40E2-4E10-AA3F-33FD3210ED5B}" #usecom global IWMDRMWriter2 IID_IWMDRMWriter2 "{}" #comfunc global IWMDRMWriter2_SetWMDRMNetEncryption 7 int,var,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IWMDRMWriter2 "{38EE7A94-40E2-4E10-AA3F-33FD3210ED5B}" #usecom global IWMDRMWriter2 IID_IWMDRMWriter2 "{}" #comfunc global IWMDRMWriter2_SetWMDRMNetEncryption 7 int,sptr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。