bdadefs.h
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:34k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * bdadefs.h : DirectShow BDA headers for vlc
  3.  *****************************************************************************
  4.  * Copyright (C) 2007 the VideoLAN team
  5.  *
  6.  * Author: Ken Self <kenself(at)optusnet(dot)com(dot)au>
  7.  *
  8.  * This program is free software; you can redistribute it and/or modify
  9.  * it under the terms of the GNU General Public License as published by
  10.  * the Free Software Foundation; either version 2 of the License, or
  11.  * (at your option) any later version.
  12.  *
  13.  * This program is distributed in the hope that it will be useful,
  14.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16.  * GNU General Public License for more details.
  17.  *
  18.  * You should have received a copy of the GNU General Public License
  19.  * along with this program; if not, write to the Free Software
  20.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  21.  *****************************************************************************/
  22. class IATSCChannelTuneRequest;
  23. class IATSCLocator;
  24. class IBDA_DeviceControl;
  25. class IBDA_FrequencyFilter;
  26. class IBDA_SignalStatistics;
  27. class IBDA_Topology;
  28. class IChannelTuneRequest;
  29. class IComponent;
  30. class IComponents;
  31. class IComponentType;
  32. class IComponentTypes;
  33. class IDVBCLocator;
  34. class IDVBSLocator;
  35. class IDVBSTuningSpace;
  36. class IDVBTLocator;
  37. class IDVBTuneRequest;
  38. class IDVBTuningSpace;
  39. class IDVBTuningSpace2;
  40. class IEnumComponents;
  41. class IEnumComponentTypes;
  42. class IEnumTuningSpaces;
  43. class ILocator;
  44. class ISampleGrabber;
  45. class ISampleGrabberCB;
  46. class IScanningTuner;
  47. class ITuner;
  48. class ITuneRequest;
  49. class ITuningSpace;
  50. class ITuningSpaceContainer;
  51. class ITuningSpaces;
  52. class IMpeg2Data;
  53. class IGuideData;
  54. class IGuideDataEvent;
  55. class ISectionList;
  56. class IEnumTuneRequests;
  57. class IEnumGuideDataProperties;
  58. class IGuideDataProperty;
  59. class IMpeg2Stream;
  60. typedef enum BinaryConvolutionCodeRate
  61. {
  62.     BDA_BCC_RATE_NOT_SET = -1,
  63.     BDA_BCC_RATE_NOT_DEFINED=0,
  64.     BDA_BCC_RATE_1_2 = 1,
  65.     BDA_BCC_RATE_2_3,
  66.     BDA_BCC_RATE_3_4,
  67.     BDA_BCC_RATE_3_5,
  68.     BDA_BCC_RATE_4_5,
  69.     BDA_BCC_RATE_5_6,
  70.     BDA_BCC_RATE_5_11,
  71.     BDA_BCC_RATE_7_8,
  72.     BDA_BCC_RATE_MAX,
  73. } BinaryConvolutionCodeRate;
  74. typedef enum ComponentCategory
  75. {
  76.     CategoryNotSet = -1,
  77.     CategoryOther=0,
  78.     CategoryVideo,
  79.     CategoryAudio,
  80.     CategoryText,
  81.     CategoryData,
  82. } ComponentCategory;
  83. typedef enum ComponentStatus
  84. {
  85.     StatusActive,
  86.     StatusInactive,
  87.     StatusUnavailable,
  88. } ComponentStatus;
  89. typedef enum DVBSystemType
  90. {
  91.     DVB_Cable,
  92.     DVB_Terrestrial,
  93.     DVB_Satellite,
  94. } DVBSystemType;
  95. typedef enum FECMethod
  96. {
  97.     BDA_FEC_METHOD_NOT_SET = -1,
  98.     BDA_FEC_METHOD_NOT_DEFINED=0,
  99.     BDA_FEC_VITERBI = 1,
  100.     BDA_FEC_RS_204_188,
  101.     BDA_FEC_MAX,
  102. } FECMethod;
  103. typedef enum GuardInterval
  104. {
  105.     BDA_GUARD_NOT_SET = -1,
  106.     BDA_GUARD_NOT_DEFINED=0,
  107.     BDA_GUARD_1_32 = 1,
  108.     BDA_GUARD_1_16,
  109.     BDA_GUARD_1_8,
  110.     BDA_GUARD_1_4,
  111.     BDA_GUARD_MAX,
  112. } GuardInterval;
  113. typedef enum HierarchyAlpha
  114. {
  115.     BDA_HALPHA_NOT_SET = -1,
  116.     BDA_HALPHA_NOT_DEFINED=0,
  117.     BDA_HALPHA_1 = 1,
  118.     BDA_HALPHA_2,
  119.     BDA_HALPHA_4,
  120.     BDA_HALPHA_MAX,
  121. } HierarchyAlpha;
  122. typedef enum ModulationType
  123. {
  124.     BDA_MOD_NOT_SET = -1,
  125.     BDA_MOD_NOT_DEFINED=0,
  126.     BDA_MOD_16QAM = 1,
  127.     BDA_MOD_32QAM,
  128.     BDA_MOD_64QAM,
  129.     BDA_MOD_80QAM,
  130.     BDA_MOD_96QAM,
  131.     BDA_MOD_112QAM,
  132.     BDA_MOD_128QAM,
  133.     BDA_MOD_160QAM,
  134.     BDA_MOD_192QAM,
  135.     BDA_MOD_224QAM,
  136.     BDA_MOD_256QAM,
  137.     BDA_MOD_320QAM,
  138.     BDA_MOD_384QAM,
  139.     BDA_MOD_448QAM,
  140.     BDA_MOD_512QAM,
  141.     BDA_MOD_640QAM,
  142.     BDA_MOD_768QAM,
  143.     BDA_MOD_896QAM,
  144.     BDA_MOD_1024QAM,
  145.     BDA_MOD_QPSK,
  146.     BDA_MOD_BPSK,
  147.     BDA_MOD_OQPSK,
  148.     BDA_MOD_8VSB,
  149.     BDA_MOD_16VSB,
  150.     BDA_MOD_ANALOG_AMPLITUDE,
  151.     BDA_MOD_ANALOG_FREQUENCY,
  152.     BDA_MOD_MAX,
  153. } ModulationType;
  154. typedef enum Polarisation
  155. {
  156.     BDA_POLARISATION_NOT_SET     = -1,
  157.     BDA_POLARISATION_NOT_DEFINED = 0,
  158.     BDA_POLARISATION_LINEAR_H    = 1,
  159.     BDA_POLARISATION_LINEAR_V    = 2,
  160.     BDA_POLARISATION_CIRCULAR_L  = 3,
  161.     BDA_POLARISATION_CIRCULAR_R  = 4,
  162.     BDA_POLARISATION_MAX         = 5
  163. } Polarisation;
  164. typedef enum SpectralInversion
  165. {
  166.     BDA_SPECTRAL_INVERSION_NOT_SET = -1,
  167.     BDA_SPECTRAL_INVERSION_NOT_DEFINED = 0,
  168.     BDA_SPECTRAL_INVERSION_AUTOMATIC = 1,
  169.     BDA_SPECTRAL_INVERSION_NORMAL,
  170.     BDA_SPECTRAL_INVERSION_INVERTED,
  171.     BDA_SPECTRAL_INVERSION_MAX
  172. } SpectralInversion;
  173. typedef enum TransmissionMode
  174. {
  175.     BDA_XMIT_MODE_NOT_SET = -1,
  176.     BDA_XMIT_MODE_NOT_DEFINED=0,
  177.     BDA_XMIT_MODE_2K = 1,
  178.     BDA_XMIT_MODE_8K,
  179.     BDA_XMIT_MODE_MAX,
  180. } TransmissionMode;
  181. typedef struct _BDANODE_DESCRIPTOR
  182. {
  183.     ULONG               ulBdaNodeType;
  184.     GUID                guidFunction;
  185.     GUID                guidName;
  186. } BDANODE_DESCRIPTOR, *PBDANODE_DESCRIPTOR;
  187. typedef struct _BDA_TEMPLATE_CONNECTION
  188. {
  189.     ULONG   FromNodeType;
  190.     ULONG   FromNodePinType;
  191.     ULONG   ToNodeType;
  192.     ULONG   ToNodePinType;
  193. } BDA_TEMPLATE_CONNECTION, *PBDA_TEMPLATE_CONNECTION;
  194. typedef struct _BDA_TEMPLATE_PIN_JOINT
  195. {
  196.     ULONG   uliTemplateConnection;
  197.     ULONG   ulcInstancesMax;
  198. } BDA_TEMPLATE_PIN_JOINT, *PBDA_TEMPLATE_PIN_JOINT;
  199. class IComponent : public IDispatch
  200. {
  201. public:
  202.     virtual HRESULT __stdcall get_Type( IComponentType** p_p_cpt_type )=0;
  203.     virtual HRESULT __stdcall put_Type( IComponentType* p_cpt_type )=0;
  204.     virtual HRESULT __stdcall get_DescLangID( long* p_l_language )=0;
  205.     virtual HRESULT __stdcall put_DescLangID( long l_language )=0;
  206.     virtual HRESULT __stdcall get_Status( ComponentStatus* p_status )=0;
  207.     virtual HRESULT __stdcall put_Status( ComponentStatus status )=0;
  208.     virtual HRESULT __stdcall get_Description( BSTR* p_bstr_desc )=0;
  209.     virtual HRESULT __stdcall put_Description( BSTR bstr_desc )=0;
  210.     virtual HRESULT __stdcall Clone( IComponent** p_p_component )=0;
  211. };
  212. class IComponents : public IDispatch
  213. {
  214. public:
  215.     virtual HRESULT __stdcall get_Count( long* pl_count )=0;
  216.     virtual HRESULT __stdcall get__NewEnum( IEnumVARIANT** p_p_enum )=0;
  217.     virtual HRESULT __stdcall EnumComponents( IEnumComponents** p_p_enum )=0;
  218.     virtual HRESULT __stdcall get_Item( VARIANT Index,
  219.         IComponent** p_p_component )=0;
  220.     virtual HRESULT __stdcall Add( IComponent* p_component,
  221.         VARIANT* v_index )=0;
  222.     virtual HRESULT __stdcall Remove( VARIANT v_index )=0;
  223.     virtual HRESULT __stdcall Clone( IComponents** p_p_cpts )=0;
  224. };
  225. class IComponentType : public IDispatch
  226. {
  227. public:
  228.     virtual HRESULT __stdcall get_Category( ComponentCategory* p_category )=0;
  229.     virtual HRESULT __stdcall put_Category( ComponentCategory category )=0;
  230.     virtual HRESULT __stdcall get_MediaMajorType( BSTR* p_bstr_major_type )=0;
  231.     virtual HRESULT __stdcall put_MediaMajorType( BSTR bstr_major_type )=0;
  232.     virtual HRESULT __stdcall get__MediaMajorType( GUID* p_guid_major_type )=0;
  233.     virtual HRESULT __stdcall put__MediaMajorType( REFCLSID guid_major_type )=0;
  234.     virtual HRESULT __stdcall get_MediaSubType( BSTR* p_bstr_sub_type )=0;
  235.     virtual HRESULT __stdcall put_MediaSubType( BSTR bstr_sub_type )=0;
  236.     virtual HRESULT __stdcall get__MediaSubType( GUID* p_guid_sub_type )=0;
  237.     virtual HRESULT __stdcall put__MediaSubType( REFCLSID guid_sub_type )=0;
  238.     virtual HRESULT __stdcall get_MediaFormatType( BSTR* p_bstr_format_type )=0;
  239.     virtual HRESULT __stdcall put_MediaFormatType( BSTR bstr_format_type )=0;
  240.     virtual HRESULT __stdcall get__MediaFormatType(
  241.         GUID* p_guid_format_type )=0;
  242.     virtual HRESULT __stdcall put__MediaFormatType(
  243.         REFCLSID guid_format_type )=0;
  244.     virtual HRESULT __stdcall get_MediaType( AM_MEDIA_TYPE* p_media_type )=0;
  245.     virtual HRESULT __stdcall put_MediaType( AM_MEDIA_TYPE* p_media_type )=0;
  246.     virtual HRESULT __stdcall Clone( IComponentType** p_p_cpt_type )=0;
  247. };
  248. class IComponentTypes : public IDispatch
  249. {
  250. public:
  251.     virtual HRESULT __stdcall get_Count( long* l_count )=0;
  252.     virtual HRESULT __stdcall get__NewEnum( IEnumVARIANT** p_p_enum )=0;
  253.     virtual HRESULT __stdcall EnumComponentTypes(
  254.         IEnumComponentTypes** p_p_enum )=0;
  255.     virtual HRESULT __stdcall get_Item( VARIANT v_index,
  256.         IComponentType** p_p_cpt_type )=0;
  257.     virtual HRESULT __stdcall put_Item( VARIANT v_index,
  258.         IComponentType* p_cpt_type )=0;
  259.     virtual HRESULT __stdcall Add( IComponentType* p_cpt_type,
  260.         VARIANT* v_index )=0;
  261.     virtual HRESULT __stdcall Remove( VARIANT v_index )=0;
  262.     virtual HRESULT __stdcall Clone( IComponentTypes** p_p_cpt_types )=0;
  263. };
  264. class IEnumComponents : public IUnknown
  265. {
  266. public:
  267.     virtual HRESULT __stdcall Next( ULONG num_elem, IComponent** p_p_elem,
  268.         ULONG* p_num_elem_fetch )=0;
  269.     virtual HRESULT __stdcall Skip( ULONG num_elem )=0;
  270.     virtual HRESULT __stdcall Reset( void )=0;
  271.     virtual HRESULT __stdcall Clone( IEnumComponents** p_p_enum )=0;
  272. };
  273. class IEnumComponentTypes : public IUnknown
  274. {
  275. public:
  276.     virtual HRESULT __stdcall Next( ULONG num_elem, IComponentType** p_p_elem,
  277.         ULONG* p_num_elem_fetch )=0;
  278.     virtual HRESULT __stdcall Skip( ULONG num_elem )=0;
  279.     virtual HRESULT __stdcall Reset( void )=0;
  280.     virtual HRESULT __stdcall Clone( IEnumComponentTypes** p_p_enum )=0;
  281. };
  282. class IEnumTuningSpaces : public IUnknown
  283. {
  284. public:
  285.     virtual HRESULT __stdcall Next( ULONG l_num_elem,
  286.         ITuningSpace** p_p_tuning_space, ULONG* pl_num_elem_fetched )=0;
  287.     virtual HRESULT __stdcall Skip( ULONG l_num_elem )=0;
  288.     virtual HRESULT __stdcall Reset( void )=0;
  289.     virtual HRESULT __stdcall Clone( IEnumTuningSpaces** p_p_enum )=0;
  290. };
  291. class ITuner : public IUnknown
  292. {
  293. public:
  294.     virtual HRESULT __stdcall get_TuningSpace(
  295.         ITuningSpace** p_p_tuning_space )=0;
  296.     virtual HRESULT __stdcall put_TuningSpace( ITuningSpace* p_tuning_space )=0;
  297.     virtual HRESULT __stdcall EnumTuningSpaces(
  298.        IEnumTuningSpaces** p_p_enum )=0;
  299.     virtual HRESULT __stdcall get_TuneRequest(
  300.         ITuneRequest** p_p_tune_request )=0;
  301.     virtual HRESULT __stdcall put_TuneRequest( ITuneRequest* p_tune_request )=0;
  302.     virtual HRESULT __stdcall Validate( ITuneRequest* p_tune_request )=0;
  303.     virtual HRESULT __stdcall get_PreferredComponentTypes(
  304.         IComponentTypes** p_p_cpt_types )=0;
  305.     virtual HRESULT __stdcall put_PreferredComponentTypes(
  306.         IComponentTypes* p_cpt_types )=0;
  307.     virtual HRESULT __stdcall get_SignalStrength( long* l_sig_strength )=0;
  308.     virtual HRESULT __stdcall TriggerSignalEvents( long l_interval )=0;
  309. };
  310. class ISampleGrabber : public IUnknown
  311. {
  312. public:
  313.     virtual HRESULT __stdcall SetOneShot( BOOL b_one_shot )=0;
  314.     virtual HRESULT __stdcall SetMediaType(
  315.         const AM_MEDIA_TYPE* p_media_type )=0;
  316.     virtual HRESULT __stdcall GetConnectedMediaType(
  317.         AM_MEDIA_TYPE* p_media_type )=0;
  318.     virtual HRESULT __stdcall SetBufferSamples( BOOL b_buffer_samples )=0;
  319.     virtual HRESULT __stdcall GetCurrentBuffer( long* p_buff_size,
  320.         long* p_buffer )=0;
  321.     virtual HRESULT __stdcall GetCurrentSample( IMediaSample** p_p_sample )=0;
  322.     virtual HRESULT __stdcall SetCallback( ISampleGrabberCB* pf_callback,
  323.         long l_callback_type )=0;
  324. };
  325. class ISampleGrabberCB : public IUnknown
  326. {
  327. public:
  328.     virtual HRESULT __stdcall SampleCB( double d_sample_time,
  329.         IMediaSample* p_sample )=0;
  330.     virtual HRESULT __stdcall BufferCB( double d_sample_time, BYTE *p_buffer,
  331.         long l_bufferLen )=0;
  332. };
  333. class IScanningTuner : public ITuner
  334. {
  335. public:
  336.     virtual HRESULT __stdcall SeekUp( void )=0;
  337.     virtual HRESULT __stdcall SeekDown( void )=0;
  338.     virtual HRESULT __stdcall ScanDown( long l_pause )=0;
  339.     virtual HRESULT __stdcall ScanUp( long l_pause )=0;
  340.     virtual HRESULT __stdcall AutoProgram( void )=0;
  341. };
  342. class ITuneRequest : public IDispatch
  343. {
  344. public:
  345.     virtual HRESULT __stdcall get_TuningSpace(
  346.         ITuningSpace** p_p_tuning_space )=0;
  347.     virtual HRESULT __stdcall get_Components( IComponents** p_p_components )=0;
  348.     virtual HRESULT __stdcall Clone( ITuneRequest** p_p_tune_request )=0;
  349.     virtual HRESULT __stdcall get_Locator( ILocator** p_p_locator )=0;
  350.     virtual HRESULT __stdcall put_Locator( ILocator* p_locator )=0;
  351. };
  352. class IChannelTuneRequest : public ITuneRequest
  353. {
  354. public:
  355.     virtual HRESULT __stdcall get_Channel( long* pl_channel )=0;
  356.     virtual HRESULT __stdcall put_Channel( long l_channel )=0;
  357. };
  358. class IATSCChannelTuneRequest : public IChannelTuneRequest
  359. {
  360. public:
  361.     virtual HRESULT __stdcall get_MinorChannel( long* pl_minor_channel )=0;
  362.     virtual HRESULT __stdcall put_MinorChannel( long l_minor_channel )=0;
  363. };
  364. class IDVBTuneRequest : public ITuneRequest
  365. {
  366. public:
  367.     virtual HRESULT __stdcall get_ONID( long* pl_onid )=0;
  368.     virtual HRESULT __stdcall put_ONID( long l_onid )=0;
  369.     virtual HRESULT __stdcall get_TSID( long* pl_tsid )=0;
  370.     virtual HRESULT __stdcall put_TSID( long l_tsid )=0;
  371.     virtual HRESULT __stdcall get_SID( long* pl_sid )=0;
  372.     virtual HRESULT __stdcall put_SID( long l_sid )=0;
  373. };
  374. class ILocator : public IDispatch
  375. {
  376. public:
  377.     virtual HRESULT __stdcall get_CarrierFrequency( long* pl_frequency )=0;
  378.     virtual HRESULT __stdcall put_CarrierFrequency( long l_frequency )=0;
  379.     virtual HRESULT __stdcall get_InnerFEC( FECMethod* FEC )=0;
  380.     virtual HRESULT __stdcall put_InnerFEC( FECMethod FEC )=0;
  381.     virtual HRESULT __stdcall get_InnerFECRate(
  382.         BinaryConvolutionCodeRate* FEC )=0;
  383.     virtual HRESULT __stdcall put_InnerFECRate(
  384.         BinaryConvolutionCodeRate FEC )=0;
  385.     virtual HRESULT __stdcall get_OuterFEC( FECMethod* FEC )=0;
  386.     virtual HRESULT __stdcall put_OuterFEC( FECMethod FEC )=0;
  387.     virtual HRESULT __stdcall get_OuterFECRate(
  388.         BinaryConvolutionCodeRate* FEC )=0;
  389.     virtual HRESULT __stdcall put_OuterFECRate(
  390.         BinaryConvolutionCodeRate FEC )=0;
  391.     virtual HRESULT __stdcall get_Modulation( ModulationType* p_modulation )=0;
  392.     virtual HRESULT __stdcall put_Modulation( ModulationType modulation )=0;
  393.     virtual HRESULT __stdcall get_SymbolRate( long* pl_rate )=0;
  394.     virtual HRESULT __stdcall put_SymbolRate( long l_rate )=0;
  395.     virtual HRESULT __stdcall Clone( ILocator** p_p_locator )=0;
  396. };
  397. class IATSCLocator : public ILocator
  398. {
  399. public:
  400.     virtual HRESULT __stdcall get_PhysicalChannel( long* pl_phys_channel )=0;
  401.     virtual HRESULT __stdcall put_PhysicalChannel( long l_phys_channel )=0;
  402.     virtual HRESULT __stdcall get_TSID( long* pl_tsid )=0;
  403.     virtual HRESULT __stdcall put_TSID( long l_tsid )=0;
  404. };
  405. class IDVBCLocator : public ILocator
  406. {
  407. public:
  408. };
  409. class IDVBSLocator : public ILocator
  410. {
  411. public:
  412.     virtual HRESULT __stdcall get_SignalPolarisation(
  413.         Polarisation* p_polarisation )=0;
  414.     virtual HRESULT __stdcall put_SignalPolarisation(
  415.         Polarisation polarisation )=0;
  416.     virtual HRESULT __stdcall get_WestPosition( VARIANT_BOOL* pb_west )=0;
  417.     virtual HRESULT __stdcall put_WestPosition( VARIANT_BOOL b_west )=0;
  418.     virtual HRESULT __stdcall get_OrbitalPosition( long* pl_longitude )=0;
  419.     virtual HRESULT __stdcall put_OrbitalPosition( long l_longitude )=0;
  420.     virtual HRESULT __stdcall get_Azimuth( long* pl_azimuth )=0;
  421.     virtual HRESULT __stdcall put_Azimuth( long l_azimuth )=0;
  422.     virtual HRESULT __stdcall get_Elevation( long* pl_elevation )=0;
  423.     virtual HRESULT __stdcall put_Elevation( long l_elevation )=0;
  424. };
  425. class IDVBTLocator : public ILocator
  426. {
  427. public:
  428.     virtual HRESULT __stdcall get_Bandwidth( long* pl_bandwidth )=0;
  429.     virtual HRESULT __stdcall put_Bandwidth( long l_bandwidth )=0;
  430.     virtual HRESULT __stdcall get_LPInnerFEC( FECMethod* FEC )=0;
  431.     virtual HRESULT __stdcall put_LPInnerFEC( FECMethod FEC )=0;
  432.     virtual HRESULT __stdcall get_LPInnerFECRate(
  433.         BinaryConvolutionCodeRate* FEC )=0;
  434.     virtual HRESULT __stdcall put_LPInnerFECRate(
  435.         BinaryConvolutionCodeRate FEC )=0;
  436.     virtual HRESULT __stdcall get_HAlpha( HierarchyAlpha* Alpha )=0;
  437.     virtual HRESULT __stdcall put_HAlpha( HierarchyAlpha Alpha )=0;
  438.     virtual HRESULT __stdcall get_Guard( GuardInterval* GI )=0;
  439.     virtual HRESULT __stdcall put_Guard( GuardInterval GI )=0;
  440.     virtual HRESULT __stdcall get_Mode( TransmissionMode* mode )=0;
  441.     virtual HRESULT __stdcall put_Mode( TransmissionMode mode )=0;
  442.     virtual HRESULT __stdcall get_OtherFrequencyInUse(
  443.         VARIANT_BOOL* OtherFrequencyInUseVal )=0;
  444.     virtual HRESULT __stdcall put_OtherFrequencyInUse(
  445.         VARIANT_BOOL OtherFrequencyInUseVal )=0;
  446. };
  447. class ITuningSpace : public IDispatch
  448. {
  449. public:
  450.     virtual HRESULT __stdcall get_UniqueName( BSTR* p_bstr_name )=0;
  451.     virtual HRESULT __stdcall put_UniqueName( BSTR Name )=0;
  452.     virtual HRESULT __stdcall get_FriendlyName( BSTR* p_bstr_name )=0;
  453.     virtual HRESULT __stdcall put_FriendlyName( BSTR bstr_name )=0;
  454.     virtual HRESULT __stdcall get_CLSID( BSTR* bstr_clsid )=0;
  455.     virtual HRESULT __stdcall get_NetworkType( BSTR* p_bstr_network_guid )=0;
  456.     virtual HRESULT __stdcall put_NetworkType( BSTR bstr_network_guid )=0;
  457.     virtual HRESULT __stdcall get__NetworkType( GUID* p_guid_network_guid )=0;
  458.     virtual HRESULT __stdcall put__NetworkType( REFCLSID clsid_network_guid )=0;
  459.     virtual HRESULT __stdcall CreateTuneRequest(
  460.         ITuneRequest** p_p_tune_request )=0;
  461.     virtual HRESULT __stdcall EnumCategoryGUIDs( IEnumGUID** p_p_enum )=0;
  462.     virtual HRESULT __stdcall EnumDeviceMonikers( IEnumMoniker** p_p_enum )=0;
  463.     virtual HRESULT __stdcall get_DefaultPreferredComponentTypes(
  464.         IComponentTypes** p_p_cpt_types )=0;
  465.     virtual HRESULT __stdcall put_DefaultPreferredComponentTypes(
  466.         IComponentTypes* p_cpt_types )=0;
  467.     virtual HRESULT __stdcall get_FrequencyMapping( BSTR* p_bstr_mapping )=0;
  468.     virtual HRESULT __stdcall put_FrequencyMapping( BSTR bstr_mapping )=0;
  469.     virtual HRESULT __stdcall get_DefaultLocator( ILocator** p_p_locator )=0;
  470.     virtual HRESULT __stdcall put_DefaultLocator( ILocator* p_locator )=0;
  471.     virtual HRESULT __stdcall Clone( ITuningSpace** p_p_tuning_space )=0;
  472. };
  473. class IDVBTuningSpace : public ITuningSpace
  474. {
  475. public:
  476.     virtual HRESULT __stdcall get_SystemType( DVBSystemType* p_sys_type )=0;
  477.     virtual HRESULT __stdcall put_SystemType( DVBSystemType sys_type )=0;
  478. };
  479. class IDVBTuningSpace2 : public IDVBTuningSpace
  480. {
  481. public:
  482.     virtual HRESULT __stdcall get_NetworkID( long* p_l_network_id )=0;
  483.     virtual HRESULT __stdcall put_NetworkID( long l_network_id )=0;
  484. };
  485. class IDVBSTuningSpace : public IDVBTuningSpace2
  486. {
  487. public:
  488.     virtual HRESULT __stdcall get_LowOscillator( long* p_l_low_osc )=0;
  489.     virtual HRESULT __stdcall put_LowOscillator( long l_low_osc )=0;
  490.     virtual HRESULT __stdcall get_HighOscillator( long* p_l_high_osc )=0;
  491.     virtual HRESULT __stdcall put_HighOscillator( long l_high_osc )=0;
  492.     virtual HRESULT __stdcall get_LNBSwitch( long* p_l_lnb_switch )=0;
  493.     virtual HRESULT __stdcall put_LNBSwitch( long l_lnb_switch )=0;
  494.     virtual HRESULT __stdcall get_InputRange( BSTR* p_bstr_input_range )=0;
  495.     virtual HRESULT __stdcall put_InputRange( BSTR bstr_input_range )=0;
  496.     virtual HRESULT __stdcall get_SpectralInversion(
  497.         SpectralInversion* p_spectral_inv )=0;
  498.     virtual HRESULT __stdcall put_SpectralInversion(
  499.         SpectralInversion spectral_inv )=0;
  500. };
  501. class ITuningSpaceContainer : public IDispatch
  502. {
  503. public:
  504.     virtual HRESULT __stdcall get_Count( long* l_count )=0;
  505.     virtual HRESULT __stdcall get__NewEnum( IEnumVARIANT** p_p_enum )=0;
  506.     virtual HRESULT __stdcall get_Item( VARIANT v_index,
  507.         ITuningSpace** p_p_tuning_space )=0;
  508.     virtual HRESULT __stdcall put_Item( VARIANT v_index,
  509.         ITuningSpace* p_tuning_space )=0;
  510.     virtual HRESULT __stdcall TuningSpacesForCLSID( BSTR bstr_clsid,
  511.         ITuningSpaces** p_p_tuning_spaces )=0;
  512.     virtual HRESULT __stdcall _TuningSpacesForCLSID( REFCLSID clsid,
  513.         ITuningSpaces** p_p_tuning_spaces )=0;
  514.     virtual HRESULT __stdcall TuningSpacesForName( BSTR bstr_name,
  515.         ITuningSpaces** p_p_tuning_spaces )=0;
  516.     virtual HRESULT __stdcall FindID( ITuningSpace* p_tuning_space,
  517.         long* l_id )=0;
  518.     virtual HRESULT __stdcall Add( ITuningSpace* p_tuning_space,
  519.         VARIANT* v_index )=0;
  520.     virtual HRESULT __stdcall get_EnumTuningSpaces(
  521.         IEnumTuningSpaces** p_p_enum )=0;
  522.     virtual HRESULT __stdcall Remove( VARIANT v_index )=0;
  523.     virtual HRESULT __stdcall get_MaxCount( long* l_maxcount )=0;
  524.     virtual HRESULT __stdcall put_MaxCount( long l_maxcount )=0;
  525. };
  526. class ITuningSpaces : public IDispatch
  527. {
  528. public:
  529.     virtual HRESULT __stdcall get_Count( long* l_count )=0;
  530.     virtual HRESULT __stdcall get__NewEnum( IEnumVARIANT** p_p_enum )=0;
  531.     virtual HRESULT __stdcall get_Item( VARIANT v_index,
  532.         ITuningSpace** p_p_tuning_space )=0;
  533.     virtual HRESULT __stdcall get_EnumTuningSpaces(
  534.         IEnumTuningSpaces** p_p_enum )=0;
  535. };
  536. class IBDA_DeviceControl : public IUnknown
  537. {
  538. public:
  539.     virtual HRESULT __stdcall StartChanges( void )=0;
  540.     virtual HRESULT __stdcall CheckChanges( void )=0;
  541.     virtual HRESULT __stdcall CommitChanges( void )=0;
  542.     virtual HRESULT __stdcall GetChangeState( ULONG *pState )=0;
  543. };
  544. class IBDA_FrequencyFilter : public IUnknown
  545. {
  546. public:
  547.     virtual HRESULT __stdcall put_Autotune( ULONG ulTransponder )=0;
  548.     virtual HRESULT __stdcall get_Autotune( ULONG *pulTransponder )=0;
  549.     virtual HRESULT __stdcall put_Frequency( ULONG ulFrequency )=0;
  550.     virtual HRESULT __stdcall get_Frequency( ULONG *pulFrequency )=0;
  551.     virtual HRESULT __stdcall put_Polarity( Polarisation Polarity )=0;
  552.     virtual HRESULT __stdcall get_Polarity( Polarisation *pPolarity )=0;
  553.     virtual HRESULT __stdcall put_Range( ULONG ulRange )=0;
  554.     virtual HRESULT __stdcall get_Range( ULONG *pulRange )=0;
  555.     virtual HRESULT __stdcall put_Bandwidth( ULONG ulBandwidth )=0;
  556.     virtual HRESULT __stdcall get_Bandwidth( ULONG *pulBandwidth )=0;
  557.     virtual HRESULT __stdcall put_FrequencyMultiplier( ULONG ulMultiplier )=0;
  558.     virtual HRESULT __stdcall get_FrequencyMultiplier(
  559.         ULONG *pulMultiplier )=0;
  560. };
  561. class IBDA_SignalStatistics : public IUnknown
  562. {
  563. public:
  564.     virtual HRESULT __stdcall put_SignalStrength( LONG lDbStrength )=0;
  565.     virtual HRESULT __stdcall get_SignalStrength( LONG *plDbStrength )=0;
  566.     virtual HRESULT __stdcall put_SignalQuality( LONG lPercentQuality )=0;
  567.     virtual HRESULT __stdcall get_SignalQuality( LONG *plPercentQuality )=0;
  568.     virtual HRESULT __stdcall put_SignalPresent( BOOLEAN fPresent )=0;
  569.     virtual HRESULT __stdcall get_SignalPresent( BOOLEAN *pfPresent )=0;
  570.     virtual HRESULT __stdcall put_SignalLocked( BOOLEAN fLocked )=0;
  571.     virtual HRESULT __stdcall get_SignalLocked( BOOLEAN *pfLocked )=0;
  572.     virtual HRESULT __stdcall put_SampleTime( LONG lmsSampleTime )=0;
  573.     virtual HRESULT __stdcall get_SampleTime( LONG *plmsSampleTime )=0;
  574. };
  575. class IBDA_Topology : public IUnknown
  576. {
  577. public:
  578.     virtual HRESULT __stdcall GetNodeTypes( ULONG *pulcNodeTypes,
  579.         ULONG ulcNodeTypesMax, ULONG rgulNodeTypes[] )=0;
  580.     virtual HRESULT __stdcall GetNodeDescriptors( ULONG *ulcNodeDescriptors,
  581.         ULONG ulcNodeDescriptorsMax,
  582.         BDANODE_DESCRIPTOR rgNodeDescriptors[] )=0;
  583.     virtual HRESULT __stdcall GetNodeInterfaces( ULONG ulNodeType,
  584.         ULONG *pulcInterfaces, ULONG ulcInterfacesMax,
  585.         GUID rgguidInterfaces[] )=0;
  586.     virtual HRESULT __stdcall GetPinTypes( ULONG *pulcPinTypes,
  587.         ULONG ulcPinTypesMax, ULONG rgulPinTypes[] )=0;
  588.     virtual HRESULT __stdcall GetTemplateConnections( ULONG *pulcConnections,
  589.         ULONG ulcConnectionsMax, BDA_TEMPLATE_CONNECTION rgConnections[] )=0;
  590.     virtual HRESULT __stdcall CreatePin( ULONG ulPinType, ULONG *pulPinId )=0;
  591.     virtual HRESULT __stdcall DeletePin( ULONG ulPinId )=0;
  592.     virtual HRESULT __stdcall SetMediaType( ULONG ulPinId,
  593.        AM_MEDIA_TYPE *pMediaType )=0;
  594.     virtual HRESULT __stdcall SetMedium( ULONG ulPinId,
  595.        REGPINMEDIUM *pMedium )=0;
  596.     virtual HRESULT __stdcall CreateTopology( ULONG ulInputPinId,
  597.        ULONG ulOutputPinId )=0;
  598.     virtual HRESULT __stdcall GetControlNode( ULONG ulInputPinId,
  599.         ULONG ulOutputPinId, ULONG ulNodeType, IUnknown **ppControlNode )=0;
  600. };
  601. typedef struct _MPEG_HEADER_BITS_MIDL
  602. {
  603.     WORD Bits;
  604. } MPEG_HEADER_BITS_MIDL;
  605. typedef struct _MPEG_HEADER_VERSION_BITS_MIDL
  606. {
  607.     BYTE Bits;
  608. } MPEG_HEADER_VERSION_BITS_MIDL;
  609. typedef WORD PID;
  610. typedef BYTE TID;
  611. typedef struct _SECTION
  612. {
  613.     TID TableId;
  614.     union
  615.     {
  616.         MPEG_HEADER_BITS_MIDL S;
  617.         WORD W;
  618.     } Header;
  619.     BYTE SectionData[ 1 ];
  620. } SECTION, *PSECTION;
  621. typedef struct _LONG_SECTION
  622. {
  623.     TID TableId;
  624.     union
  625.     {
  626.         MPEG_HEADER_BITS_MIDL S;
  627.         WORD W;
  628.     } Header;
  629.     WORD TableIdExtension;
  630.     union
  631.     {
  632.         MPEG_HEADER_VERSION_BITS_MIDL S;
  633.         BYTE B;
  634.         } Version;
  635.     BYTE SectionNumber;
  636.     BYTE LastSectionNumber;
  637.     BYTE RemainingData[ 1 ];
  638. } LONG_SECTION;
  639. typedef struct _MPEG_BCS_DEMUX
  640. {
  641.     DWORD AVMGraphId;
  642. } MPEG_BCS_DEMUX;
  643. typedef struct _MPEG_WINSOC
  644. {
  645.     DWORD AVMGraphId;
  646. } MPEG_WINSOCK;
  647. typedef enum
  648. {
  649.     MPEG_CONTEXT_BCS_DEMUX = 0,
  650.     MPEG_CONTEXT_WINSOCK = MPEG_CONTEXT_BCS_DEMUX + 1
  651. } MPEG_CONTEXT_TYPE;
  652. typedef struct _MPEG_RQST_PACKET
  653. {
  654.     DWORD dwLength;
  655.     PSECTION pSection;
  656. } MPEG_RQST_PACKET, *PMPEG_RQST_PACKET;
  657. typedef struct _MPEG_PACKET_LIST
  658. {
  659.     WORD wPacketCount;
  660.     PMPEG_RQST_PACKET PacketList[ 1 ];
  661. } MPEG_PACKET_LIST, *PMPEG_PACKET_LIST;
  662. typedef struct _DSMCC_FILTER_OPTIONS
  663. {
  664.     BOOL fSpecifyProtocol;
  665.     BYTE Protocol;
  666.     BOOL fSpecifyType;
  667.     BYTE Type;
  668.     BOOL fSpecifyMessageId;
  669.     WORD MessageId;
  670.     BOOL fSpecifyTransactionId;
  671.     BOOL fUseTrxIdMessageIdMask;
  672.     DWORD TransactionId;
  673.     BOOL fSpecifyModuleVersion;
  674.     BYTE ModuleVersion;
  675.     BOOL fSpecifyBlockNumber;
  676.     WORD BlockNumber;
  677.     BOOL fGetModuleCall;
  678.     WORD NumberOfBlocksInModule;
  679. } DSMCC_FILTER_OPTIONS;
  680. typedef struct _ATSC_FILTER_OPTIONS
  681. {
  682.     BOOL fSpecifyEtmId;
  683.     DWORD EtmId;
  684. } ATSC_FILTER_OPTIONS;
  685. typedef struct _MPEG_STREAM_BUFFER
  686. {
  687.     HRESULT hr;
  688.     DWORD dwDataBufferSize;
  689.     DWORD dwSizeOfDataRead;
  690.     BYTE *pDataBuffer;
  691. } MPEG_STREAM_BUFFER, *PMPEG_STREAM_BUFFER;
  692. typedef struct _MPEG_CONTEXT
  693. {
  694.     MPEG_CONTEXT_TYPE Type;
  695.     union
  696.     {
  697.         MPEG_BCS_DEMUX Demux;
  698.         MPEG_WINSOCK Winsock;
  699.     } U;
  700. } MPEG_CONTEXT, *PMPEG_CONTEXT;
  701. typedef enum
  702. {
  703.    MPEG_RQST_UNKNOWN = 0,
  704.    MPEG_RQST_GET_SECTION = MPEG_RQST_UNKNOWN + 1,
  705.    MPEG_RQST_GET_SECTION_ASYNC = MPEG_RQST_GET_SECTION + 1,
  706.    MPEG_RQST_GET_TABLE = MPEG_RQST_GET_SECTION_ASYNC + 1,
  707.    MPEG_RQST_GET_TABLE_ASYNC = MPEG_RQST_GET_TABLE + 1,
  708.    MPEG_RQST_GET_SECTIONS_STREAM = MPEG_RQST_GET_TABLE_ASYNC + 1,
  709.    MPEG_RQST_GET_PES_STREAM = MPEG_RQST_GET_SECTIONS_STREAM + 1,
  710.    MPEG_RQST_GET_TS_STREAM = MPEG_RQST_GET_PES_STREAM + 1,
  711.    MPEG_RQST_START_MPE_STREAM = MPEG_RQST_GET_TS_STREAM + 1
  712. } MPEG_REQUEST_TYPE;
  713. typedef struct _MPEG2_FILTER
  714. {
  715.     BYTE bVersionNumber;
  716.     WORD wFilterSize;
  717.     BOOL fUseRawFilteringBits;
  718.     BYTE Filter[ 16 ];
  719.     BYTE Mask[ 16 ];
  720.     BOOL fSpecifyTableIdExtension;
  721.     WORD TableIdExtension;
  722.     BOOL fSpecifyVersion;
  723.     BYTE Version;
  724.     BOOL fSpecifySectionNumber;
  725.     BYTE SectionNumber;
  726.     BOOL fSpecifyCurrentNext;
  727.     BOOL fNext;
  728.     BOOL fSpecifyDsmccOptions;
  729.     DSMCC_FILTER_OPTIONS Dsmcc;
  730.     BOOL fSpecifyAtscOptions;
  731.     ATSC_FILTER_OPTIONS Atsc;
  732. } MPEG2_FILTER, *PMPEG2_FILTER;
  733. typedef struct _MPEG_HEADER_BITS
  734. {
  735.     WORD SectionLength          : 12;
  736.     WORD Reserved               :  2;
  737.     WORD PrivateIndicator       :  1;
  738.     WORD SectionSyntaxIndicator :  1;
  739. } MPEG_HEADER_BITS, *PMPEG_HEADER_BITS;
  740. typedef struct _MPEG_HEADER_VERSION_BITS
  741. {
  742.     BYTE CurrentNextIndicator : 1;
  743.     BYTE VersionNumber        : 5;
  744.     BYTE Reserved             : 2;
  745. } MPEG_HEADER_VERSION_BITS, *PMPEG_HEADER_VERSION_BITS;
  746. class IMpeg2Data : public IUnknown
  747. {
  748. public:
  749.     virtual HRESULT __stdcall GetSection( PID pid, TID tid,
  750.         PMPEG2_FILTER pFilter, DWORD dwTimeout,
  751.         ISectionList **ppSectionList )=0;
  752.     virtual HRESULT __stdcall GetTable( PID pid, TID tid, PMPEG2_FILTER pFilter,
  753.         DWORD dwTimeout, ISectionList **ppSectionList )=0;
  754.     virtual HRESULT __stdcall GetStreamOfSections( PID pid, TID tid,
  755.         PMPEG2_FILTER pFilter, HANDLE hDataReadyEvent,
  756.         IMpeg2Stream **ppMpegStream )=0;
  757. };
  758. class IGuideData : public IUnknown
  759. {
  760. public:
  761.     virtual HRESULT __stdcall GetServices(
  762.         IEnumTuneRequests **ppEnumTuneRequestslass )=0;
  763.     virtual HRESULT __stdcall GetServiceProperties(
  764.         ITuneRequest *pTuneRequest,
  765.         IEnumGuideDataProperties **ppEnumProperties )=0;
  766.     virtual HRESULT __stdcall GetGuideProgramIDs(
  767.         IEnumVARIANT **pEnumPrograms )=0;
  768.     virtual HRESULT __stdcall GetProgramProperties(
  769.         VARIANT varProgramDescriptionID,
  770.         IEnumGuideDataProperties **ppEnumProperties )=0;
  771.     virtual HRESULT __stdcall GetScheduleEntryIDs(
  772.         IEnumVARIANT **pEnumScheduleEntries )=0;
  773.     virtual HRESULT __stdcall GetScheduleEntryProperties(
  774.         VARIANT varScheduleEntryDescriptionID,
  775.         IEnumGuideDataProperties **ppEnumProperties )=0;
  776. };
  777. class IGuideDataEvent : public IUnknown
  778. {
  779. public:
  780.     virtual HRESULT __stdcall GuideDataAcquired( void )=0;
  781.     virtual HRESULT __stdcall ProgramChanged(
  782.         VARIANT varProgramDescriptionID )=0;
  783.     virtual HRESULT __stdcall ServiceChanged(
  784.         VARIANT varServiceDescriptionID )=0;
  785.     virtual HRESULT __stdcall ScheduleEntryChanged(
  786.         VARIANT varScheduleEntryDescriptionID )=0;
  787.     virtual HRESULT __stdcall ProgramDeleted(
  788.         VARIANT varProgramDescriptionID )=0;
  789.     virtual HRESULT __stdcall ServiceDeleted(
  790.         VARIANT varServiceDescriptionID )=0;
  791.     virtual HRESULT __stdcall ScheduleDeleted(
  792.             VARIANT varScheduleEntryDescriptionID )=0;
  793. };
  794. class IGuideDataProperty : public IUnknown
  795. {
  796. public:
  797.     virtual  HRESULT __stdcall get_Name( BSTR *pbstrName )=0;
  798.     virtual  HRESULT __stdcall get_Language( long *idLang )=0;
  799.     virtual  HRESULT __stdcall get_Value( VARIANT *pvar )=0;
  800. };
  801. class IMpeg2Stream : public IUnknown
  802. {
  803. public:
  804.     virtual HRESULT __stdcall Initialize( MPEG_REQUEST_TYPE requestType,
  805.         IMpeg2Data *pMpeg2Data, PMPEG_CONTEXT pContext, PID pid, TID tid,
  806.         PMPEG2_FILTER pFilter, HANDLE hDataReadyEvent )=0;
  807.     virtual HRESULT __stdcall SupplyDataBuffer(
  808.         PMPEG_STREAM_BUFFER pStreamBuffer )=0;
  809. };
  810. class ISectionList : public IUnknown
  811. {
  812. public:
  813.     virtual HRESULT __stdcall Initialize( MPEG_REQUEST_TYPE requestType,
  814.         IMpeg2Data *pMpeg2Data, PMPEG_CONTEXT pContext, PID pid, TID tid,
  815.         PMPEG2_FILTER pFilter, DWORD timeout, HANDLE hDoneEvent )=0;
  816.     virtual HRESULT __stdcall InitializeWithRawSections(
  817.         PMPEG_PACKET_LIST pmplSections )=0;
  818.     virtual HRESULT __stdcall CancelPendingRequest( void )=0;
  819.     virtual HRESULT __stdcall GetNumberOfSections( WORD *pCount )=0;
  820.     virtual HRESULT __stdcall GetSectionData( WORD sectionNumber,
  821.         DWORD *pdwRawPacketLength, PSECTION *ppSection )=0;
  822.     virtual HRESULT __stdcall GetProgramIdentifier( PID *pPid )=0;
  823.     virtual HRESULT __stdcall GetTableIdentifier( TID *pTableId )=0;
  824. };
  825. class IEnumGuideDataProperties : public IUnknown
  826. {
  827. public:
  828.     virtual HRESULT __stdcall Next( unsigned long celt,
  829.         IGuideDataProperty **ppprop, unsigned long *pcelt )=0;
  830.     virtual HRESULT __stdcall Skip( unsigned long celt )=0;
  831.     virtual HRESULT __stdcall Reset( void )=0;
  832.     virtual HRESULT __stdcall Clone( IEnumGuideDataProperties **ppenum )=0;
  833. };
  834. class IEnumTuneRequests : public IUnknown
  835. {
  836. public:
  837.     virtual HRESULT __stdcall Next( unsigned long celt, ITuneRequest **ppprop,
  838.         unsigned long *pcelt )=0;
  839.     virtual HRESULT __stdcall Skip( unsigned long celt )=0;
  840.     virtual HRESULT __stdcall Reset( void )=0;
  841.     virtual HRESULT __stdcall Clone( IEnumTuneRequests **ppenum )=0;
  842. };
  843. extern "C" {
  844. extern const GUID CLSID_ATSCLocator;
  845. extern const GUID CLSID_ATSCNetworkProvider;
  846. extern const GUID CLSID_ATSCTuningSpace;
  847. extern const GUID CLSID_DVBCLocator;
  848. extern const GUID CLSID_DVBCNetworkProvider;
  849. extern const GUID CLSID_DVBSLocator;
  850. extern const GUID CLSID_DVBSNetworkProvider;
  851. extern const GUID CLSID_DVBSTuningSpace;
  852. extern const GUID CLSID_DVBTuningSpace;
  853. extern const GUID CLSID_DVBTLocator;
  854. extern const GUID CLSID_DVBTNetworkProvider;
  855. extern const GUID CLSID_FilterGraph;
  856. extern const GUID CLSID_InfTee;
  857. extern const GUID CLSID_MPEG2Demultiplexer;
  858. extern const GUID CLSID_NullRenderer;
  859. extern const GUID CLSID_SampleGrabber;
  860. extern const GUID CLSID_SystemDeviceEnum;
  861. extern const GUID CLSID_SystemTuningSpaces;
  862. extern const GUID IID_IATSCChannelTuneRequest;
  863. extern const GUID IID_IATSCLocator;
  864. extern const GUID IID_IBaseFilter;
  865. extern const GUID IID_IBDA_DeviceControl;
  866. extern const GUID IID_IBDA_FrequencyFilter;
  867. extern const GUID IID_IBDA_SignalStatistics;
  868. /* Following symbol does not exist in library
  869. extern const GUID IID_IBDA_Topology; */
  870. const GUID IID_IBDA_Topology =
  871.     {0x79B56888,0x7FEA,0x4690,{0xB4,0x5D,0x38,0xFD,0x3C,0x78,0x49,0xBE}};
  872. extern const GUID IID_ICreateDevEnum;
  873. extern const GUID IID_IDVBTLocator;
  874. extern const GUID IID_IDVBCLocator;
  875. extern const GUID IID_IDVBSLocator;
  876. extern const GUID IID_IDVBSTuningSpace;
  877. extern const GUID IID_IDVBTuneRequest;
  878. extern const GUID IID_IDVBTuningSpace;
  879. extern const GUID IID_IDVBTuningSpace2;
  880. extern const GUID IID_IGraphBuilder;
  881. extern const GUID IID_IMediaControl;
  882. extern const GUID IID_IMpeg2Demultiplexer;
  883. extern const GUID IID_ISampleGrabber;
  884. extern const GUID IID_IScanningTuner;
  885. extern const GUID IID_ITuner;
  886. extern const GUID IID_ITuningSpace;
  887. extern const GUID IID_ITuningSpaceContainer;
  888. /* Following symbol does not exist in library
  889. extern const GUID IID_IMpeg2Data; */
  890. const GUID IID_IMpeg2Data =
  891.     {0x9B396D40,0xF380,0x4e3c,{0xA5,0x14,0x1A,0x82,0xBF,0x6E,0xBF,0xE6}};
  892. extern const GUID IID_IGuideData;
  893. extern const GUID IID_ISectionList;
  894. extern const GUID IID_IEnumTuneRequests;
  895. extern const GUID IID_IEnumGuideDataProperties;
  896. extern const GUID IID_IGuideDataProperty;
  897. extern const GUID IID_IMpeg2Stream;
  898. extern const GUID IID_IGuideDataEvent;
  899. extern const GUID MEDIATYPE_MPEG2_SECTIONS;
  900. extern const GUID MEDIASUBTYPE_None;
  901. extern const GUID FORMAT_None;
  902. const GUID KSCATEGORY_BDA_TRANSPORT_INFORMATION =
  903.     {0xa2e3074f,0x6c3d,0x11d3,{0xb6,0x53,0x00,0xc0,0x4f,0x79,0x49,0x8e}};
  904. const GUID KSCATEGORY_BDA_RECEIVER_COMPONENT    =
  905.     {0xFD0A5AF4,0xB41D,0x11d2,{0x9c,0x95,0x00,0xc0,0x4f,0x79,0x71,0xe0}};
  906. const GUID KSCATEGORY_BDA_NETWORK_TUNER         =
  907.     {0x71985f48,0x1ca1,0x11d3,{0x9c,0xc8,0x00,0xc0,0x4f,0x79,0x71,0xe0}};
  908. const GUID KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT =
  909.     {0xF4AEB342,0x0329,0x4fdd,{0xA8,0xFD,0x4A,0xFF,0x49,0x26,0xC9,0x78}};
  910. };