非サイレント ライセンスの取得
[このページに関連付けられている機能である Windows Media Format 11 SDK は、レガシ機能です。 これは、ソース リーダーとシンク ライターによって置き換えられます。 ソース リーダーとシンク ライターは、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、Windows Media Format 11 SDK ではなくソース リーダーとシンク ライターを使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
サイレント ライセンスを取得しない場合、ライセンス プロバイダーは、ライセンス取得プロセスの中間手順として、Web ページを介してエンド ユーザーと対話できます。 非サイレント ライセンスの取得は、保護されたコンテンツにアクセスしようとしているユーザーに応じて開始されます。
非サイレント ライセンス取得を実行するには、次の手順に従います。
- IWMDRMLicenseManagement::AcquireLicense メソッドを呼び出します。 保護されたファイルから DRM ヘッダーを bstrHeaderData パラメーターとして渡します。 bstrActions パラメーターでライセンスに付与する権限を指定します。 最後に、 dwFlags パラメーターを WMDRM_ACQUIRE_LICENSE_NONSILENT に設定します。
- IWMDRMLicenseManagement インターフェイスのイベントをトラップします。 MEWMDRMLicenseAcquisitionCompleted イベントを受け取ったら、IMFMediaEvent::GetValue を呼び出して、関連付けられた値を取得します。 値は、 IUnknown インターフェイスへのポインターである VT_UNKNOWN 型である必要があります。
- 手順 2 で取得した IUnknown インターフェイスの QueryInterface メソッドを呼び出して、IWMDRMNonSilentLicenseAquisition インターフェイスを取得します。
- ライセンス チャレンジを取得するには、 IWMDRMNonSilentLicenseAquisition::GetChallenge を呼び出します。 ライセンス サーバーの URL がまだない場合は 、IWMDRMNonSilentLicenseAquisition::GetURL も呼び出します。
- URL で指定された Web ページにチャレンジを送信します。
関連トピック