次の方法で共有


非サイレント ライセンスの取得

[このページに関連付けられている機能である Windows Media Format 11 SDK は、レガシ機能です。 これは、ソース リーダーシンク ライターによって置き換えられます。 ソース リーダーシンク ライターは、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、Windows Media Format 11 SDK ではなくソース リーダーシンク ライターを使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

サイレント ライセンスを取得しない場合、ライセンス プロバイダーは、ライセンス取得プロセスの中間手順として、Web ページを介してエンド ユーザーと対話できます。 非サイレント ライセンスの取得は、保護されたコンテンツにアクセスしようとしているユーザーに応じて開始されます。

非サイレント ライセンス取得を実行するには、次の手順に従います。

  1. IWMDRMLicenseManagement::AcquireLicense メソッドを呼び出します。 保護されたファイルから DRM ヘッダーを bstrHeaderData パラメーターとして渡します。 bstrActions パラメーターでライセンスに付与する権限を指定します。 最後に、 dwFlags パラメーターを WMDRM_ACQUIRE_LICENSE_NONSILENT に設定します。
  2. IWMDRMLicenseManagement インターフェイスのイベントをトラップします。 MEWMDRMLicenseAcquisitionCompleted イベントを受け取ったら、IMFMediaEvent::GetValue を呼び出して、関連付けられた値を取得します。 値は、 IUnknown インターフェイスへのポインターである VT_UNKNOWN 型である必要があります。
  3. 手順 2 で取得した IUnknown インターフェイスの QueryInterface メソッドを呼び出して、IWMDRMNonSilentLicenseAquisition インターフェイスを取得します。
  4. ライセンス チャレンジを取得するには、 IWMDRMNonSilentLicenseAquisition::GetChallenge を呼び出します。 ライセンス サーバーの URL がまだない場合は 、IWMDRMNonSilentLicenseAquisition::GetURL も呼び出します。
  5. URL で指定された Web ページにチャレンジを送信します。

ライセンスの取得

Media Foundation イベント モデルの使用