Win32 API 日本語リファレンス
ホームMedia.DirectShow.Tv › IDvbLogicalChannel2Descriptor

IDvbLogicalChannel2Descriptor

COM
IIDf69c3747-8a30-4980-998c-01fe7f0ba35a継承元IDvbLogicalChannelDescriptor2自前メソッド開始 vtbl9

公式ドキュメント

スカンジナビア諸国で使用される Nordig 仕様で定義された形式を用いる Digital Video Broadcast (DVB) MPEG-2 ストリーム内の論理チャンネル記述子 (logical channel descriptor, LCD) からデータを取得するメソッドを実装します。

メソッド 8

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 9 HRESULT GetCountOfLists(BYTE* pbVal)

Digital Video Broadcast (DVB) 論理チャンネル記述子内のチャンネルリストの数を取得します。

pbValBYTE*outチャンネルリストの数を受け取ります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 10 HRESULT GetListId(BYTE bListIndex, BYTE* pbVal)

Digital Video Broadcast (DVB) 論理チャンネル記述子からチャンネルリストの識別子を取得します。

bListIndexBYTEinチャンネルリストのレコード番号を、0 から始まるインデックスで指定します。論理チャンネル記述子内のチャンネルリストレコードの数を取得するには、IDvbLogicalChannel2Descriptor::GetListCountOfRecords メソッドを呼び出してください。
pbValBYTE*outチャンネルリストの識別子を受け取るバイトへのポインター。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 11 HRESULT GetListNameW(BYTE bListIndex, DVB_STRCONV_MODE convMode, LPWSTR* pbstrName)

Digital Video Broadcast (DVB) 論理チャンネル記述子からチャンネルリストの名前を取得します。

bListIndexBYTEinチャンネルリストのレコード番号を、0 から始まるインデックスで指定します。論理チャンネル記述子内のチャンネルリストレコードの数を取得するには、IDvbLogicalChannel2Descriptor::GetListCountOfRecords メソッドを呼び出してください。
convModeDVB_STRCONV_MODEin

使用する文字列変換モードを指定します。このパラメーターには次のいずれかの値を指定できます。

pbstrNameLPWSTR*outチャンネル名を受け取るメモリブロックへのポインター。このメモリの解放は呼び出し側の責任です。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 12 HRESULT GetListCountryCode(BYTE bListIndex, BYTE* pszCode)

Digital Video Broadcast (DVB) 論理チャンネル記述子内のチャンネルリストについて、3 文字の ISO 3166 国コードを取得します。

bListIndexBYTEinチャンネルリストのレコード番号を、0 から始まるインデックスで指定します。論理チャンネル記述子内のチャンネルリストレコードの数を取得するには、IDvbLogicalChannel2Descriptor::GetListCountOfRecords メソッドを呼び出してください。
pszCodeBYTE*out国コードを受け取るバッファーへのポインター。このコードは 3 文字の null 終端文字列であるため、バッファーは少なくとも 4 バイトの長さが必要です。このメモリの解放は呼び出し側の責任です。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 13 HRESULT GetListCountOfRecords(BYTE bChannelListIndex, BYTE* pbVal)

Digital Video Broadcast (DVB) 論理チャンネル記述子内のチャンネルリストについて、インデックス指定されたレコード数を取得します。

bChannelListIndexBYTEinチャンネルリスト番号を、0 から始まるインデックスで指定します。論理チャンネル記述子内のチャンネルリストの数を取得するには、IDvbLogicalChannel2Descriptor::GetCountOfLists メソッドを呼び出してください。
pbValBYTE*outリスト内のチャンネル数を受け取ります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 14 HRESULT GetListRecordServiceId(BYTE bListIndex, BYTE bRecordIndex, WORD* pwVal)

Digital Video Broadcast (DVB) 論理チャンネル記述子から service 識別子を取得します。

