mirror of https://github.com/UMSKT/xpmgr.git
2875 lines
81 KiB
Plaintext
2875 lines
81 KiB
Plaintext
//
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//
|
|
// Module Name:
|
|
//
|
|
// DvbSiParser.idl
|
|
//
|
|
// Abstract:
|
|
//
|
|
// Interface definitions for the DVB/ISDB SI parsing functionality
|
|
//
|
|
// Notes:
|
|
//
|
|
// This IDL file is not meant to be built independently, but to be
|
|
// included in a master IDL file with a unique coclass defined for
|
|
// IDvbSiParser. No coclasses need to be defined for the other
|
|
// interfaces. See DTVParse.idl for an example.
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef AM_LOCAL
|
|
#define AM_LOCAL local,
|
|
#define AM_ANNOTATION(_x_) ,annotation(_x_)
|
|
#endif
|
|
|
|
import "oaidl.idl";
|
|
import "ocidl.idl";
|
|
import "wtypes.idl";
|
|
import "mpeg2structs.idl";
|
|
import "mpeg2data.idl";
|
|
import "mpeg2psiparser.idl";
|
|
|
|
|
|
// String conversion mode parameter
|
|
typedef enum
|
|
{
|
|
STRCONV_MODE_DVB = 0,
|
|
STRCONV_MODE_DVB_EMPHASIS,
|
|
STRCONV_MODE_DVB_WITHOUT_EMPHASIS,
|
|
STRCONV_MODE_ISDB,
|
|
} DVB_STRCONV_MODE;
|
|
|
|
|
|
// Forward interface declarations
|
|
interface IPAT;
|
|
interface ICAT;
|
|
interface IPMT;
|
|
interface ITSDT;
|
|
interface IDVB_NIT;
|
|
interface IDVB_SDT;
|
|
interface IISDB_SDT;
|
|
interface IDVB_EIT;
|
|
interface IDVB_EIT2;
|
|
interface IDVB_BAT;
|
|
interface IDVB_RST;
|
|
interface IDVB_ST;
|
|
interface IDVB_TDT;
|
|
interface IDVB_TOT;
|
|
interface IDVB_DIT;
|
|
interface IDVB_SIT;
|
|
interface IISDB_BIT;
|
|
interface IISDB_NBIT;
|
|
interface IISDB_LDT;
|
|
interface IISDB_SDTT;
|
|
interface IISDB_CDT;
|
|
interface IISDB_EMM;
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDvbSiParser Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(B758A7BD-14DC-449d-B828-35909ACB3B1E),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbSiParser : IUnknown
|
|
{
|
|
HRESULT Initialize([in] IUnknown * punkMpeg2Data);
|
|
|
|
HRESULT GetPAT([out] IPAT ** ppPAT);
|
|
|
|
HRESULT GetCAT([in] DWORD dwTimeout,
|
|
[out] ICAT ** ppCAT);
|
|
|
|
HRESULT GetPMT([in] PID pid,
|
|
[in AM_ANNOTATION("__in_opt")] WORD * pwProgramNumber,
|
|
[out] IPMT ** ppPMT);
|
|
|
|
HRESULT GetTSDT([out] ITSDT ** ppTSDT);
|
|
|
|
HRESULT GetNIT([in] TID tableId,
|
|
[in AM_ANNOTATION("__in_opt")] WORD * pwNetworkId,
|
|
[out] IDVB_NIT ** ppNIT);
|
|
|
|
HRESULT GetSDT([in] TID tableId,
|
|
[in AM_ANNOTATION("__in_opt")] WORD * pwTransportStreamId,
|
|
[out] IDVB_SDT ** ppSDT);
|
|
|
|
HRESULT GetEIT([in] TID tableId,
|
|
[in AM_ANNOTATION("__in_opt")] WORD * pwServiceId,
|
|
[out] IDVB_EIT ** ppEIT);
|
|
|
|
HRESULT GetBAT([in AM_ANNOTATION("__in_opt")] WORD * pwBouquetId,
|
|
[out] IDVB_BAT ** ppBAT);
|
|
|
|
HRESULT GetRST([in] DWORD dwTimeout,
|
|
[out] IDVB_RST ** ppRST);
|
|
|
|
HRESULT GetST([in] PID pid,
|
|
[in] DWORD dwTimeout,
|
|
[out] IDVB_ST ** ppST);
|
|
|
|
HRESULT GetTDT([out] IDVB_TDT ** ppTDT);
|
|
|
|
HRESULT GetTOT([out] IDVB_TOT ** ppTOT);
|
|
|
|
HRESULT GetDIT([in] DWORD dwTimeout,
|
|
[out] IDVB_DIT ** ppDIT);
|
|
|
|
HRESULT GetSIT([in] DWORD dwTimeout,
|
|
[out] IDVB_SIT ** ppSIT);
|
|
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDvbSiParser2 Interface
|
|
//
|
|
// Note:
|
|
// When this interface is updated,
|
|
// update also the corresponding
|
|
// inherited IIsdbSiParserX.
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(0AC5525F-F816-42F4-93BA-4C0F32F46E54),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbSiParser2 : IDvbSiParser
|
|
{
|
|
HRESULT GetEIT2([in] TID tableId,
|
|
[in AM_ANNOTATION("__in_opt")] WORD * pwServiceId,
|
|
[in AM_ANNOTATION("__in_opt")] BYTE * pbSegment,
|
|
[out] IDVB_EIT2 ** ppEIT);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IIsdbSiParser2 Interface
|
|
//
|
|
////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(900E4BB7-18CD-453F-98BE-3BE6AA211772),
|
|
pointer_default(unique)
|
|
]
|
|
interface IIsdbSiParser2 : IDvbSiParser2
|
|
{
|
|
HRESULT GetSDT([in] TID tableId,
|
|
[in AM_ANNOTATION("__in_opt")] WORD * pwTransportStreamId,
|
|
[out] IISDB_SDT ** ppSDT);
|
|
|
|
HRESULT GetBIT([in] TID tableId,
|
|
[in AM_ANNOTATION("__in_opt")] WORD * pwOriginalNetworkId,
|
|
[out] IISDB_BIT ** ppBIT);
|
|
|
|
HRESULT GetNBIT([in] TID tableId,
|
|
[in AM_ANNOTATION("__in_opt")] WORD * pwOriginalNetworkId,
|
|
[out] IISDB_NBIT ** ppNBIT);
|
|
|
|
HRESULT GetLDT([in] TID tableId,
|
|
[in AM_ANNOTATION("__in_opt")] WORD * pwOriginalServiceId,
|
|
[out] IISDB_LDT ** ppLDT);
|
|
|
|
HRESULT GetSDTT([in] TID tableId,
|
|
[in AM_ANNOTATION("__in_opt")] WORD * pwTableIdExt,
|
|
[out] IISDB_SDTT ** ppSDTT);
|
|
|
|
HRESULT GetCDT([in] TID tableId,
|
|
[in] BYTE bSectionNumber,
|
|
[in AM_ANNOTATION("__in_opt")] WORD * pwDownloadDataId,
|
|
[out] IISDB_CDT ** ppCDT);
|
|
|
|
HRESULT GetEMM([in] PID pid,
|
|
[in] WORD wTableIdExt,
|
|
[out] IISDB_EMM ** ppEMM);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDVB_NIT Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(C64935F4-29E4-4e22-911A-63F7F55CB097),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDVB_NIT : IUnknown
|
|
{
|
|
HRESULT Initialize([in] ISectionList * pSectionList,
|
|
[in] IMpeg2Data * pMPEGData);
|
|
|
|
HRESULT GetVersionNumber([out] BYTE * pbVal);
|
|
|
|
HRESULT GetNetworkId([out] WORD * pwVal);
|
|
|
|
HRESULT GetCountOfTableDescriptors([out] DWORD * pdwVal);
|
|
|
|
HRESULT GetTableDescriptorByIndex([in] DWORD dwIndex,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetTableDescriptorByTag([in] BYTE bTag,
|
|
[in, out, AM_ANNOTATION("__inout_opt")] DWORD * pdwCookie,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetCountOfRecords([out] DWORD * pdwVal);
|
|
|
|
HRESULT GetRecordTransportStreamId([in] DWORD dwRecordIndex,
|
|
[out] WORD * pwVal);
|
|
|
|
HRESULT GetRecordOriginalNetworkId([in] DWORD dwRecordIndex,
|
|
[out] WORD * pwVal);
|
|
|
|
HRESULT GetRecordCountOfDescriptors([in] DWORD dwRecordIndex,
|
|
[out] DWORD * pdwVal);
|
|
|
|
HRESULT GetRecordDescriptorByIndex([in] DWORD dwRecordIndex,
|
|
[in] DWORD dwIndex,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetRecordDescriptorByTag([in] DWORD dwRecordIndex,
|
|
[in] BYTE bTag,
|
|
[in, out, AM_ANNOTATION("__inout_opt")] DWORD * pdwCookie,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT RegisterForNextTable([in] HANDLE hNextTableAvailable);
|
|
|
|
HRESULT GetNextTable([out] IDVB_NIT ** ppNIT);
|
|
|
|
HRESULT RegisterForWhenCurrent([in] HANDLE hNextTableIsCurrent);
|
|
|
|
HRESULT ConvertNextToCurrent(void);
|
|
|
|
HRESULT GetVersionHash([out] DWORD * pdwVersionHash);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDVB_SDT Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(02CAD8D3-FE43-48e2-90BD-450ED9A8A5FD),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDVB_SDT : IUnknown
|
|
{
|
|
HRESULT Initialize([in] ISectionList * pSectionList,
|
|
[in] IMpeg2Data * pMPEGData);
|
|
|
|
HRESULT GetVersionNumber([out] BYTE * pbVal);
|
|
|
|
HRESULT GetTransportStreamId([out] WORD * pwVal);
|
|
|
|
HRESULT GetOriginalNetworkId([out] WORD * pwVal);
|
|
|
|
HRESULT GetCountOfRecords([out] DWORD * pdwVal);
|
|
|
|
HRESULT GetRecordServiceId([in] DWORD dwRecordIndex,
|
|
[out] WORD * pwVal);
|
|
|
|
HRESULT GetRecordEITScheduleFlag([in] DWORD dwRecordIndex,
|
|
[out] BOOL * pfVal);
|
|
|
|
HRESULT GetRecordEITPresentFollowingFlag([in] DWORD dwRecordIndex,
|
|
[out] BOOL * pfVal);
|
|
|
|
HRESULT GetRecordRunningStatus([in] DWORD dwRecordIndex,
|
|
[out] BYTE * pbVal);
|
|
|
|
HRESULT GetRecordFreeCAMode([in] DWORD dwRecordIndex,
|
|
[out] BOOL * pfVal);
|
|
|
|
HRESULT GetRecordCountOfDescriptors([in] DWORD dwRecordIndex,
|
|
[out] DWORD * pdwVal);
|
|
|
|
HRESULT GetRecordDescriptorByIndex([in] DWORD dwRecordIndex,
|
|
[in] DWORD dwIndex,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetRecordDescriptorByTag([in] DWORD dwRecordIndex,
|
|
[in] BYTE bTag,
|
|
[in, out, AM_ANNOTATION("__inout_opt")] DWORD * pdwCookie,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT RegisterForNextTable([in] HANDLE hNextTableAvailable);
|
|
|
|
HRESULT GetNextTable([out] IDVB_SDT ** ppSDT);
|
|
|
|
HRESULT RegisterForWhenCurrent([in] HANDLE hNextTableIsCurrent);
|
|
|
|
HRESULT ConvertNextToCurrent(void);
|
|
|
|
HRESULT GetVersionHash([out] DWORD * pdwVersionHash);
|
|
};
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IISDB_SDT Interface
|
|
// Support user_defined_flags field
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(3F3DC9A2-BB32-4FB9-AE9E-D856848927A3),
|
|
pointer_default(unique)
|
|
]
|
|
interface IISDB_SDT : IDVB_SDT
|
|
// Additional field for ISDB
|
|
{
|
|
HRESULT GetRecordEITUserDefinedFlags([in] DWORD dwRecordIndex,
|
|
[out] BYTE * pbVal);
|
|
}
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDVB_EIT Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(442DB029-02CB-4495-8B92-1C13375BCE99),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDVB_EIT : IUnknown
|
|
{
|
|
HRESULT Initialize([in] ISectionList * pSectionList,
|
|
[in] IMpeg2Data * pMPEGData);
|
|
|
|
HRESULT GetVersionNumber([out] BYTE * pbVal);
|
|
|
|
HRESULT GetServiceId([out] WORD * pwVal);
|
|
|
|
HRESULT GetTransportStreamId([out] WORD * pwVal);
|
|
|
|
HRESULT GetOriginalNetworkId([out] WORD * pwVal);
|
|
|
|
HRESULT GetSegmentLastSectionNumber([out] BYTE * pbVal);
|
|
|
|
HRESULT GetLastTableId([out] BYTE * pbVal);
|
|
|
|
HRESULT GetCountOfRecords([out] DWORD * pdwVal);
|
|
|
|
HRESULT GetRecordEventId([in] DWORD dwRecordIndex,
|
|
[out] WORD * pwVal);
|
|
|
|
HRESULT GetRecordStartTime([in] DWORD dwRecordIndex,
|
|
[out] MPEG_DATE_AND_TIME * pmdtVal);
|
|
|
|
HRESULT GetRecordDuration([in] DWORD dwRecordIndex,
|
|
[out] MPEG_DURATION * pmdVal);
|
|
|
|
HRESULT GetRecordRunningStatus([in] DWORD dwRecordIndex,
|
|
[out] BYTE * pbVal);
|
|
|
|
HRESULT GetRecordFreeCAMode([in] DWORD dwRecordIndex,
|
|
[out] BOOL * pfVal);
|
|
|
|
HRESULT GetRecordCountOfDescriptors([in] DWORD dwRecordIndex,
|
|
[out] DWORD * pdwVal);
|
|
|
|
HRESULT GetRecordDescriptorByIndex([in] DWORD dwRecordIndex,
|
|
[in] DWORD dwIndex,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetRecordDescriptorByTag([in] DWORD dwRecordIndex,
|
|
[in] BYTE bTag,
|
|
[in, out, AM_ANNOTATION("__inout_opt")] DWORD * pdwCookie,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT RegisterForNextTable([in] HANDLE hNextTableAvailable);
|
|
|
|
HRESULT GetNextTable([out] IDVB_EIT ** ppEIT);
|
|
|
|
HRESULT RegisterForWhenCurrent([in] HANDLE hNextTableIsCurrent);
|
|
|
|
HRESULT ConvertNextToCurrent(void);
|
|
|
|
HRESULT GetVersionHash([out] DWORD * pdwVersionHash);
|
|
};
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDVB_EIT2 Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(61A389E0-9B9E-4ba0-AEEA-5DDD159820EA),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDVB_EIT2 : IDVB_EIT
|
|
{
|
|
HRESULT GetSegmentInfo([out] BYTE * pbTid,
|
|
[out] BYTE * pbSegment);
|
|
|
|
HRESULT GetRecordSection([in] DWORD dwRecordIndex,
|
|
[out] BYTE * pbVal);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDVB_BAT Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(ECE9BB0C-43B6-4558-A0EC-1812C34CD6CA),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDVB_BAT : IUnknown
|
|
{
|
|
HRESULT Initialize([in] ISectionList * pSectionList,
|
|
[in] IMpeg2Data * pMPEGData);
|
|
|
|
HRESULT GetVersionNumber([out] BYTE * pbVal);
|
|
|
|
HRESULT GetBouquetId([out] WORD * pwVal);
|
|
|
|
HRESULT GetCountOfTableDescriptors([out] DWORD * pdwVal);
|
|
|
|
HRESULT GetTableDescriptorByIndex([in] DWORD dwIndex,
|
|
[in] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetTableDescriptorByTag([in] BYTE bTag,
|
|
[in, out, AM_ANNOTATION("__inout_opt")] DWORD * pdwCookie,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetCountOfRecords([out] DWORD * pdwVal);
|
|
|
|
HRESULT GetRecordTransportStreamId([in] DWORD dwRecordIndex,
|
|
[out] WORD * pwVal);
|
|
|
|
HRESULT GetRecordOriginalNetworkId([in] DWORD dwRecordIndex,
|
|
[out] WORD * pwVal);
|
|
|
|
HRESULT GetRecordCountOfDescriptors([in] DWORD dwRecordIndex,
|
|
[out] DWORD * pdwVal);
|
|
|
|
HRESULT GetRecordDescriptorByIndex([in] DWORD dwRecordIndex,
|
|
[in] DWORD dwIndex,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetRecordDescriptorByTag([in] DWORD dwRecordIndex,
|
|
[in] BYTE bTag,
|
|
[in, out, AM_ANNOTATION("__inout_opt")] DWORD * pdwCookie,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT RegisterForNextTable([in] HANDLE hNextTableAvailable);
|
|
|
|
HRESULT GetNextTable([out] IDVB_BAT ** ppBAT);
|
|
|
|
HRESULT RegisterForWhenCurrent([in] HANDLE hNextTableIsCurrent);
|
|
|
|
HRESULT ConvertNextToCurrent(void);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDVB_RST Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(F47DCD04-1E23-4fb7-9F96-B40EEAD10B2B),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDVB_RST : IUnknown
|
|
{
|
|
HRESULT Initialize([in] ISectionList * pSectionList);
|
|
|
|
HRESULT GetCountOfRecords([out] DWORD * pdwVal);
|
|
|
|
HRESULT GetRecordTransportStreamId([in] DWORD dwRecordIndex,
|
|
[out] WORD * pwVal);
|
|
|
|
HRESULT GetRecordOriginalNetworkId([in] DWORD dwRecordIndex,
|
|
[out] WORD * pwVal);
|
|
|
|
HRESULT GetRecordServiceId([in] DWORD dwRecordIndex,
|
|
[out] WORD * pwVal);
|
|
|
|
HRESULT GetRecordEventId([in] DWORD dwRecordIndex,
|
|
[out] WORD * pwVal);
|
|
|
|
HRESULT GetRecordRunningStatus([in] DWORD dwRecordIndex,
|
|
[out] BYTE * pbVal);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDVB_ST Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(4D5B9F23-2A02-45de-BCDA-5D5DBFBFBE62),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDVB_ST : IUnknown
|
|
{
|
|
HRESULT Initialize([in] ISectionList * pSectionList);
|
|
|
|
HRESULT GetDataLength([out] WORD * pwVal);
|
|
|
|
HRESULT GetData([out] BYTE ** ppData);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDVB_TDT Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(0780DC7D-D55C-4aef-97E6-6B75906E2796),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDVB_TDT : IUnknown
|
|
{
|
|
HRESULT Initialize([in] ISectionList * pSectionList);
|
|
|
|
HRESULT GetUTCTime([out] MPEG_DATE_AND_TIME * pmdtVal);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDVB_TOT Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(83295D6A-FABA-4ee1-9B15-8067696910AE),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDVB_TOT : IUnknown
|
|
{
|
|
HRESULT Initialize([in] ISectionList * pSectionList);
|
|
|
|
HRESULT GetUTCTime([out] MPEG_DATE_AND_TIME * pmdtVal);
|
|
|
|
HRESULT GetCountOfTableDescriptors([out] DWORD * pdwVal);
|
|
|
|
HRESULT GetTableDescriptorByIndex([in] DWORD dwIndex,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetTableDescriptorByTag([in] BYTE bTag,
|
|
[in, out, AM_ANNOTATION("__inout_opt")] DWORD * pdwCookie,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDVB_DIT Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(91BFFDF9-9432-410f-86EF-1C228ED0AD70),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDVB_DIT : IUnknown
|
|
{
|
|
HRESULT Initialize([in] ISectionList * pSectionList);
|
|
|
|
HRESULT GetTransitionFlag([out] BOOL * pfVal);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDVB_SIT Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(68CDCE53-8BEA-45c2-9D9D-ACF575A089B5),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDVB_SIT : IUnknown
|
|
{
|
|
HRESULT Initialize([in] ISectionList * pSectionList,
|
|
[in] IMpeg2Data * pMPEGData);
|
|
|
|
HRESULT GetVersionNumber([out] BYTE * pbVal);
|
|
|
|
HRESULT GetCountOfTableDescriptors([out] DWORD * pdwVal);
|
|
|
|
HRESULT GetTableDescriptorByIndex([in] DWORD dwIndex,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetTableDescriptorByTag([in] BYTE bTag,
|
|
[in, out, AM_ANNOTATION("__inout_opt")] DWORD * pdwCookie,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetCountOfRecords([out] DWORD * pdwVal);
|
|
|
|
HRESULT GetRecordServiceId([in] DWORD dwRecordIndex,
|
|
[out] WORD * pwVal);
|
|
|
|
HRESULT GetRecordRunningStatus([in] DWORD dwRecordIndex,
|
|
[out] BYTE * pbVal);
|
|
|
|
HRESULT GetRecordCountOfDescriptors([in] DWORD dwRecordIndex,
|
|
[out] DWORD * pdwVal);
|
|
|
|
HRESULT GetRecordDescriptorByIndex([in] DWORD dwRecordIndex,
|
|
[in] DWORD dwIndex,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetRecordDescriptorByTag([in] DWORD dwRecordIndex,
|
|
[in] BYTE bTag,
|
|
[in, out, AM_ANNOTATION("__inout_opt")] DWORD * pdwCookie,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT RegisterForNextTable([in] HANDLE hNextTableAvailable);
|
|
|
|
HRESULT GetNextTable([in] DWORD dwTimeout,
|
|
[out] IDVB_SIT ** ppSIT);
|
|
|
|
HRESULT RegisterForWhenCurrent([in] HANDLE hNextTableIsCurrent);
|
|
|
|
HRESULT ConvertNextToCurrent(void);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IISDB_BIT Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(537CD71E-0E46-4173-9001-BA043F3E49E2),
|
|
pointer_default(unique)
|
|
]
|
|
interface IISDB_BIT : IUnknown
|
|
{
|
|
HRESULT Initialize([in] ISectionList * pSectionList,
|
|
[in] IMpeg2Data * pMPEGData);
|
|
|
|
HRESULT GetVersionNumber([out] BYTE * pbVal);
|
|
|
|
HRESULT GetOriginalNetworkId([out] WORD * pwVal);
|
|
|
|
HRESULT GetBroadcastViewPropriety([out] BYTE * pbVal);
|
|
|
|
HRESULT GetCountOfTableDescriptors([out] DWORD * pdwVal);
|
|
|
|
HRESULT GetTableDescriptorByIndex([in] DWORD dwIndex,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetTableDescriptorByTag([in] BYTE bTag,
|
|
[in, out, AM_ANNOTATION("__inout_opt")] DWORD * pdwCookie,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetCountOfRecords([out] DWORD * pdwVal);
|
|
|
|
HRESULT GetRecordBroadcasterId([in] DWORD dwRecordIndex,
|
|
[out] BYTE * pbVal);
|
|
|
|
HRESULT GetRecordCountOfDescriptors([in] DWORD dwRecordIndex,
|
|
[out] DWORD * pdwVal);
|
|
|
|
HRESULT GetRecordDescriptorByIndex([in] DWORD dwRecordIndex,
|
|
[in] DWORD dwIndex,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetRecordDescriptorByTag([in] DWORD dwRecordIndex,
|
|
[in] BYTE bTag,
|
|
[in,out, AM_ANNOTATION("__inout_opt")] DWORD * pdwCookie,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetVersionHash([out] DWORD * pdwVersionHash);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IISDB_NBIT Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(1B1863EF-08F1-40B7-A559-3B1EFF8CAFA6),
|
|
pointer_default(unique)
|
|
]
|
|
interface IISDB_NBIT : IUnknown
|
|
{
|
|
HRESULT Initialize([in] ISectionList * pSectionList,
|
|
[in] IMpeg2Data * pMPEGData);
|
|
|
|
HRESULT GetVersionNumber([out] BYTE * pbVal);
|
|
|
|
HRESULT GetOriginalNetworkId([out] WORD * pwVal);
|
|
|
|
HRESULT GetCountOfRecords([out] DWORD * pdwVal);
|
|
|
|
HRESULT GetRecordInformationId([in] DWORD dwRecordIndex,
|
|
[out] WORD * pwVal);
|
|
|
|
HRESULT GetRecordInformationType([in] DWORD dwRecordIndex,
|
|
[out] BYTE * pbVal);
|
|
|
|
HRESULT GetRecordDescriptionBodyLocation([in] DWORD dwRecordIndex,
|
|
[out] BYTE * pbVal);
|
|
|
|
HRESULT GetRecordMessageSectionNumber([in] DWORD dwRecordIndex,
|
|
[out] BYTE * pbVal);
|
|
|
|
HRESULT GetRecordUserDefined([in] DWORD dwRecordIndex,
|
|
[out] BYTE * pbVal);
|
|
|
|
HRESULT GetRecordNumberOfKeys([in] DWORD dwRecordIndex,
|
|
[out] BYTE * pbVal);
|
|
|
|
HRESULT GetRecordKeys([in] DWORD dwRecordIndex,
|
|
[out] BYTE ** pbKeys);
|
|
|
|
HRESULT GetRecordCountOfDescriptors([in] DWORD dwRecordIndex,
|
|
[out] DWORD * pdwVal);
|
|
|
|
HRESULT GetRecordDescriptorByIndex([in] DWORD dwRecordIndex,
|
|
[in] DWORD dwIndex,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetRecordDescriptorByTag([in] DWORD dwRecordIndex,
|
|
[in] BYTE bTag,
|
|
[in, out, AM_ANNOTATION("__inout_opt")] DWORD * pdwCookie,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetVersionHash([out] DWORD * pdwVersionHash);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IISDB_LDT Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(141A546B-02FF-4FB9-A3A3-2F074B74A9A9),
|
|
pointer_default(unique)
|
|
]
|
|
interface IISDB_LDT : IUnknown
|
|
{
|
|
HRESULT Initialize([in] ISectionList * pSectionList,
|
|
[in] IMpeg2Data * pMPEGData);
|
|
|
|
HRESULT GetVersionNumber([out] BYTE * pbVal);
|
|
|
|
HRESULT GetOriginalServiceId([out] WORD * pwVal);
|
|
|
|
HRESULT GetTransportStreamId([out] WORD * pwVal);
|
|
|
|
HRESULT GetOriginalNetworkId([out] WORD * pwVal);
|
|
|
|
HRESULT GetCountOfRecords([out] DWORD * pdwVal);
|
|
|
|
HRESULT GetRecordDescriptionId([in] DWORD dwRecordIndex,
|
|
[out] WORD * pwVal);
|
|
|
|
HRESULT GetRecordCountOfDescriptors([in] DWORD dwRecordIndex,
|
|
[out] DWORD * pdwVal);
|
|
|
|
HRESULT GetRecordDescriptorByIndex([in] DWORD dwRecordIndex,
|
|
[in] DWORD dwIndex,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetRecordDescriptorByTag([in] DWORD dwRecordIndex,
|
|
[in] BYTE bTag,
|
|
[in, out, AM_ANNOTATION("__inout_opt")] DWORD * pdwCookie,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetVersionHash([out] DWORD * pdwVersionHash);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IISDB_SDTT Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(EE60EF2D-813A-4DC7-BF92-EA13DAC85313),
|
|
pointer_default(unique)
|
|
]
|
|
interface IISDB_SDTT : IUnknown
|
|
{
|
|
HRESULT Initialize([in] ISectionList * pSectionList,
|
|
[in] IMpeg2Data * pMPEGData);
|
|
|
|
HRESULT GetVersionNumber([out] BYTE * pbVal);
|
|
|
|
HRESULT GetTableIdExt([out] WORD * pwVal);
|
|
|
|
HRESULT GetTransportStreamId([out] WORD * pwVal);
|
|
|
|
HRESULT GetOriginalNetworkId([out] WORD * pwVal);
|
|
|
|
HRESULT GetServiceId([out] WORD * pwVal);
|
|
|
|
HRESULT GetCountOfRecords([out] DWORD * pdwVal);
|
|
|
|
HRESULT GetRecordGroup([in] DWORD dwRecordIndex,
|
|
[out] BYTE * pbVal);
|
|
|
|
HRESULT GetRecordTargetVersion([in] DWORD dwRecordIndex,
|
|
[out] WORD * pwVal);
|
|
|
|
HRESULT GetRecordNewVersion([in] DWORD dwRecordIndex,
|
|
[out] WORD * pwVal);
|
|
|
|
HRESULT GetRecordDownloadLevel([in] DWORD dwRecordIndex,
|
|
[out] BYTE * pbVal);
|
|
|
|
HRESULT GetRecordVersionIndicator([in] DWORD dwRecordIndex,
|
|
[out] BYTE * pbVal);
|
|
|
|
HRESULT GetRecordScheduleTimeShiftInformation([in] DWORD dwRecordIndex,
|
|
[out] BYTE * pbVal);
|
|
|
|
HRESULT GetRecordCountOfSchedules([in] DWORD dwRecordIndex,
|
|
[out] DWORD * pdwVal);
|
|
|
|
HRESULT GetRecordStartTimeByIndex([in] DWORD dwRecordIndex,
|
|
[in] DWORD dwIndex,
|
|
[out] MPEG_DATE_AND_TIME * pmdtVal);
|
|
|
|
HRESULT GetRecordDurationByIndex([in] DWORD dwRecordIndex,
|
|
[in] DWORD dwIndex,
|
|
[out] MPEG_DURATION * pmdVal);
|
|
|
|
HRESULT GetRecordCountOfDescriptors([in] DWORD dwRecordIndex,
|
|
[out] DWORD * pdwVal);
|
|
|
|
HRESULT GetRecordDescriptorByIndex([in] DWORD dwRecordIndex,
|
|
[in] DWORD dwIndex,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetRecordDescriptorByTag([in] DWORD dwRecordIndex,
|
|
[in] BYTE bTag,
|
|
[in, out, AM_ANNOTATION("__inout_opt")] DWORD * pdwCookie,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetVersionHash([out] DWORD * pdwVersionHash);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IISDB_CDT Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(25FA92C2-8B80-4787-A841-3A0E8F17984B),
|
|
pointer_default(unique)
|
|
]
|
|
interface IISDB_CDT : IUnknown
|
|
{
|
|
HRESULT Initialize([in] ISectionList * pSectionList,
|
|
[in] IMpeg2Data * pMPEGData,
|
|
[in] BYTE bSectionNumber);
|
|
|
|
HRESULT GetVersionNumber([out] BYTE * pbVal);
|
|
|
|
HRESULT GetDownloadDataId([out] WORD * pwVal);
|
|
|
|
HRESULT GetSectionNumber([out] BYTE * pbVal);
|
|
|
|
HRESULT GetOriginalNetworkId([out] WORD * pwVal);
|
|
|
|
HRESULT GetDataType([out] BYTE * pbVal);
|
|
|
|
HRESULT GetCountOfTableDescriptors([out] DWORD * pdwVal);
|
|
|
|
HRESULT GetTableDescriptorByIndex([in] DWORD dwIndex,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetTableDescriptorByTag([in] BYTE bTag,
|
|
[in, out, AM_ANNOTATION("__inout_opt")] DWORD * pdwCookie,
|
|
[out] IGenericDescriptor ** ppDescriptor);
|
|
|
|
HRESULT GetSizeOfDataModule([out] DWORD * pdwVal);
|
|
|
|
HRESULT GetDataModule([out] BYTE ** pbData);
|
|
|
|
HRESULT GetVersionHash([out] DWORD * pdwVersionHash);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IISDB_EMM Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(0EDB556D-43AD-4938-9668-321B2FFECFD3),
|
|
pointer_default(unique)
|
|
]
|
|
interface IISDB_EMM : IUnknown
|
|
{
|
|
HRESULT Initialize([in] ISectionList * pSectionList,
|
|
[in] IMpeg2Data * pMPEGData);
|
|
|
|
HRESULT GetVersionNumber([out] BYTE * pbVal);
|
|
|
|
HRESULT GetTableIdExtension([out] WORD * pwVal);
|
|
|
|
HRESULT GetDataBytes(
|
|
[in, out] WORD * pwBufferLength, // retuen reqired buffer length if pbBuffer is null.
|
|
[out] BYTE * pbBuffer
|
|
);
|
|
|
|
HRESULT GetSharedEmmMessage(
|
|
/*[out]*/ WORD * pwLength,
|
|
/*[out]*/ BYTE ** ppbMessage); // If this method succeeds, the client must release by CoTaskMemFree
|
|
|
|
HRESULT GetIndividualEmmMessage(
|
|
/*[in]*/ IUnknown * pUnknown,
|
|
/*[out]*/ WORD * pwLength,
|
|
/*[out]*/ BYTE ** ppbMessage); // If this method succeeds, the client must release by CoTaskMemFree
|
|
|
|
HRESULT GetVersionHash([out] DWORD * pdwVersionHash);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDvbServiceAttributeDescriptor Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(0F37BD92-D6A1-4854-B950-3A969D27F30E),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbServiceAttributeDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag([out] BYTE * pbVal);
|
|
|
|
HRESULT GetLength([out] BYTE * pbVal);
|
|
|
|
HRESULT GetCountOfRecords([out] BYTE * pbVal);
|
|
|
|
HRESULT GetRecordServiceId([in] BYTE bRecordIndex,
|
|
[out] WORD * pwVal);
|
|
|
|
HRESULT GetRecordNumericSelectionFlag([in] BYTE bRecordIndex,
|
|
[out] BOOL * pfVal);
|
|
|
|
HRESULT GetRecordVisibleServiceFlag([in] BYTE bRecordIndex,
|
|
[out] BOOL * pfVal);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDvbContentIdentifierDescriptor Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
typedef enum
|
|
{
|
|
CRID_LOCATION_IN_DESCRIPTOR = 0x0,
|
|
CRID_LOCATION_IN_CIT = 0x1,
|
|
CRID_LOCATION_DVB_RESERVED1 = 0x2,
|
|
CRID_LOCATION_DVB_RESERVED2 = 0x3,
|
|
|
|
} CRID_LOCATION;
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(05E0C1EA-F661-4053-9FBF-D93B28359838),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbContentIdentifierDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag([out] BYTE * pbVal);
|
|
|
|
HRESULT GetLength([out] BYTE * pbVal);
|
|
|
|
HRESULT GetCountOfRecords([out] BYTE * pbVal);
|
|
|
|
HRESULT GetRecordCrid([in] BYTE bRecordIndex,
|
|
[out] BYTE * pbType,
|
|
[out] BYTE * pbLocation,
|
|
[out] BYTE * pbLength,
|
|
[out, size_is( , *pbLength)] BYTE ** ppbBytes);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDvbDefaultAuthorityDescriptor Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(05EC24D1-3A31-44e7-B408-67C60A352276),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbDefaultAuthorityDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag([out] BYTE * pbVal);
|
|
|
|
HRESULT GetLength([out] BYTE * pbVal);
|
|
|
|
HRESULT GetDefaultAuthority([out] BYTE * pbLength,
|
|
[out, size_is( , *pbLength)] BYTE ** ppbBytes);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDvbSatelliteDeliverySystemDescriptor Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(02F2225A-805B-4ec5-A9A6-F9B5913CD470),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbSatelliteDeliverySystemDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag([out] BYTE * pbVal);
|
|
|
|
HRESULT GetLength([out] BYTE * pbVal);
|
|
|
|
HRESULT GetFrequency([out] DWORD * pdwVal);
|
|
|
|
HRESULT GetOrbitalPosition([out] WORD * pwVal);
|
|
|
|
HRESULT GetWestEastFlag([out] BYTE * pbVal);
|
|
|
|
HRESULT GetPolarization([out] BYTE * pbVal);
|
|
|
|
HRESULT GetModulation([out] BYTE * pbVal);
|
|
|
|
HRESULT GetSymbolRate([out] DWORD * pdwVal);
|
|
|
|
HRESULT GetFECInner([out] BYTE * pbVal);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDvbCableDeliverySystemDescriptor Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(DFB98E36-9E1A-4862-9946-993A4E59017B),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbCableDeliverySystemDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag([out] BYTE * pbVal);
|
|
|
|
HRESULT GetLength([out] BYTE * pbVal);
|
|
|
|
HRESULT GetFrequency([out] DWORD * pdwVal);
|
|
|
|
HRESULT GetFECOuter([out] BYTE * pbVal);
|
|
|
|
HRESULT GetModulation([out] BYTE * pbVal);
|
|
|
|
HRESULT GetSymbolRate([out] DWORD * pdwVal);
|
|
|
|
HRESULT GetFECInner([out] BYTE * pbVal);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDvbTerrestrialDeliverySystemDescriptor Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(ED7E1B91-D12E-420c-B41D-A49D84FE1823),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbTerrestrialDeliverySystemDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag([out] BYTE * pbVal);
|
|
|
|
HRESULT GetLength([out] BYTE * pbVal);
|
|
|
|
HRESULT GetCentreFrequency([out] DWORD * pdwVal);
|
|
|
|
HRESULT GetBandwidth([out] BYTE * pbVal);
|
|
|
|
HRESULT GetConstellation([out] BYTE * pbVal);
|
|
|
|
HRESULT GetHierarchyInformation([out] BYTE * pbVal);
|
|
|
|
HRESULT GetCodeRateHPStream([out] BYTE * pbVal);
|
|
|
|
HRESULT GetCodeRateLPStream([out] BYTE * pbVal);
|
|
|
|
HRESULT GetGuardInterval([out] BYTE * pbVal);
|
|
|
|
HRESULT GetTransmissionMode([out] BYTE * pbVal);
|
|
|
|
HRESULT GetOtherFrequencyFlag([out] BYTE * pbVal);
|
|
};
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDvbTerrestrial2DeliverySystemDescriptor Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(20EE9BE9-CD57-49ab-8F6E-1D07AEB8E482),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbTerrestrial2DeliverySystemDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag([out] BYTE * pbVal);
|
|
|
|
HRESULT GetLength([out] BYTE * pbVal);
|
|
|
|
HRESULT GetTagExtension([out] BYTE * pbVal);
|
|
|
|
HRESULT GetCentreFrequency([out] DWORD * pdwVal);
|
|
|
|
HRESULT GetPLPId([out] BYTE * pbVal);
|
|
|
|
HRESULT GetT2SystemId([out] WORD * pwVal);
|
|
|
|
HRESULT GetMultipleInputMode([out] BYTE * pbVal);
|
|
|
|
HRESULT GetBandwidth([out] BYTE * pbVal);
|
|
|
|
HRESULT GetGuardInterval([out] BYTE * pbVal);
|
|
|
|
HRESULT GetTransmissionMode([out] BYTE * pbVal);
|
|
|
|
HRESULT GetCellId([out] WORD * pwVal);
|
|
|
|
HRESULT GetOtherFrequencyFlag([out] BYTE * pbVal);
|
|
|
|
HRESULT GetTFSFlag([out] BYTE * pbVal);
|
|
|
|
};
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDvbFrequencyListDescriptor Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(1CADB613-E1DD-4512-AFA8-BB7A007EF8B1),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbFrequencyListDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag([out] BYTE * pbVal);
|
|
|
|
HRESULT GetLength([out] BYTE * pbVal);
|
|
|
|
HRESULT GetCodingType([out] BYTE * pbVal);
|
|
|
|
HRESULT GetCountOfRecords([out] BYTE * pbVal);
|
|
|
|
HRESULT GetRecordCentreFrequency([in] BYTE bRecordIndex,
|
|
[out] DWORD * pdwVal);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDvbPrivateDataSpecifierDescriptor Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(5660A019-E75A-4b82-9B4C-ED2256D165A2),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbPrivateDataSpecifierDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag([out] BYTE * pbVal);
|
|
|
|
HRESULT GetLength([out] BYTE * pbVal);
|
|
|
|
HRESULT GetPrivateDataSpecifier([out] DWORD * pdwVal);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDvbLogicalChannelDescriptor Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(CF1EDAFF-3FFD-4cf7-8201-35756ACBF85F),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbLogicalChannelDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag([out] BYTE * pbVal);
|
|
|
|
HRESULT GetLength([out] BYTE * pbVal);
|
|
|
|
HRESULT GetCountOfRecords([out] BYTE * pbVal);
|
|
|
|
HRESULT GetRecordServiceId([in] BYTE bRecordIndex,
|
|
[out] WORD * pwVal);
|
|
|
|
HRESULT GetRecordLogicalChannelNumber([in] BYTE bRecordIndex,
|
|
[out] WORD * pwVal);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDvbLogicalChannelDescriptor2 Interface.
|
|
//
|
|
// Extension to the IDvbLogicalChannelDescriptor
|
|
// interface to also return channel visibility
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(43ACA974-4BE8-4b98-BC17-9EAFD788B1D7),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbLogicalChannelDescriptor2 : IDvbLogicalChannelDescriptor
|
|
{
|
|
HRESULT GetRecordLogicalChannelAndVisibility([in] BYTE bRecordIndex,
|
|
[out] WORD * pwVal);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDvbLogicalChannel2Descriptor Interface
|
|
//
|
|
// Extension to the IDvbLogicalChannelDescriptor2 to implement fields
|
|
// available in version 2 of the DVB Logical Channel descriptor.
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(F69C3747-8A30-4980-998C-01FE7F0BA35A),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbLogicalChannel2Descriptor : IDvbLogicalChannelDescriptor2
|
|
{
|
|
HRESULT GetCountOfLists([out] BYTE * pbVal);
|
|
|
|
HRESULT GetListId([in] BYTE bListIndex,
|
|
[out] BYTE * pbVal);
|
|
|
|
HRESULT GetListNameW([in] BYTE bListIndex,
|
|
[in] DVB_STRCONV_MODE convMode,
|
|
[out] BSTR * pbstrName);
|
|
|
|
HRESULT GetListCountryCode([in] BYTE bListIndex,
|
|
[out AM_ANNOTATION("__out_ecount(4)")] char * pszCode);
|
|
|
|
HRESULT GetListCountOfRecords([in] BYTE bChannelListIndex,
|
|
[out] BYTE * pbVal);
|
|
|
|
HRESULT GetListRecordServiceId([in] BYTE bListIndex,
|
|
[in] BYTE bRecordIndex,
|
|
[out] WORD * pwVal);
|
|
|
|
HRESULT GetListRecordLogicalChannelNumber([in] BYTE bListIndex,
|
|
[in] BYTE bRecordIndex,
|
|
[out] WORD * pwVal);
|
|
|
|
HRESULT GetListRecordLogicalChannelAndVisibility([in] BYTE bListIndex,
|
|
[in] BYTE bRecordIndex,
|
|
[out] WORD * pwVal);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDvbHDSimulcastLogicalChannelDescriptor Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(1EA8B738-A307-4680-9E26-D0A908C824F4),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbHDSimulcastLogicalChannelDescriptor : IDvbLogicalChannelDescriptor2
|
|
{
|
|
// Identical to IDvbLogicalChannelDescriptor2
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDvbDataBroadcastIDDescriptor Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(5F26F518-65C8-4048-91F2-9290F59F7B90),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbDataBroadcastIDDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag([out] BYTE * pbVal);
|
|
|
|
HRESULT GetLength([out] BYTE * pbVal);
|
|
|
|
HRESULT GetDataBroadcastID([out] WORD * pwVal);
|
|
|
|
HRESULT GetIDSelectorBytes([in, out] BYTE * pbLen, [out] BYTE * pbVal);
|
|
};
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDvbDataBroadcastDescriptor Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(D1EBC1D6-8B60-4c20-9CAF-E59382E7C400),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbDataBroadcastDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag([out] BYTE * pbVal);
|
|
|
|
HRESULT GetLength([out] BYTE * pbVal);
|
|
|
|
HRESULT GetDataBroadcastID([out] WORD * pwVal);
|
|
|
|
HRESULT GetComponentTag([out] BYTE * pbVal);
|
|
|
|
HRESULT GetSelectorLength([out] BYTE * pbVal);
|
|
|
|
HRESULT GetSelectorBytes([in, out] BYTE *pbLen, [out] BYTE * pbVal);
|
|
|
|
HRESULT GetLangID([out] ULONG * pulVal);
|
|
|
|
HRESULT GetTextLength([out] BYTE * pbVal);
|
|
|
|
HRESULT GetText([in, out] BYTE *pbLen, [out] BYTE * pbVal);
|
|
};
|
|
|
|
typedef enum
|
|
{
|
|
DESC_LINKAGE_RESERVED0 = 0x00,
|
|
DESC_LINKAGE_INFORMATION,
|
|
DESC_LINKAGE_EPG,
|
|
DESC_LINKAGE_CA_REPLACEMENT,
|
|
DESC_LINKAGE_COMPLETE_NET_BOUQUET_SI,
|
|
DESC_LINKAGE_REPLACEMENT,
|
|
DESC_LINKAGE_DATA,
|
|
DESC_LINKAGE_RESERVED1 = 0x07,
|
|
DESC_LINKAGE_USER = 0x08,
|
|
DESC_LINKAGE_RESERVED2 = 0xFF
|
|
|
|
} DESC_LINKAGE_TYPE;
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDvbLinkageDescriptor Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(1CDF8B31-994A-46fc-ACFD-6A6BE8934DD5),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbLinkageDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag([out] BYTE * pbVal);
|
|
|
|
HRESULT GetLength([out] BYTE * pbVal);
|
|
|
|
HRESULT GetTSId([out] WORD * pwVal);
|
|
|
|
HRESULT GetONId([out] WORD * pwVal);
|
|
|
|
HRESULT GetServiceId([out] WORD * pwVal);
|
|
|
|
HRESULT GetLinkageType([out] BYTE * pbVal);
|
|
|
|
HRESULT GetPrivateDataLength([out] BYTE * pbVal);
|
|
|
|
HRESULT GetPrivateData([in, out] BYTE *pbLen, [out] BYTE * pbData);
|
|
};
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDvbTeletextDescriptor Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(9CD29D47-69C6-4f92-98A9-210AF1B7303A),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbTeletextDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag([out] BYTE * pbVal);
|
|
|
|
HRESULT GetLength([out] BYTE * pbVal);
|
|
|
|
HRESULT GetCountOfRecords([out] BYTE * pbVal);
|
|
|
|
HRESULT GetRecordLangId([in] BYTE bRecordIndex,
|
|
[out] ULONG * pulVal);
|
|
|
|
HRESULT GetRecordTeletextType([in] BYTE bRecordIndex,
|
|
[out] BYTE * pbVal);
|
|
HRESULT GetRecordMagazineNumber([in] BYTE bRecordIndex,
|
|
[out] BYTE * pbVal);
|
|
HRESULT GetRecordPageNumber([in] BYTE bRecordIndex,
|
|
[out] BYTE * pbVal);
|
|
};
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDvbSubtitlingDescriptor Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(9B25FE1D-FA23-4e50-9784-6DF8B26F8A49),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbSubtitlingDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag([out] BYTE * pbVal);
|
|
|
|
HRESULT GetLength([out] BYTE * pbVal);
|
|
|
|
HRESULT GetCountOfRecords([out] BYTE * pbVal);
|
|
|
|
HRESULT GetRecordLangId([in] BYTE bRecordIndex,
|
|
[out] ULONG * pulVal);
|
|
|
|
HRESULT GetRecordSubtitlingType([in] BYTE bRecordIndex,
|
|
[out] BYTE * pbVal);
|
|
HRESULT GetRecordCompositionPageID([in] BYTE bRecordIndex,
|
|
[out] WORD * pwVal);
|
|
HRESULT GetRecordAncillaryPageID([in] BYTE bRecordIndex,
|
|
[out] WORD * pwVal);
|
|
};
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDvbServiceDescriptor Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(F9C7FBCF-E2D6-464d-B32D-2EF526E49290),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbServiceDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag([out] BYTE * pbVal);
|
|
|
|
HRESULT GetLength([out] BYTE * pbVal);
|
|
|
|
HRESULT GetServiceType([out] BYTE * pbVal);
|
|
|
|
HRESULT GetServiceProviderName([out AM_ANNOTATION("__deref_out")] char ** pszName);
|
|
|
|
HRESULT GetServiceProviderNameW([out AM_ANNOTATION("__deref_out")] BSTR* pbstrName);
|
|
|
|
HRESULT GetServiceName([out AM_ANNOTATION("__deref_out")] char ** pszName);
|
|
|
|
HRESULT GetProcessedServiceName([out] BSTR *pbstrName);
|
|
|
|
HRESULT GetServiceNameEmphasized([out] BSTR *pbstrName);
|
|
};
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDvbServiceDescriptor2 Interface
|
|
// Added generic string functions
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(D6C76506-85AB-487C-9B2B-36416511E4A2),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbServiceDescriptor2 : IDvbServiceDescriptor
|
|
{
|
|
HRESULT GetServiceProviderNameW(
|
|
[in] DVB_STRCONV_MODE convMode,
|
|
[out] BSTR * pbstrName);
|
|
|
|
HRESULT GetServiceNameW(
|
|
[in] DVB_STRCONV_MODE convMode,
|
|
[out] BSTR * pbstrName);
|
|
};
|
|
|
|
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IDvbServiceListDescriptor Interface
|
|
// for DVB/ISDB
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(05DB0D8F-6008-491a-ACD3-7090952707D0),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbServiceListDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag([out] BYTE * pbVal);
|
|
|
|
HRESULT GetLength([out] BYTE * pbVal);
|
|
|
|
HRESULT GetCountOfRecords([out] BYTE * pbVal);
|
|
|
|
HRESULT GetRecordServiceId([in] BYTE bRecordIndex,
|
|
[out] WORD * pwVal);
|
|
|
|
HRESULT GetRecordServiceType([in] BYTE bRecordIndex,
|
|
[out] BYTE * pbVal);
|
|
};
|
|
|
|
/////////////////////////////////////////////////
|
|
//
|
|
// IDvbMultilingualServiceNameDescriptor Interface
|
|
//
|
|
/////////////////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(2D80433B-B32C-47ef-987F-E78EBB773E34),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbMultilingualServiceNameDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag([out] BYTE * pbVal);
|
|
|
|
HRESULT GetLength([out] BYTE * pbVal);
|
|
|
|
HRESULT GetCountOfRecords([out] BYTE * pbVal);
|
|
|
|
HRESULT GetRecordLangId ([in] BYTE bRecordIndex,
|
|
[out] ULONG * ulVal);
|
|
|
|
HRESULT GetRecordServiceProviderNameW(
|
|
[in] BYTE bRecordIndex,
|
|
[in] DVB_STRCONV_MODE convMode,
|
|
[out] BSTR * pbstrName);
|
|
|
|
HRESULT GetRecordServiceNameW(
|
|
[in] BYTE bRecordIndex,
|
|
[in] DVB_STRCONV_MODE convMode,
|
|
[out] BSTR * pbstrName);
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IDvbNetworkNameDescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(5B2A80CF-35B9-446C-B3E4-048B761DBC51),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbNetworkNameDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetNetworkName(
|
|
[out AM_ANNOTATION("__deref_out")] char ** pszName
|
|
);
|
|
HRESULT GetNetworkNameW(
|
|
[in] DVB_STRCONV_MODE convMode,
|
|
[out] BSTR * pbstrName);
|
|
};
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IDvbShortEventDescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(B170BE92-5B75-458E-9C6E-B0008231491A),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbShortEventDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLanguageCode(
|
|
[out AM_ANNOTATION("__out_ecount(4)")] char * pszCode
|
|
);
|
|
HRESULT GetEventNameW(
|
|
[in] DVB_STRCONV_MODE convMode,
|
|
[out] BSTR * pbstrName
|
|
);
|
|
HRESULT GetTextW(
|
|
[in] DVB_STRCONV_MODE convMode,
|
|
[out] BSTR * pbstrText
|
|
);
|
|
};
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IDvbExntededEventDescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(C9B22ECA-85F4-499F-B1DB-EFA93A91EE57),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbExtendedEventDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetDescriptorNumber(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLastDescriptorNumber(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLanguageCode(
|
|
[out AM_ANNOTATION("__out_ecount(4)")] char * pszCode
|
|
);
|
|
HRESULT GetCountOfRecords(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetRecordItemW(
|
|
[in] BYTE bRecordIndex,
|
|
[in] DVB_STRCONV_MODE convMode,
|
|
[out] BSTR * pbstrDesc,
|
|
[out] BSTR * pbstrItem
|
|
);
|
|
HRESULT GetConcatenatedItemW(
|
|
[in] IDvbExtendedEventDescriptor * pFollowingDescriptor,
|
|
[in] DVB_STRCONV_MODE convMode,
|
|
[out] BSTR * pbstrDesc,
|
|
[out] BSTR * pbstrItem
|
|
);
|
|
HRESULT GetTextW(
|
|
[in] DVB_STRCONV_MODE convMode,
|
|
[out] BSTR * pbstrText
|
|
);
|
|
HRESULT GetConcatenatedTextW(
|
|
[in] IDvbExtendedEventDescriptor * FollowingDescriptor,
|
|
[in] DVB_STRCONV_MODE convMode,
|
|
[out] BSTR * pbstrText
|
|
);
|
|
HRESULT GetRecordItemRawBytes(
|
|
[in] BYTE bRecordIndex,
|
|
[out] BYTE ** ppbRawItem,
|
|
[out] BYTE * pbItemLength
|
|
);
|
|
};
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IDvbComponentDescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(91E405CF-80E7-457F-9096-1B9D1CE32141),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbComponentDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetStreamContent(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetComponentType(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetComponentTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLanguageCode(
|
|
[out AM_ANNOTATION("__out_ecount(4)")] char * pszCode
|
|
);
|
|
HRESULT GetTextW(
|
|
[in] DVB_STRCONV_MODE convMode,
|
|
[out] BSTR * pbstrText
|
|
);
|
|
};
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IDvbContentDescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(2E883881-A467-412A-9D63-6F2B6DA05BF0),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbContentDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetCountOfRecords(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetRecordContentNibbles(
|
|
[in] BYTE bRecordIndex,
|
|
[out] BYTE * pbValLevel1,
|
|
[out] BYTE * pbValLevel2
|
|
);
|
|
HRESULT GetRecordUserNibbles(
|
|
[in] BYTE bRecordIndex,
|
|
[out] BYTE * pbVal1,
|
|
[out] BYTE * pbVal2
|
|
);
|
|
};
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IDvbParentalRatingDescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(3AD9DDE1-FB1B-4186-937F-22E6B5A72A10),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDvbParentalRatingDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetCountOfRecords(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetRecordRating(
|
|
[in] BYTE bRecordIndex,
|
|
[out AM_ANNOTATION("__out_ecount(4)")] char * pszCountryCode,
|
|
[out] BYTE * pbVal
|
|
);
|
|
};
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IIsdbTerrestrialDeliverySystemDescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(39FAE0A6-D151-44DD-A28A-765DE5991670),
|
|
pointer_default(unique)
|
|
]
|
|
interface IIsdbTerrestrialDeliverySystemDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetAreaCode(
|
|
[out] WORD * pwVal
|
|
);
|
|
HRESULT GetGuardInterval(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetTransmissionMode(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetCountOfRecords(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetRecordFrequency(
|
|
[in] BYTE bRecordIndex,
|
|
[out] DWORD * pdwVal
|
|
);
|
|
};
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IIsdbTSInformationDescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(D7AD183E-38F5-4210-B55F-EC8D601BBD47),
|
|
pointer_default(unique)
|
|
]
|
|
interface IIsdbTSInformationDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetRemoteControlKeyId(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetTSNameW(
|
|
[in] DVB_STRCONV_MODE convMode,
|
|
[out] BSTR * pbstrName
|
|
);
|
|
HRESULT GetCountOfRecords(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetRecordTransmissionTypeInfo(
|
|
[in] BYTE bRecordIndex,
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetRecordNumberOfServices(
|
|
[in] BYTE bRecordIndex,
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetRecordServiceIdByIndex(
|
|
[in] BYTE bRecordIndex,
|
|
[in] BYTE bServiceIndex,
|
|
[out] WORD * pdwVal
|
|
);
|
|
};
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IIsdbDigitalCopyControlDescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(1A28417E-266A-4BB8-A4BD-D782BCFB8161),
|
|
pointer_default(unique)
|
|
]
|
|
interface IIsdbDigitalCopyControlDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetCopyControl(
|
|
[out] BYTE * pbDigitalRecordingControlData,
|
|
[out] BYTE * pbCopyControlType,
|
|
[out] BYTE * pbAPSControlData,
|
|
[out] BYTE * pbMaximumBitrate
|
|
);
|
|
HRESULT GetCountOfRecords(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetRecordCopyControl(
|
|
[in] BYTE bRecordIndex,
|
|
[out] BYTE * pbComponentTag,
|
|
[out] BYTE * pbDigitalRecordingControlData,
|
|
[out] BYTE * pbCopyControlType,
|
|
[out] BYTE * pbAPSControlData,
|
|
[out] BYTE * pbMaximumBitrate
|
|
);
|
|
};
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IIsdbAudioComponentDescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(679D2002-2425-4BE4-A4C7-D6632A574F4D),
|
|
pointer_default(unique)
|
|
]
|
|
interface IIsdbAudioComponentDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetStreamContent(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetComponentType(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetComponentTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetStreamType(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetSimulcastGroupTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetESMultiLingualFlag(
|
|
[out] BOOL * pfVal
|
|
);
|
|
HRESULT GetMainComponentFlag(
|
|
[out] BOOL * pfVal
|
|
);
|
|
HRESULT GetQualityIndicator(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetSamplingRate(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLanguageCode(
|
|
[out AM_ANNOTATION("__out_ecount(4)")] char * pszCode
|
|
);
|
|
HRESULT GetLanguageCode2(
|
|
[out AM_ANNOTATION("__out_ecount(4)")] char * pszCode
|
|
);
|
|
HRESULT GetTextW(
|
|
[in] DVB_STRCONV_MODE convMode,
|
|
[out] BSTR * pbstrText
|
|
);
|
|
};
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IIsdbDataContentDescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(A428100A-E646-4BD6-AA14-6087BDC08CD5),
|
|
pointer_default(unique)
|
|
]
|
|
interface IIsdbDataContentDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetDataComponentId(
|
|
[out] WORD * pwVal
|
|
);
|
|
HRESULT GetEntryComponent(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetSelectorLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetSelectorBytes(
|
|
[in] BYTE bBufLength,
|
|
[out] BYTE * pbBuf
|
|
);
|
|
HRESULT GetCountOfRecords(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetRecordComponentRef(
|
|
[in] BYTE bRecordIndex,
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLanguageCode(
|
|
[out AM_ANNOTATION("__out_ecount(4)")] char * pszCode
|
|
);
|
|
HRESULT GetTextW(
|
|
[in] DVB_STRCONV_MODE convMode,
|
|
[out] BSTR * pbstrText
|
|
);
|
|
};
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IIsdbCAContractInformationDescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(08E18B25-A28F-4E92-821E-4FCED5CC2291),
|
|
pointer_default(unique)
|
|
]
|
|
interface IIsdbCAContractInformationDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetCASystemId(
|
|
[out] WORD * pwVal
|
|
);
|
|
HRESULT GetCAUnitId(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetCountOfRecords(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetRecordComponentTag(
|
|
[in] BYTE bRecordIndex,
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetContractVerificationInfoLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetContractVerificationInfo(
|
|
[in] BYTE bBufLength,
|
|
[out] BYTE * pbBuf
|
|
);
|
|
HRESULT GetFeeNameW(
|
|
[in] DVB_STRCONV_MODE convMode,
|
|
[out] BSTR * pbstrName
|
|
);
|
|
};
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IIsdbEventGroupDescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(94B06780-2E2A-44DC-A966-CC56FDABC6C2),
|
|
pointer_default(unique)
|
|
]
|
|
interface IIsdbEventGroupDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetGroupType(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetCountOfRecords(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetRecordEvent(
|
|
[in] BYTE bRecordIndex,
|
|
[out] WORD * pwServiceId,
|
|
[out] WORD * pwEventId
|
|
);
|
|
HRESULT GetCountOfRefRecords(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetRefRecordEvent(
|
|
[in] BYTE bRecordIndex,
|
|
[out] WORD * pwOriginalNetworkId,
|
|
[out] WORD * pwTransportStreamId,
|
|
[out] WORD * pwServiceId,
|
|
[out] WORD * pwEventId
|
|
);
|
|
};
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IIsdbComponentGroupDescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(A494F17F-C592-47D8-8943-64C9A34BE7B9),
|
|
pointer_default(unique)
|
|
]
|
|
interface IIsdbComponentGroupDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetComponentGroupType(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetCountOfRecords(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetRecordGroupId(
|
|
[in] BYTE bRecordIndex,
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetRecordNumberOfCAUnit(
|
|
[in] BYTE bRecordIndex,
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetRecordCAUnitCAUnitId(
|
|
[in] BYTE bRecordIndex,
|
|
[in] BYTE bCAUnitIndex,
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetRecordCAUnitNumberOfComponents(
|
|
[in] BYTE bRecordIndex,
|
|
[in] BYTE bCAUnitIndex,
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetRecordCAUnitComponentTag(
|
|
[in] BYTE bRecordIndex,
|
|
[in] BYTE bCAUnitIndex,
|
|
[in] BYTE bComponentIndex,
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetRecordTotalBitRate(
|
|
[in] BYTE bRecordIndex,
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetRecordTextW(
|
|
[in] BYTE bRecordIndex,
|
|
[in] DVB_STRCONV_MODE convMode,
|
|
[out] BSTR * pbstrText
|
|
);
|
|
};
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IIsdbSeriesDescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(07EF6370-1660-4F26-87FC-614ADAB24B11),
|
|
pointer_default(unique)
|
|
]
|
|
interface IIsdbSeriesDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetSeriesId(
|
|
[out] WORD * pwVal
|
|
);
|
|
HRESULT GetRepeatLabel(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetProgramPattern(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetExpireDate(
|
|
[out] BOOL * pfValid,
|
|
[out] MPEG_DATE_AND_TIME * pmdtVal
|
|
);
|
|
HRESULT GetEpisodeNumber(
|
|
[out] WORD * pwVal
|
|
);
|
|
HRESULT GetLastEpisodeNumber(
|
|
[out] WORD * pwVal
|
|
);
|
|
HRESULT GetSeriesNameW(
|
|
[in] DVB_STRCONV_MODE convMode,
|
|
[out] BSTR * pbstrName
|
|
);
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IIsdbDownloadContentDescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(5298661E-CB88-4F5F-A1DE-5F440C185B92),
|
|
pointer_default(unique)
|
|
]
|
|
interface IIsdbDownloadContentDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetFlags(
|
|
[out] BOOL * pfReboot,
|
|
[out] BOOL * pfAddOn,
|
|
[out] BOOL * pfCompatibility,
|
|
[out] BOOL * pfModuleInfo,
|
|
[out] BOOL * pfTextInfo
|
|
);
|
|
HRESULT GetComponentSize(
|
|
[out] DWORD * pdwVal
|
|
);
|
|
HRESULT GetDownloadId(
|
|
[out] DWORD * pdwVal
|
|
);
|
|
HRESULT GetTimeOutValueDII(
|
|
[out] DWORD * pdwVal
|
|
);
|
|
HRESULT GetLeakRate(
|
|
[out] DWORD * pdwVal
|
|
);
|
|
HRESULT GetComponentTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetCompatiblityDescriptorLength(
|
|
[out] WORD * pwLength
|
|
);
|
|
HRESULT GetCompatiblityDescriptor(
|
|
[out] BYTE ** ppbData
|
|
);
|
|
HRESULT GetCountOfRecords(
|
|
[out] WORD * pwVal
|
|
);
|
|
HRESULT GetRecordModuleId(
|
|
[in] WORD wRecordIndex,
|
|
[out] WORD * pwVal
|
|
);
|
|
HRESULT GetRecordModuleSize(
|
|
[in] WORD wRecordIndex,
|
|
[out] DWORD * pdwVal
|
|
);
|
|
HRESULT GetRecordModuleInfoLength(
|
|
[in] WORD wRecordIndex,
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetRecordModuleInfo(
|
|
[in] WORD wRecordIndex,
|
|
[out] BYTE ** ppbData
|
|
);
|
|
HRESULT GetTextLanguageCode(
|
|
[out AM_ANNOTATION("__out_ecount(4)")] char * szCode
|
|
);
|
|
HRESULT GetTextW(
|
|
[in] DVB_STRCONV_MODE convMode,
|
|
[out] BSTR * pbstrName
|
|
);
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IIsdbLogoTransmissionDescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(E0103F49-4AE1-4F07-9098-756DB1FA88CD),
|
|
pointer_default(unique)
|
|
]
|
|
interface IIsdbLogoTransmissionDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLogoTransmissionType(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLogoId(
|
|
[out] WORD * pwVal
|
|
);
|
|
HRESULT GetLogoVersion(
|
|
[out] WORD * pwVal
|
|
);
|
|
HRESULT GetDownloadDataId(
|
|
[out] WORD * pwVal
|
|
);
|
|
HRESULT GetLogoCharW(
|
|
[in] DVB_STRCONV_MODE convMode,
|
|
[out] BSTR * pbstrChar
|
|
);
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IIsdbSIParameterDescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(F837DC36-867C-426a-9111-F62093951A45),
|
|
pointer_default(unique)
|
|
]
|
|
interface IIsdbSIParameterDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetParameterVersion(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetUpdateTime(
|
|
[out] MPEG_DATE * pVal
|
|
);
|
|
HRESULT GetRecordNumberOfTable(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetTableId(
|
|
[in] BYTE bRecordIndex,
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetTableDescriptionLength(
|
|
[in] BYTE bRecordIndex,
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetTableDescriptionBytes(
|
|
[in] BYTE bRecordIndex,
|
|
[in, out] BYTE * pbBufferLength,
|
|
[out] BYTE * pbBuffer
|
|
);
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IIsdbEmergencyInformationDescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(BA6FA681-B973-4da1-9207-AC3E7F0341EB),
|
|
pointer_default(unique)
|
|
]
|
|
interface IIsdbEmergencyInformationDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetCountOfRecords(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetServiceId(
|
|
[in] BYTE bRecordIndex,
|
|
[out] WORD * pwVal
|
|
);
|
|
HRESULT GetStartEndFlag(
|
|
[in] BYTE bRecordIndex,
|
|
[out] BYTE * pVal
|
|
);
|
|
HRESULT GetSignalLevel(
|
|
[in] BYTE bRecordIndex,
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetAreaCode(
|
|
[in] BYTE bRecordIndex,
|
|
[out] WORD ** ppwVal, // Upper 12-bits: area_code
|
|
[out] BYTE * pbNumAreaCodes
|
|
);
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IIsdbCADescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(0570AA47-52BC-42ae-8CA5-969F41E81AEA),
|
|
pointer_default(unique)
|
|
]
|
|
interface IIsdbCADescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetCASystemId(
|
|
[out] WORD * pwVal
|
|
);
|
|
HRESULT GetReservedBits(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetCAPID(
|
|
[out] WORD * pwVal
|
|
);
|
|
HRESULT GetPrivateDataBytes(
|
|
[in, out] BYTE * pbBufferLength, // retuen reqired buffer length if pbBuffer is null.
|
|
[out] BYTE * pbBuffer
|
|
);
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IIsdbCAServiceDescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(39CBEB97-FF0B-42a7-9AB9-7B9CFE70A77A),
|
|
pointer_default(unique)
|
|
]
|
|
interface IIsdbCAServiceDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetCASystemId(
|
|
[out] WORD * pwVal
|
|
);
|
|
HRESULT GetCABroadcasterGroupId(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetMessageControl(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetServiceIds(
|
|
[in, out] BYTE * pbNumServiceIds, // retuen reqired number of IDs if pwServiceIds is null.
|
|
[out] WORD * pwServiceIds
|
|
);
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IIsdbHierarchicalTransmissionDescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(B7B3AE90-EE0B-446d-8769-F7E2AA266AA6),
|
|
pointer_default(unique)
|
|
]
|
|
interface IIsdbHierarchicalTransmissionDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLength(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetFutureUse1(
|
|
[out] BYTE * pbVal // 7-bits
|
|
);
|
|
HRESULT GetQualityLevel(
|
|
[out] BYTE * pbVal // 1-bits
|
|
);
|
|
HRESULT GetFutureUse2(
|
|
[out] BYTE * pbVal // 3-bits
|
|
);
|
|
HRESULT GetReferencePid(
|
|
[out] WORD * pwVal // 13-bits
|
|
);
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// stream_identifier_descriptor
|
|
// It has only one byte body (component_tag).
|
|
// We will not define particular interface.
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
cpp_quote("#define COMPONENT_TAG_CAPTION_MIN 0x30")
|
|
cpp_quote("#define COMPONENT_TAG_CAPTION_MAX 0x37")
|
|
cpp_quote("#define COMPONENT_TAG_SUPERIMPOSE_MIN 0x38")
|
|
cpp_quote("#define COMPONENT_TAG_SUPERIMPOSE_MAX 0x3F")
|
|
|
|
interface IPBDA_EIT;
|
|
interface IPBDA_Services;
|
|
////////////////////////////////////
|
|
//
|
|
// IPBDASiParser Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(9DE49A74-ABA2-4a18-93E1-21F17F95C3C3),
|
|
pointer_default(unique)
|
|
]
|
|
interface IPBDASiParser : IUnknown
|
|
{
|
|
HRESULT Initialize([in] IUnknown * punk
|
|
);
|
|
|
|
|
|
HRESULT GetEIT([in] DWORD dwSize ,
|
|
[in] BYTE *pBuffer,
|
|
[out] IPBDA_EIT ** ppEIT
|
|
);
|
|
|
|
HRESULT GetServices ([in] DWORD dwSize ,
|
|
[in] const BYTE *pBuffer,
|
|
[out] IPBDA_Services ** ppServices
|
|
);
|
|
};
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IPBDA_EIT Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
object,
|
|
local,
|
|
uuid(A35F2DEA-098F-4ebd-984C-2BD4C3C8CE0A),
|
|
helpstring("IPBDA_EIT Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IPBDA_EIT : IUnknown
|
|
{
|
|
HRESULT Initialize(
|
|
[in] DWORD size,
|
|
[in] [size_is(size)] const BYTE *pBuffer
|
|
);
|
|
|
|
/* Table level data */
|
|
HRESULT GetTableId(
|
|
[out] BYTE * pbVal
|
|
);
|
|
|
|
HRESULT GetVersionNumber(
|
|
[out] WORD * pwVal
|
|
);
|
|
|
|
HRESULT GetServiceIdx (
|
|
[out] ULONG64 * plwVal
|
|
);
|
|
|
|
|
|
/* Descriptors follow here */
|
|
|
|
HRESULT GetCountOfRecords(
|
|
[out] DWORD * pdwVal
|
|
);
|
|
|
|
HRESULT GetRecordEventId(
|
|
[in] DWORD dwRecordIndex,
|
|
[out] ULONG64 * plwVal
|
|
);
|
|
|
|
HRESULT GetRecordStartTime(
|
|
[in] DWORD dwRecordIndex,
|
|
[out] MPEG_DATE_AND_TIME * pmdtVal
|
|
);
|
|
|
|
HRESULT GetRecordDuration(
|
|
[in] DWORD dwRecordIndex,
|
|
[out] MPEG_DURATION * pmdVal
|
|
);
|
|
|
|
/* Descriptors follow here */
|
|
|
|
HRESULT GetRecordCountOfDescriptors(
|
|
[in] DWORD dwRecordIndex,
|
|
[out] DWORD * pdwVal
|
|
);
|
|
|
|
HRESULT GetRecordDescriptorByIndex(
|
|
[in] DWORD dwRecordIndex,
|
|
[in] DWORD dwIndex,
|
|
[out] IGenericDescriptor ** ppDescriptor
|
|
);
|
|
|
|
HRESULT GetRecordDescriptorByTag(
|
|
[in] DWORD dwRecordIndex,
|
|
[in] BYTE bTag,
|
|
[in, out] DWORD * pdwCookie, // OPTIONAL
|
|
[out] IGenericDescriptor ** ppDescriptor
|
|
);
|
|
|
|
};
|
|
|
|
////////////////////////////////////
|
|
//
|
|
// IPBDA_Services Interface
|
|
//
|
|
////////////////////////////////////
|
|
|
|
[
|
|
object,
|
|
local,
|
|
uuid(944EAB37-EED4-4850-AFD2-77E7EFEB4427),
|
|
helpstring("IPBDA_Services Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IPBDA_Services : IUnknown
|
|
{
|
|
HRESULT Initialize(
|
|
[in] DWORD size,
|
|
[in] [size_is(size)] BYTE *pBuffer
|
|
);
|
|
|
|
HRESULT GetCountOfRecords(
|
|
[out] DWORD * pdwVal
|
|
);
|
|
|
|
HRESULT GetRecordByIndex (
|
|
[in] DWORD dwRecordIndex,
|
|
[out] ULONG64 *pul64ServiceIdx
|
|
);
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IPBDAEntitlementDescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(22632497-0DE3-4587-AADC-D8D99017E760),
|
|
pointer_default(unique)
|
|
]
|
|
interface IPBDAEntitlementDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
|
|
HRESULT GetLength(
|
|
[out] WORD * pwVal
|
|
);
|
|
|
|
HRESULT GetToken (
|
|
[out] BYTE ** ppbTokenBuffer,
|
|
[out] DWORD * pdwTokenLength
|
|
);
|
|
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// IPBDAAttributesDescriptor Interface
|
|
//
|
|
///////////////////////////////////////////////////////////
|
|
[
|
|
AM_LOCAL
|
|
object,
|
|
uuid(313B3620-3263-45a6-9533-968BEFBEAC03),
|
|
pointer_default(unique)
|
|
]
|
|
interface IPBDAAttributesDescriptor : IUnknown
|
|
{
|
|
HRESULT GetTag(
|
|
[out] BYTE * pbVal
|
|
);
|
|
HRESULT GetLength(
|
|
[out] WORD * pwVal
|
|
);
|
|
HRESULT GetAttributePayload (
|
|
[out] BYTE ** ppbAttributeBuffer,
|
|
[out] DWORD * pdwAttributeLength
|
|
);
|
|
|
|
};
|
|
|
|
|