IMFInputTrustAuthority::RequestAccess メソッド (mfidl.h)

ストリームに対して指定したアクションを実行するためのアクセス許可を要求します。

構文

HRESULT RequestAccess(
  [in]  MFPOLICYMANAGER_ACTION Action,
  [out] IMFActivate            **ppContentEnablerActivate
);

パラメーター

[in] Action

要求されたアクション。 MFPOLICYMANAGER_ACTION 列挙体のメンバーとして指定されます。

[out] ppContentEnablerActivate

NULL または IMFActivate インターフェイスへのポインターを受け取ります。 IMFActivate インターフェイスは、コンテンツ イネーブラー オブジェクトを作成するために使用されます。 呼び出し元はインターフェイスを解放する必要があります。 詳細については、「解説」を参照してください。

戻り値

このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。

リターン コード 説明
S_OK
ユーザーには、このアクションを実行するアクセス許可があります。
NS_E_DRM_NEEDS_INDIVIDUALIZATION
ユーザーはアプリケーションを個別化する必要があります。
NS_E_LICENSE_REQUIRED
ユーザーはライセンスを取得する必要があります。

解説

このメソッドは、ユーザーがストリームに対して指定されたアクションを実行するアクセス許可を持っているかどうかを確認します。 ITA は、ライセンスの確認など、ユーザーがアクションを実行する権利を確認するために必要な作業を行います。

ユーザーの権限を確認するために、ITA はユーザーとの対話またはユーザーからの同意を必要とする追加の手順を実行する必要がある場合があります。 たとえば、新しいライセンスを取得したり、DRM コンポーネントを個別化したりする必要がある場合があります。 その場合、ITA はコンテンツ イネーブラーのアクティブ化オブジェクトを作成し、ppContentEnablerActivate パラメーターでアクティブ化オブジェクトの IMFActivate インターフェイスを返します。 アクティブ化オブジェクトは、 IMFContentEnabler インターフェイスを公開するコンテンツ イネーブラーを作成します。 コンテンツ イネーブラーは次のように使用されます。

  1. メディア セッションは、アプリケーションへの IMFActivate ポインターを返します。
  2. アプリケーションは IMFActivate::ActivateObject を 呼び出して、コンテンツ イネーブラーをアクティブにします。
  3. アプリケーションは IMFContentEnabler メソッドを呼び出して、個別化やライセンスの取得など、必要なアクションを実行します。 コンテンツ イネーブラー オブジェクトは、 IMFContentEnabler インターフェイスを介してこの機能をカプセル化する必要があります。
  4. メディア セッションは RequestAccess を再度呼び出します。
戻り値は、ユーザーがアクションを実行するアクセス許可を持っているかどうかを示します。
  • ユーザーがアクションを実行するアクセス許可を既に持っている場合、メソッドは S_OKを返し、*ppContentEnablerActivate を NULL に設定 します
  • ユーザーにアクセス許可がない場合、メソッドはエラー コードを返し、*ppContentEnablerActivate を NULL に設定 します
  • ITA がユーザーとの対話を必要とする追加の手順を実行する必要がある場合、メソッドはエラー コードを返し、ppContentEnablerActivate でコンテンツ イネーブラーの IMFActivate ポインターを返します。
メディア セッションでは、このメソッドがS_OKを返さない限り、アクションは許可されません。 ただし、S_OKの戻り値では、このメソッドの呼び出し後に他のエラーが発生する可能性があるため、アクションが実行される保証はありません。 アクションが間違いなく発生する場合、メディア セッションは IMFInputTrustAuthority::BindAccess を呼び出します。

ストリームは複数の出力に移動できるため、このメソッドは、出力ごとに 1 回、異なるアクションで複数回呼び出される可能性があります。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー mfidl.h
Library Mfuuid.lib

関連項目

IMFInputTrustAuthority