IBDA_ConditionalAccessEx
COM公式ドキュメント
保護されたコンテンツへのアクセスを管理する、デバイスの限定受信サービス (CAS: Conditional Access Service) へのアクセスを提供します。
解説(Remarks)
このインターフェイスのインターフェイス識別子 (IID) を宣言するには、__uuidof 演算子を使用します: __uuidof(IBDA_ConditionalAccessEx)。
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
エンタイトルメントトークンによって識別されるコンテンツへのアクセス可否を確認します。
| ulDialogRequest | DWORD | in | 値の設定によって表示される可能性があるダイアログを指定するダイアログ要求番号。ダイアログはデバイスのユーザーインターフェイス (MMI) の一部です。 |
| bstrLanguage | LPWSTR | in | ダイアログの言語。この文字列には、ISO 639-2 言語コードにダッシュと ISO 3166 国/地域コードを続けたものが含まれます。 |
| RequestType | BDA_CONDITIONALACCESS_REQUESTTYPE | in | 要求されているアクセスの種類。BDA_CONDITIONALACCESS_REQUESTTYPE 列挙型のメンバーとして指定します。 |
| ulcbEntitlementTokenLen | DWORD | in | pbEntitlementToken 配列のサイズ (バイト単位)。 |
| pbEntitlementToken | BYTE* | in | エンタイトルメントトークンを格納するバイト配列へのポインター。 |
| pulDescrambleStatus | DWORD* | out | デスクランブルの状態を示すステータスコードを受け取ります。詳細については、『Protected Broadcast Driver Architecture, Part 1: Core Services』のセクション 5.5 を参照してください。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
キャプチャトークンによって識別される特別なイベントを要求します。
| ulcbCaptureTokenLen | DWORD | in | pbCaptureToken 配列のサイズ (バイト単位)。 |
| pbCaptureToken | BYTE* | in | キャプチャトークンを格納するバイト配列へのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
BroadcastMMI イベントに応答します。
| ulDialogRequest | DWORD | in | このアクションによってトリガーされた MMI ダイアログボックスとの論理リンク。 |
| bstrLanguage | LPWSTR | in | ダイアログボックスの言語。この文字列には、ISO 639-2 言語コードにダッシュと ISO 3166 国/地域コードを続けたものが含まれます。 |
| EventId | DWORD | in | BroadcastMMI イベントのイベント識別子。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
メディアシンクデバイス (MSD) がユーザーインターフェイス (MMI) ダイアログを閉じたことを限定受信サービス (CAS) に通知します。
| ulDialogRequest | DWORD | in | このアクションによってトリガーされたユーザーインターフェイス (MMI) ダイアログとの論理リンク。 |
| bstrLanguage | LPWSTR | in | このアクションの結果として表示されるダイアログの言語。この文字列には、ISO 639-2 言語コードにダッシュと ISO 3166 国/地域コードを続けたものが含まれます。 |
| ulDialogNumber | DWORD | in | 閉じられたダイアログのダイアログ番号。 |
| ReasonCode | BDA_CONDITIONALACCESS_MMICLOSEREASON | in | ダイアログを閉じる理由。BDA_CONDITIONALACCESS_MMICLOSEREASON 列挙型のメンバーとして指定します。 |
| pulSessionResult | DWORD* | out | MMI セッションの結果コードを受け取ります。詳細については、『Protected Broadcast Driver Architecture, Part 1: Core Services - CAS』のセクション 2.6.6 を参照してください。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
新しいダイアログボックス要求番号を取得します。
| pulDialogRequestNumber | DWORD* | out | ダイアログボックス要求番号を受け取ります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IBDA_ConditionalAccessEx "{497C3418-23CB-44BA-BB62-769F506FCEA7}" #usecom global IBDA_ConditionalAccessEx IID_IBDA_ConditionalAccessEx "{}" #comfunc global IBDA_ConditionalAccessEx_CheckEntitlementToken 3 int,wstr,int,int,var,var #comfunc global IBDA_ConditionalAccessEx_SetCaptureToken 4 int,var #comfunc global IBDA_ConditionalAccessEx_OpenBroadcastMmi 5 int,wstr,int #comfunc global IBDA_ConditionalAccessEx_CloseMmiDialog 6 int,wstr,int,int,var #comfunc global IBDA_ConditionalAccessEx_CreateDialogRequestNumber 7 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IBDA_ConditionalAccessEx "{497C3418-23CB-44BA-BB62-769F506FCEA7}" #usecom global IBDA_ConditionalAccessEx IID_IBDA_ConditionalAccessEx "{}" #comfunc global IBDA_ConditionalAccessEx_CheckEntitlementToken 3 int,wstr,int,int,sptr,sptr #comfunc global IBDA_ConditionalAccessEx_SetCaptureToken 4 int,sptr #comfunc global IBDA_ConditionalAccessEx_OpenBroadcastMmi 5 int,wstr,int #comfunc global IBDA_ConditionalAccessEx_CloseMmiDialog 6 int,wstr,int,int,sptr #comfunc global IBDA_ConditionalAccessEx_CreateDialogRequestNumber 7 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。