IDvbLogicalChannel2Descriptor
COM公式ドキュメント
スカンジナビア諸国で使用される Nordig 仕様で定義された形式を用いる Digital Video Broadcast (DVB) MPEG-2 ストリーム内の論理チャンネル記述子 (logical channel descriptor, LCD) からデータを取得するメソッドを実装します。
メソッド 8
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
Digital Video Broadcast (DVB) 論理チャンネル記述子内のチャンネルリストの数を取得します。
| pbVal | BYTE* | out | チャンネルリストの数を受け取ります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Digital Video Broadcast (DVB) 論理チャンネル記述子からチャンネルリストの識別子を取得します。
| bListIndex | BYTE | in | チャンネルリストのレコード番号を、0 から始まるインデックスで指定します。論理チャンネル記述子内のチャンネルリストレコードの数を取得するには、IDvbLogicalChannel2Descriptor::GetListCountOfRecords メソッドを呼び出してください。 |
| pbVal | BYTE* | out | チャンネルリストの識別子を受け取るバイトへのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Digital Video Broadcast (DVB) 論理チャンネル記述子からチャンネルリストの名前を取得します。
| bListIndex | BYTE | in | チャンネルリストのレコード番号を、0 から始まるインデックスで指定します。論理チャンネル記述子内のチャンネルリストレコードの数を取得するには、IDvbLogicalChannel2Descriptor::GetListCountOfRecords メソッドを呼び出してください。 |
| convMode | DVB_STRCONV_MODE | in | 使用する文字列変換モードを指定します。このパラメーターには次のいずれかの値を指定できます。 |
| pbstrName | LPWSTR* | out | チャンネル名を受け取るメモリブロックへのポインター。このメモリの解放は呼び出し側の責任です。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Digital Video Broadcast (DVB) 論理チャンネル記述子内のチャンネルリストについて、3 文字の ISO 3166 国コードを取得します。
| bListIndex | BYTE | in | チャンネルリストのレコード番号を、0 から始まるインデックスで指定します。論理チャンネル記述子内のチャンネルリストレコードの数を取得するには、IDvbLogicalChannel2Descriptor::GetListCountOfRecords メソッドを呼び出してください。 |
| pszCode | BYTE* | out | 国コードを受け取るバッファーへのポインター。このコードは 3 文字の null 終端文字列であるため、バッファーは少なくとも 4 バイトの長さが必要です。このメモリの解放は呼び出し側の責任です。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Digital Video Broadcast (DVB) 論理チャンネル記述子内のチャンネルリストについて、インデックス指定されたレコード数を取得します。
| bChannelListIndex | BYTE | in | チャンネルリスト番号を、0 から始まるインデックスで指定します。論理チャンネル記述子内のチャンネルリストの数を取得するには、IDvbLogicalChannel2Descriptor::GetCountOfLists メソッドを呼び出してください。 |
| pbVal | BYTE* | out | リスト内のチャンネル数を受け取ります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Digital Video Broadcast (DVB) 論理チャンネル記述子から service 識別子を取得します。
| bListIndex | BYTE | in | チャンネルリストのレコード番号を、0 から始まるインデックスで指定します。論理チャンネル記述子内のチャンネルリストレコードの数を取得するには、IDvbLogicalChannel2Descriptor::GetCountOfLists メソッドを呼び出してください。 |
| bRecordIndex | BYTE | in | service レコード番号を、0 から始まるインデックスで指定します。論理チャンネル記述子内の service レコードの数を取得するには、IDvbLogicalChannel2Descriptor::GetListCountOfRecords メソッドを呼び出してください。 |
| pwVal | WORD* | out | service 識別子を受け取ります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Digital Video Broadcast (DVB) 論理チャンネル記述子から logical_channel_number フィールドの値を取得します。logical_channel_number フィールドは、記述子内での service レコードの順序位置を示します。
| bListIndex | BYTE | in | チャンネルリストのレコード番号を、0 から始まるインデックスで指定します。論理チャンネル記述子内のチャンネルリストレコードの数を取得するには、IDvbLogicalChannel2Descriptor::GetCountOfLists メソッドを呼び出してください。 | ||||||||
| bRecordIndex | BYTE | in | service レコード番号を、0 から始まるインデックスで指定します。論理チャンネル記述子内の service レコードの数を取得するには、IDvbLogicalChannel2Descriptor::GetListCountOfRecords メソッドを呼び出してください。 | ||||||||
| pwVal | WORD* | out | 論理チャンネル番号を受け取ります。次のいずれかの値になります。
|
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Digital Video Broadcast (DVB) 論理チャンネル記述子から visible_service_flag および logical_channel_number フィールドを取得します。
| bListIndex | BYTE | in | チャンネルリストのレコード番号を、0 から始まるインデックスで指定します。論理チャンネル記述子内のチャンネルリストレコードの数を取得するには、GetCountOfLists メソッドを呼び出してください。 |
| bRecordIndex | BYTE | in | service レコード番号を、0 から始まるインデックスで指定します。論理チャンネル記述子内の service レコードの数を取得するには、GetListCountOfRecords メソッドを呼び出してください。 |
| pwVal | WORD* | out | visible_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 公式リファレンス: 英語 (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 方式にも切替可。#define global IID_IDvbLogicalChannel2Descriptor "{F69C3747-8A30-4980-998C-01FE7F0BA35A}" #usecom global IDvbLogicalChannel2Descriptor IID_IDvbLogicalChannel2Descriptor "{}" #comfunc global IDvbLogicalChannel2Descriptor_GetCountOfLists 9 sptr #comfunc global IDvbLogicalChannel2Descriptor_GetListId 10 int,sptr #comfunc global IDvbLogicalChannel2Descriptor_GetListNameW 11 int,int,sptr #comfunc global IDvbLogicalChannel2Descriptor_GetListCountryCode 12 int,sptr #comfunc global IDvbLogicalChannel2Descriptor_GetListCountOfRecords 13 int,sptr #comfunc global IDvbLogicalChannel2Descriptor_GetListRecordServiceId 14 int,int,sptr #comfunc global IDvbLogicalChannel2Descriptor_GetListRecordLogicalChannelNumber 15 int,int,sptr #comfunc global IDvbLogicalChannel2Descriptor_GetListRecordLogicalChannelAndVisibility 16 int,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。