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

IDvbServiceListDescriptor

COM
IID05db0d8f-6008-491a-acd3-7090952707d0継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

Digital Video Broadcast (DVB) のサービスリスト記述子からデータを取得するメソッドを実装します。サービスリスト記述子は DVB の network information table (NIT) または bouquet association table (BAT) の一部であり、サービスを service ID と種別ごとに列挙します。

メソッド 5

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

vtbl 3 HRESULT GetTag(BYTE* pbVal)

Digital Video Broadcast (DVB) のサービスリスト記述子を識別するタグを取得します。

pbValBYTE*outサービスリスト記述子のタグを受け取ります。通常、サービスリスト記述子ではこの値は 0x41 です。

戻り値

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

vtbl 4 HRESULT GetLength(BYTE* pbVal)

Digital Video Broadcast (DVB) のサービス記述子から descriptor_length フィールドの値を取得します。

pbValBYTE*out記述子の長さを受け取ります。

戻り値

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

vtbl 5 HRESULT GetCountOfRecords(BYTE* pbVal)

Digital Video Broadcast (DVB) のサービスリスト記述子について、インデックス付けされたサービスレコードの数を取得します。

pbValBYTE*outサービスレコードの数を受け取ります。

戻り値

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

vtbl 6 HRESULT GetRecordServiceId(BYTE bRecordIndex, WORD* pwVal)

Digital Video Broadcast (DVB) のサービスリスト記述子から service_id フィールドの値を取得します。service_id フィールドの値は、MPEG-2 transport stream 内でサービスを一意に識別します。

bRecordIndexBYTEinサービスレコード番号を指定します。0 から始まるインデックスです。論理チャンネル記述子内のレコード数を取得するには、IDvbServiceListDescriptor::GetCountOfRecords メソッドを呼び出します。
pwValWORD*outservice_id フィールドの値を受け取ります。

戻り値

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

vtbl 7 HRESULT GetRecordServiceType(BYTE bRecordIndex, BYTE* pbVal)

Digital Video Broadcast (DVB) のサービス記述子から service_type フィールドの値を取得します。

bRecordIndexBYTEinサービスレコード番号を指定します。0 から始まるインデックスです。論理チャンネル記述子内のレコード数を取得するには、IDvbServiceListDescriptor::GetCountOfRecords メソッドを呼び出します。
pbValBYTE*out

サービス種別を受け取ります。次のいずれかの値になります。

意味
0x00
将来の使用のために予約されています。
0x01
デジタルテレビサービス。(MPEG-2 SD 素材ではこの種別を使用します。)
0x02
デジタルラジオ音声サービス。(MPEG-1 Layer 2 音声素材ではこの種別を使用します。)
0x03
テレテキストサービス。
0x04
NVOD リファレンスサービス。(MPEG-2 SD 素材ではこの種別を使用します。)
0x05
NVOD タイムシフトサービス。(MPEG-2 SD 素材ではこの種別を使用します。)
0x06
モザイクサービス。
0x07 - 0x09
将来の使用のために予約されています。
0x0A
先進コーデックのデジタルラジオ音声サービス。
0x0B
先進コーデックのモザイクサービス。
0x0C
データ放送サービス。
0x0D
Common Interface Usage 用に予約されています (EN 5022)。
0x0E
RCS Map (EN 301 790 [7] を参照)。
0x0F
RCS FLS (EN 301 790 [7] を参照)。
0x10
DVB MHP サービス。
0x11
MPEG-2 HD デジタルテレビサービス。
0x12 - 0x15
将来の使用のために予約されています。
0x16
先進コーデックの SD デジタルテレビサービス。
0x17
先進コーデックの SD NVOD タイムシフトサービス。
0x18
先進コーデックの SD NVOD リファレンスサービス。
0x19
先進コーデックの HD デジタルテレビサービス。
0x1A
先進コーデックの HD NVOD タイムシフトサービス。
0x1B
先進コーデックの HD NVOD リファレンスサービス。
0x1C - 0x7F
将来の使用のために予約されています。
0x80 - 0xFE
ユーザー定義。
0xFF
将来の使用のために予約されています。

戻り値

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

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IDvbServiceListDescriptor "{05DB0D8F-6008-491A-ACD3-7090952707D0}"
#usecom global IDvbServiceListDescriptor IID_IDvbServiceListDescriptor "{}"
#comfunc global IDvbServiceListDescriptor_GetTag                3 var
#comfunc global IDvbServiceListDescriptor_GetLength             4 var
#comfunc global IDvbServiceListDescriptor_GetCountOfRecords     5 var
#comfunc global IDvbServiceListDescriptor_GetRecordServiceId    6 int,var
#comfunc global IDvbServiceListDescriptor_GetRecordServiceType  7 int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。