bListIndexBYTEinチャンネルリストのレコード番号を、0 から始まるインデックスで指定します。論理チャンネル記述子内のチャンネルリストレコードの数を取得するには、IDvbLogicalChannel2Descriptor::GetCountOfLists メソッドを呼び出してください。
bRecordIndexBYTEinservice レコード番号を、0 から始まるインデックスで指定します。論理チャンネル記述子内の service レコードの数を取得するには、IDvbLogicalChannel2Descriptor::GetListCountOfRecords メソッドを呼び出してください。
pwValWORD*outservice 識別子を受け取ります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 15 HRESULT GetListRecordLogicalChannelNumber(BYTE bListIndex, BYTE bRecordIndex, WORD* pwVal)

Digital Video Broadcast (DVB) 論理チャンネル記述子から logical_channel_number フィールドの値を取得します。logical_channel_number フィールドは、記述子内での service レコードの順序位置を示します。

bListIndexBYTEinチャンネルリストのレコード番号を、0 から始まるインデックスで指定します。論理チャンネル記述子内のチャンネルリストレコードの数を取得するには、IDvbLogicalChannel2Descriptor::GetCountOfLists メソッドを呼び出してください。
bRecordIndexBYTEinservice レコード番号を、0 から始まるインデックスで指定します。論理チャンネル記述子内の service レコードの数を取得するには、IDvbLogicalChannel2Descriptor::GetListCountOfRecords メソッドを呼び出してください。
pwValWORD*out

論理チャンネル番号を受け取ります。次のいずれかの値になります。

Value Meaning
0
ユーザー選択に適さない service
1 - 999
論理チャンネル番号
1000 - 1023
将来の使用のために予約

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 16 HRESULT GetListRecordLogicalChannelAndVisibility(BYTE bListIndex, BYTE bRecordIndex, WORD* pwVal)

Digital Video Broadcast (DVB) 論理チャンネル記述子から visible_service_flag および logical_channel_number フィールドを取得します。

bListIndexBYTEinチャンネルリストのレコード番号を、0 から始まるインデックスで指定します。論理チャンネル記述子内のチャンネルリストレコードの数を取得するには、GetCountOfLists メソッドを呼び出してください。
bRecordIndexBYTEinservice レコード番号を、0 から始まるインデックスで指定します。論理チャンネル記述子内の service レコードの数を取得するには、GetListCountOfRecords メソッドを呼び出してください。
pwValWORD*outvisible_service_flag(ビット 15 で定義)および logical_channel_number(ビット 0 - 9 で定義)のフィールド値を受け取ります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

visible_service_flag と local_channel_number のフィールド値の組み合わせは、次の意味を持ちます。

visible_service_flag logical_channel_number Meaning
0 0 ユーザーによる選択に適さない service。たとえば、値 0 は、対話型アプリケーションからの選択のみを目的としたデータ service や、ファームウェアダウンロード service に使用される場合があります。
1 0 将来の使用のために予約。
0 1-1024 将来の使用のために予約。
1 1-999 service は service リストおよび Event Schedule Guide (ESG) に表示されます。service には P+/- キー、または数字キー(logical_channel_number の 10 進値と同じ値)からアクセスできます。
1 > 999 予約。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IDvbLogicalChannel2Descriptor "{F69C3747-8A30-4980-998C-01FE7F0BA35A}"
#usecom global IDvbLogicalChannel2Descriptor IID_IDvbLogicalChannel2Descriptor "{}"
#comfunc global IDvbLogicalChannel2Descriptor_GetCountOfLists                           9 var
#comfunc global IDvbLogicalChannel2Descriptor_GetListId                                 10 int,var
#comfunc global IDvbLogicalChannel2Descriptor_GetListNameW                              11 int,int,var
#comfunc global IDvbLogicalChannel2Descriptor_GetListCountryCode                        12 int,var
#comfunc global IDvbLogicalChannel2Descriptor_GetListCountOfRecords                     13 int,var
#comfunc global IDvbLogicalChannel2Descriptor_GetListRecordServiceId                    14 int,int,var
#comfunc global IDvbLogicalChannel2Descriptor_GetListRecordLogicalChannelNumber         15 int,int,var
#comfunc global IDvbLogicalChannel2Descriptor_GetListRecordLogicalChannelAndVisibility  16 int,int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。