ホーム › Media.DirectShow › IBDA_ConditionalAccess
IBDA_ConditionalAccess
COMメソッド 10
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT get_SmartCardStatus(SmartCardStatusType* pCardStatus, SmartCardAssociationType* pCardAssociation, LPWSTR* pbstrCardError, VARIANT_BOOL* pfOOBLocked)
| pCardStatus | SmartCardStatusType* | out | スマートカードの状態を示すSmartCardStatusType列挙体へのポインタ。 |
| pCardAssociation | SmartCardAssociationType* | out | カードとホストの関連付け状態を示すSmartCardAssociationType列挙体へのポインタ。 |
| pbstrCardError | LPWSTR* | out | カードエラーの説明文字列(BSTR)を受け取る出力ポインタ。 |
| pfOOBLocked | VARIANT_BOOL* | out | 帯域外(OOB)チャネルがロック済みか否かを受け取るVARIANT_BOOLへのポインタ。 |
vtbl 4 HRESULT get_SmartCardInfo(LPWSTR* pbstrCardName, LPWSTR* pbstrCardManufacturer, VARIANT_BOOL* pfDaylightSavings, BYTE* pbyRatingRegion, INT* plTimeZoneOffsetMinutes, LPWSTR* pbstrLanguage, EALocationCodeType* pEALocationCode)
| pbstrCardName | LPWSTR* | out | スマートカード名を受け取る出力文字列(BSTR)ポインタ。 |
| pbstrCardManufacturer | LPWSTR* | out | カード製造元名を受け取る出力文字列(BSTR)ポインタ。 |
| pfDaylightSavings | VARIANT_BOOL* | out | 夏時間が有効か否かを受け取るVARIANT_BOOLへのポインタ。 |
| pbyRatingRegion | BYTE* | out | 視聴制限のレーティング地域コードを受け取るBYTEへのポインタ。 |
| plTimeZoneOffsetMinutes | INT* | out | タイムゾーンのUTCオフセットを分単位で受け取るINTへのポインタ。 |
| pbstrLanguage | LPWSTR* | out | カードの言語設定文字列(BSTR)を受け取る出力ポインタ。 |
| pEALocationCode | EALocationCodeType* | out | 緊急警報の位置コードを示すEALocationCodeType構造体へのポインタ。 |
vtbl 5 HRESULT get_SmartCardApplications(DWORD* pulcApplications, DWORD ulcApplicationsMax, SmartCardApplication* rgApplications)
| pulcApplications | DWORD* | inout | 実際に返されたカードアプリケーション数を受け取るDWORDへのポインタ。 |
| ulcApplicationsMax | DWORD | in | rgApplications配列に格納可能な最大要素数を指定する。 |
| rgApplications | SmartCardApplication* | inout | カード上のアプリケーション情報を受け取るSmartCardApplication配列へのポインタ。 |
vtbl 6 HRESULT get_Entitlement(WORD usVirtualChannel, EntitlementType* pEntitlement)
| usVirtualChannel | WORD | in | 視聴権限を問い合わせる仮想チャンネル番号を指定するWORD。 |
| pEntitlement | EntitlementType* | out | 対象チャンネルの視聴権限状態を示すEntitlementType列挙体へのポインタ。 |
| usVirtualChannel | WORD | in | 選局する仮想チャンネル番号を指定するWORD。 |
| usProgramNumber | WORD | in | デスクランブル対象として設定するプログラム番号を指定するWORD。 |
| usProgramNumber | WORD | in | デスクランブル対象に追加するプログラム番号を指定するWORD。 |
| usProgramNumber | WORD | in | デスクランブル対象から削除するプログラム番号を指定するWORD。 |
| byDialogNumber | BYTE | in | UIを取得する対象のダイアログ番号を指定するBYTE。 |
| pbstrURL | LPWSTR* | out | 表示するモジュールUIのURL文字列(BSTR)を受け取る出力ポインタ。 |
vtbl 12 HRESULT InformUIClosed(BYTE byDialogNumber, UICloseReasonType CloseReason)
| byDialogNumber | BYTE | in | 閉じられたUIのダイアログ番号を指定するBYTE。 |
| CloseReason | UICloseReasonType | in | UIが閉じられた理由を示すUICloseReasonType列挙体。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IBDA_ConditionalAccess "{CD51F1E0-7BE9-4123-8482-A2A796C0A6B0}" #usecom global IBDA_ConditionalAccess IID_IBDA_ConditionalAccess "{}" #comfunc global IBDA_ConditionalAccess_get_SmartCardStatus 3 var,var,var,var #comfunc global IBDA_ConditionalAccess_get_SmartCardInfo 4 var,var,var,var,var,var,var #comfunc global IBDA_ConditionalAccess_get_SmartCardApplications 5 var,int,var #comfunc global IBDA_ConditionalAccess_get_Entitlement 6 int,var #comfunc global IBDA_ConditionalAccess_TuneByChannel 7 int #comfunc global IBDA_ConditionalAccess_SetProgram 8 int #comfunc global IBDA_ConditionalAccess_AddProgram 9 int #comfunc global IBDA_ConditionalAccess_RemoveProgram 10 int #comfunc global IBDA_ConditionalAccess_GetModuleUI 11 int,var #comfunc global IBDA_ConditionalAccess_InformUIClosed 12 int,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IBDA_ConditionalAccess "{CD51F1E0-7BE9-4123-8482-A2A796C0A6B0}" #usecom global IBDA_ConditionalAccess IID_IBDA_ConditionalAccess "{}" #comfunc global IBDA_ConditionalAccess_get_SmartCardStatus 3 sptr,sptr,sptr,sptr #comfunc global IBDA_ConditionalAccess_get_SmartCardInfo 4 sptr,sptr,sptr,sptr,sptr,sptr,sptr #comfunc global IBDA_ConditionalAccess_get_SmartCardApplications 5 sptr,int,sptr #comfunc global IBDA_ConditionalAccess_get_Entitlement 6 int,sptr #comfunc global IBDA_ConditionalAccess_TuneByChannel 7 int #comfunc global IBDA_ConditionalAccess_SetProgram 8 int #comfunc global IBDA_ConditionalAccess_AddProgram 9 int #comfunc global IBDA_ConditionalAccess_RemoveProgram 10 int #comfunc global IBDA_ConditionalAccess_GetModuleUI 11 int,sptr #comfunc global IBDA_ConditionalAccess_InformUIClosed 12 int,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。