summaryrefslogtreecommitdiffstats
path: root/dxsdk/Include/DShowIDL/tuner.idl
diff options
context:
space:
mode:
Diffstat (limited to 'dxsdk/Include/DShowIDL/tuner.idl')
-rw-r--r--dxsdk/Include/DShowIDL/tuner.idl2254
1 files changed, 2254 insertions, 0 deletions
diff --git a/dxsdk/Include/DShowIDL/tuner.idl b/dxsdk/Include/DShowIDL/tuner.idl
new file mode 100644
index 00000000..75f1beb4
--- /dev/null
+++ b/dxsdk/Include/DShowIDL/tuner.idl
@@ -0,0 +1,2254 @@
+//------------------------------------------------------------------------------
+// File: Tuner.idl
+//
+// Desc:
+//
+// Copyright (c) 1999 - 2000, Microsoft Corporation. All rights reserved.
+//------------------------------------------------------------------------------
+
+
+cpp_quote("//+-------------------------------------------------------------------------")
+cpp_quote("//")
+cpp_quote("// Microsoft Windows")
+cpp_quote("// Copyright (C) Microsoft Corporation, 1999-2000.")
+cpp_quote("//")
+cpp_quote("//--------------------------------------------------------------------------")
+cpp_quote("#pragma once")
+
+#include <olectl.h>
+#ifndef DO_NO_IMPORTS
+import "oaidl.idl";
+import "comcat.idl";
+import "strmif.idl";
+import "bdatypes.h";
+import "regbag.idl";
+#endif
+
+cpp_quote("#include <bdatypes.h>")
+
+interface ITuningSpaceContainer;
+interface ITuningSpace;
+interface IEnumTuningSpaces;
+interface ITuneRequest;
+interface ITuner;
+interface IScanningTuner;
+interface IEnumComponentTypes;
+interface IComponentTypes;
+interface IComponentType;
+interface ILanguageComponentType;
+interface IEnumComponents;
+interface IComponents;
+interface IComponent;
+interface IMPEG2ComponentType;
+interface IMPEG2Component;
+interface ILocator;
+interface IATSCLocator;
+interface IDVBSLocator;
+interface IDVBTLocator;
+interface IDVBCLocator;
+
+// tuner.idl:
+// interface ITuningSpaceContainer : IDispatch
+// interface ITuningSpace : IDispatch
+// interface ITuneRequest : IDispatch
+// interface IComponentType : IDispatch
+// interface ILanguageComponentType : IComponentType
+// interface IComponentTypes : IDispatch
+// interface IComponent : IDispatch
+// interface IComponents : IDispatch
+// interface ITVTuningSpace : ITuningSpace
+// interface IFMRadioTuningSpace : ITuningSpace
+// interface IAMRadioTuningSpace : ITuningSpace
+// interface IAnalogTVTuningSpace : ITVTuningSpace
+// interface IAnalogTVAudioComponent : IComponent
+// interface IAnalogTVDataComponent : IComponent
+// interface IChannelTuneRequest : ITuneRequest
+// interface IDVBComponent : IComponent
+// interface IDVBTuneRequest : ITuneRequest
+
+// DISPIDs for ITuningSpaces interface
+// we don't expect to inherit from this interface and consequently there's
+// no chance of collision, thus we'll allow midl to auto assign ids for this one
+
+// DISPIDs for ITuningSpace interface
+enum {
+DISPID_TUNER_TS_UNIQUENAME = 1,
+DISPID_TUNER_TS_FRIENDLYNAME = 2,
+DISPID_TUNER_TS_CLSID = 3,
+DISPID_TUNER_TS_NETWORKTYPE = 4,
+DISPID_TUNER_TS__NETWORKTYPE = 5,
+DISPID_TUNER_TS_CREATETUNEREQUEST = 6,
+DISPID_TUNER_TS_ENUMCATEGORYGUIDS = 7,
+DISPID_TUNER_TS_ENUMDEVICEMONIKERS = 8,
+DISPID_TUNER_TS_DEFAULTPREFERREDCOMPONENTTYPES = 9,
+DISPID_TUNER_TS_FREQMAP = 10,
+DISPID_TUNER_TS_DEFLOCATOR = 11,
+DISPID_TUNER_TS_CLONE = 12,
+
+// DISPIDs for ITuneRequest interface
+DISPID_TUNER_TR_TUNINGSPACE = 1,
+DISPID_TUNER_TR_COMPONENTS = 2,
+DISPID_TUNER_TR_CLONE = 3,
+DISPID_TUNER_TR_LOCATOR = 4,
+
+
+// DISPID for IComponentType interface
+DISPID_TUNER_CT_CATEGORY = 1,
+DISPID_TUNER_CT_MEDIAMAJORTYPE = 2,
+DISPID_TUNER_CT__MEDIAMAJORTYPE = 3,
+DISPID_TUNER_CT_MEDIASUBTYPE = 4,
+DISPID_TUNER_CT__MEDIASUBTYPE = 5,
+DISPID_TUNER_CT_MEDIAFORMATTYPE = 6,
+DISPID_TUNER_CT__MEDIAFORMATTYPE = 7,
+DISPID_TUNER_CT_MEDIATYPE = 8,
+DISPID_TUNER_CT_CLONE = 9,
+
+
+// DISPID for ILanguageComponentType interface
+DISPID_TUNER_LCT_LANGID = 100,
+
+// DISPID for IMPEG2ComponentType interface
+DISPID_TUNER_MP2CT_TYPE = 200,
+
+// DISPID for IATSCComponentType interface
+DISPID_TUNER_ATSCCT_FLAGS = 300,
+
+// DISPID for ILocator interface
+DISPID_TUNER_L_CARRFREQ = 1,
+DISPID_TUNER_L_INNERFECMETHOD = 2,
+DISPID_TUNER_L_INNERFECRATE = 3,
+DISPID_TUNER_L_OUTERFECMETHOD = 4,
+DISPID_TUNER_L_OUTERFECRATE = 5,
+DISPID_TUNER_L_MOD = 6,
+DISPID_TUNER_L_SYMRATE = 7,
+DISPID_TUNER_L_CLONE = 8,
+
+// DISPID for IATSCLocator interface
+DISPID_TUNER_L_ATSC_PHYS_CHANNEL = 201,
+DISPID_TUNER_L_ATSC_TSID = 202,
+
+// DISPID for IDVBTLocator interface
+DISPID_TUNER_L_DVBT_BANDWIDTH = 301,
+DISPID_TUNER_L_DVBT_LPINNERFECMETHOD = 302,
+DISPID_TUNER_L_DVBT_LPINNERFECRATE = 303,
+DISPID_TUNER_L_DVBT_GUARDINTERVAL = 304,
+DISPID_TUNER_L_DVBT_HALPHA = 305,
+DISPID_TUNER_L_DVBT_TRANSMISSIONMODE = 306,
+DISPID_TUNER_L_DVBT_INUSE = 307,
+
+// DISPID for IDVBSLocator interface
+DISPID_TUNER_L_DVBS_POLARISATION = 401,
+DISPID_TUNER_L_DVBS_WEST = 402,
+DISPID_TUNER_L_DVBS_ORBITAL = 403,
+DISPID_TUNER_L_DVBS_AZIMUTH = 404,
+DISPID_TUNER_L_DVBS_ELEVATION = 405,
+
+// DISPID for IDVBCLocator interface
+
+// DISPIDs for IComponent interface
+DISPID_TUNER_C_TYPE = 1,
+DISPID_TUNER_C_STATUS = 2,
+DISPID_TUNER_C_LANGID = 3,
+DISPID_TUNER_C_DESCRIPTION = 4,
+DISPID_TUNER_C_CLONE = 5,
+
+// DISPIDs for IMPEG2Component interface
+DISPID_TUNER_C_MP2_PID = 101,
+DISPID_TUNER_C_MP2_PCRPID = 102,
+DISPID_TUNER_C_MP2_PROGNO = 103,
+
+// DISPIDs for IDVBTuningSpace interface
+DISPID_TUNER_TS_DVB_SYSTEMTYPE = 101,
+// DISPIDs for IDVBTuningSpace2 interface
+DISPID_TUNER_TS_DVB2_NETWORK_ID = 102,
+// DISPIDs for IDVBSTuningSpace interface
+DISPID_TUNER_TS_DVBS_LOW_OSC_FREQ = 1001,
+DISPID_TUNER_TS_DVBS_HI_OSC_FREQ = 1002,
+DISPID_TUNER_TS_DVBS_LNB_SWITCH_FREQ = 1003,
+DISPID_TUNER_TS_DVBS_INPUT_RANGE = 1004,
+DISPID_TUNER_TS_DVBS_SPECTRAL_INVERSION = 1005,
+
+// DISPIDs for IAnalogRadioTuningSpace interface
+DISPID_TUNER_TS_AR_MINFREQUENCY = 101,
+DISPID_TUNER_TS_AR_MAXFREQUENCY = 102,
+DISPID_TUNER_TS_AR_STEP = 103,
+
+// DISPIDs for IAnalogTVTuningSpace interface
+DISPID_TUNER_TS_ATV_MINCHANNEL = 101,
+DISPID_TUNER_TS_ATV_MAXCHANNEL = 102,
+DISPID_TUNER_TS_ATV_INPUTTYPE = 103,
+DISPID_TUNER_TS_ATV_COUNTRYCODE = 104,
+
+// DISPIDs for IATSCTuningSpace interface
+DISPID_TUNER_TS_ATSC_MINMINORCHANNEL = 201,
+DISPID_TUNER_TS_ATSC_MAXMINORCHANNEL = 202,
+DISPID_TUNER_TS_ATSC_MINPHYSCHANNEL = 203,
+DISPID_TUNER_TS_ATSC_MAXPHYSCHANNEL = 204,
+
+// DISPID for IAnalogTVAudioComponent interface
+DISPID_CHTUNER_ATVAC_CHANNEL = 101,
+
+// DISPIDs for IAnalogTVDataComponent interface
+DISPID_CHTUNER_ATVDC_SYSTEM = 101,
+DISPID_CHTUNER_ATVDC_CONTENT = 102,
+
+// DISPID for IChannelTuneRequest interface
+DISPID_CHTUNER_CTR_CHANNEL = 101,
+
+// DISPID IATSCChannelTuneRequest
+DISPID_CHTUNER_ACTR_MINOR_CHANNEL = 201,
+
+// DISPIDs for IDVBComponent interface
+DISPID_DVBTUNER_DVBC_ATTRIBUTESVALID = 101,
+DISPID_DVBTUNER_DVBC_PID = 102,
+DISPID_DVBTUNER_DVBC_TAG = 103,
+DISPID_DVBTUNER_DVBC_COMPONENTTYPE = 104,
+
+// DISPIDs for IDVBTuneRequest interface
+DISPID_DVBTUNER_ONID = 101,
+DISPID_DVBTUNER_TSID = 102,
+DISPID_DVBTUNER_SID = 103,
+
+// DISPIDs for IMPEG2TuneRequest interface
+DISPID_MP2TUNER_TSID = 101,
+DISPID_MP2TUNER_PROGNO = 102,
+
+// DISPIDs for IMPEG2TuneRequestFactory interface
+DISPID_MP2TUNERFACTORY_CREATETUNEREQUEST = 1,
+
+};
+
+
+//////////////////////////////////////////////////////////////////////////////////////
+// Tuning Space Container
+//////////////////////////////////////////////////////////////////////////////////////
+// simple read-only collection of tuning spaces for enumerating subsets of the total
+// set of system tuning spaces
+ [
+ object,
+ uuid(901284E4-33FE-4b69-8D63-634A596F3756),
+ dual,
+ oleautomation,
+ nonextensible,
+ helpstring("Tuning Space Collection Interface"),
+ pointer_default(unique)
+ ]
+ interface ITuningSpaces : IDispatch
+ {
+
+ [propget, helpstring("Number of items in the collection")]
+ HRESULT Count(
+ [out, retval] long *Count
+ );
+
+ [propget, id(DISPID_NEWENUM), hidden, restricted]
+ HRESULT _NewEnum(
+ [out, retval] IEnumVARIANT** NewEnum
+ );
+
+ [id(DISPID_VALUE),
+ propget,
+ helpstring("Find the Tuning Space with the specified Index")]
+ HRESULT Item(
+ [in] VARIANT varIndex,
+ [out, retval] ITuningSpace** TuningSpace
+ );
+
+ [propget, hidden, restricted,
+ helpstring("convenience function so C++ apps don't have to unpack VARIANT")]
+ HRESULT EnumTuningSpaces(
+ [out, retval] IEnumTuningSpaces** NewEnum
+ );
+
+ }
+
+//////////////////////////////////////////////////////////////////////////////////////
+// Tuning Space Container
+//////////////////////////////////////////////////////////////////////////////////////
+ [
+ object,
+ uuid(5B692E84-E2F1-11d2-9493-00C04F72D980),
+ dual,
+ oleautomation,
+ hidden,
+ nonextensible,
+ helpstring("Tuning Space Container Interface"),
+ pointer_default(unique)
+ ]
+ interface ITuningSpaceContainer : IDispatch
+ {
+
+ [propget, helpstring("Number of items in the collection")]
+ HRESULT Count(
+ [out, retval] long *Count
+ );
+
+ [propget, id(DISPID_NEWENUM), hidden, restricted]
+ HRESULT _NewEnum(
+ [out, retval] IEnumVARIANT** NewEnum
+ );
+
+ [id(DISPID_VALUE),
+ propget,
+ helpstring("Find the Tuning Space with the specified Index")]
+ HRESULT Item(
+ [in] VARIANT varIndex,
+ [out, retval] ITuningSpace** TuningSpace
+ );
+ [id(DISPID_VALUE),
+ propput,
+ helpstring("Change the Tuning Space with the specified Index")]
+ HRESULT Item([in] VARIANT varIndex, [in] ITuningSpace *TuningSpace);
+
+ [helpstring("Returns the collection of Tuning Spaces with the same implementation")]
+ HRESULT TuningSpacesForCLSID(
+ [in] BSTR SpaceCLSID,
+ [out, retval] ITuningSpaces** NewColl
+ );
+
+ [hidden, restricted,
+ helpstring("Convenience Function for enumerating from C")]
+ HRESULT _TuningSpacesForCLSID(
+ [in] REFCLSID SpaceCLSID,
+ [out, retval] ITuningSpaces** NewColl
+ );
+
+ [helpstring("Returns the collection of Tuning Spaces matching the name")]
+ HRESULT TuningSpacesForName(
+ [in] BSTR Name,
+ [out, retval] ITuningSpaces** NewColl
+ );
+
+ [helpstring("Find Local ID Number of the specified Tuning Space")]
+ HRESULT FindID(
+ [in] ITuningSpace *TuningSpace,
+ [out, retval] long *ID
+ );
+
+
+ [id(DISPID_ADDITEM),
+ helpstring("Add a new Tuning Space to the collection. This tuning space will be persisted unless removed")]
+ HRESULT Add(
+ [in] ITuningSpace* TuningSpace,
+ [out, retval] VARIANT* NewIndex
+ );
+
+ [propget, hidden, restricted, helpstring("Convenience Function for enumerating collection from C")]
+ HRESULT EnumTuningSpaces(
+ [out, retval] IEnumTuningSpaces **ppEnum
+ );
+
+ [id(DISPID_REMOVEITEM),
+ helpstring("Remove a Tuning Space from the collection. this tuning space will be deleted from the registry")]
+ HRESULT Remove(
+ [in] VARIANT Index
+ );
+
+ [propget, helpstring("Maximum number of items allowed in the collection")]
+ HRESULT MaxCount(
+ [out, retval] long *MaxCount
+ );
+
+ // we don't allow script to set this, but we do allow c code to change it.
+ [propput, hidden, restricted, helpstring("Maximum number of items allowed in the collection")]
+ HRESULT MaxCount(
+ [in] long MaxCount
+ );
+
+ }
+
+//////////////////////////////////////////////////////////////////////////////////////
+// Tuning Space Interfaces
+//////////////////////////////////////////////////////////////////////////////////////
+
+// note: the network type is the clsid of the tuning space implementation
+ [
+ object,
+ uuid(061C6E30-E622-11d2-9493-00C04F72D980),
+ dual,
+ oleautomation,
+ nonextensible,
+ helpstring("Tuning Space Interface"),
+ pointer_default(unique)
+ ]
+ interface ITuningSpace : IDispatch
+ {
+ [propget, id(DISPID_TUNER_TS_UNIQUENAME),
+ helpstring("Unique name of the Tuning Space")]
+ HRESULT UniqueName(
+ [out, retval] BSTR *Name
+ );
+
+ [propput, id(DISPID_TUNER_TS_UNIQUENAME),
+ helpstring("Unique name of the Tuning Space")]
+ HRESULT UniqueName(
+ [in] BSTR Name
+ );
+
+ [propget, id(DISPID_TUNER_TS_FRIENDLYNAME),
+ helpstring("User-friendly name of the Tuning Space")]
+ HRESULT FriendlyName(
+ [out, retval] BSTR *Name
+ );
+
+ [propput, id(DISPID_TUNER_TS_FRIENDLYNAME),
+ helpstring("User-friendly name of the Tuning Space")]
+ HRESULT FriendlyName(
+ [in] BSTR Name
+ );
+
+ [propget, id(DISPID_TUNER_TS_CLSID),
+ helpstring("Returns the clsid of the tuning space implementation. provides script access to IPersist:GetClassID")]
+ HRESULT CLSID(
+ [out, retval] BSTR* SpaceCLSID
+ );
+
+ [propget, id(DISPID_TUNER_TS_NETWORKTYPE),
+ helpstring("Network Type (Network Proivder CLSID)")]
+ HRESULT NetworkType(
+ [out, retval] BSTR *NetworkTypeGuid
+ );
+ [propput, id(DISPID_TUNER_TS_NETWORKTYPE),
+ helpstring("Network Type (Network Proivder CLSID)")]
+ HRESULT NetworkType(
+ [in] BSTR NetworkTypeGuid
+ );
+
+ [propget, id(DISPID_TUNER_TS__NETWORKTYPE),
+ helpstring("Network Type (Network Proivder CLSID)"), hidden, restricted]
+ HRESULT _NetworkType(
+ [out, retval] GUID* NetworkTypeGuid
+ );
+ [propput, id(DISPID_TUNER_TS__NETWORKTYPE),
+ helpstring("Network Type (Network Proivder CLSID)"), hidden, restricted]
+ HRESULT _NetworkType(
+ [in] REFCLSID NetworkTypeGuid
+ );
+
+ // this method creates the "best" kind of tune request for this tuning space.
+ // the tuning space may support other kinds of tune requests created via
+ // other factory mechanisms(for example, see mpeg2tunerequestfactory). but,
+ // this method is the preferred way to get a tune request as it always returns
+ // the optimal type of tune request for this space.
+ [id(DISPID_TUNER_TS_CREATETUNEREQUEST),
+ helpstring("Create a Tune Request object")]
+ HRESULT CreateTuneRequest(
+ [out, retval] ITuneRequest **TuneRequest
+ );
+
+ [id(DISPID_TUNER_TS_ENUMCATEGORYGUIDS), hidden, restricted]
+ HRESULT EnumCategoryGUIDs(
+ [out, retval] IEnumGUID **ppEnum
+ );
+
+ [id(DISPID_TUNER_TS_ENUMDEVICEMONIKERS), hidden, restricted]
+ HRESULT EnumDeviceMonikers(
+ [out, retval] IEnumMoniker **ppEnum
+ );
+
+ [propget, id(DISPID_TUNER_TS_DEFAULTPREFERREDCOMPONENTTYPES)]
+ HRESULT DefaultPreferredComponentTypes(
+ [out, retval] IComponentTypes** ComponentTypes
+ );
+ [propput, id(DISPID_TUNER_TS_DEFAULTPREFERREDCOMPONENTTYPES)]
+ HRESULT DefaultPreferredComponentTypes(
+ [in] IComponentTypes* NewComponentTypes
+ );
+
+ // the following property is for the network providers to store frequency/channel maps, frequency/transponder maps
+ // or whatever other mapping from carrier frequencies to frequency identifiers are appropriate for the tuning space
+ // in question. the bstr is treated as a binary blob. it is expected to contain embedded nulls, and it may be formatted
+ // internally in whatever fashion the network provider sees fit.
+ [propget, id(DISPID_TUNER_TS_FREQMAP)]
+ HRESULT FrequencyMapping([out, retval] BSTR *pMapping);
+ [propput, id(DISPID_TUNER_TS_FREQMAP)]
+ HRESULT FrequencyMapping(BSTR Mapping);
+
+ // the following property provides a starting point for the initial IScanningTuner after installation
+ [propget, id(DISPID_TUNER_TS_DEFLOCATOR)]
+ HRESULT DefaultLocator([out, retval] ILocator **LocatorVal);
+ [propput, id(DISPID_TUNER_TS_DEFLOCATOR)]
+ HRESULT DefaultLocator([in]ILocator *LocatorVal);
+
+ HRESULT Clone([out, retval] ITuningSpace **NewTS);
+ }
+
+//////////////////////////////////////////////////////////////////////////////////////
+ [
+ hidden,
+ restricted,
+ object,
+ uuid(8B8EB248-FC2B-11d2-9D8C-00C04F72D980),
+ pointer_default(unique)
+ ]
+ interface IEnumTuningSpaces : IUnknown
+ {
+ HRESULT Next(
+ [in] ULONG celt,
+ [out, size_is(celt), length_is(*pceltFetched)]
+ ITuningSpace** rgelt,
+ [out] ULONG* pceltFetched
+ );
+
+ HRESULT Skip(
+ [in] ULONG celt
+ );
+
+ HRESULT Reset(void);
+
+ HRESULT Clone(
+ [out] IEnumTuningSpaces** ppEnum
+ );
+ }
+
+//////////////////////////////////////////////////////////////////////////////////////
+ [
+ object,
+ hidden,
+ dual,
+ oleautomation,
+ nonextensible,
+ uuid(ADA0B268-3B19-4e5b-ACC4-49F852BE13BA),
+ pointer_default(unique)
+ ]
+ interface IDVBTuningSpace : ITuningSpace
+ {
+ [propget, id(DISPID_TUNER_TS_DVB_SYSTEMTYPE),
+ helpstring("Type of DVB System")
+ ]
+ HRESULT SystemType(
+ [out, retval] DVBSystemType *SysType
+ );
+ [propput, id(DISPID_TUNER_TS_DVB_SYSTEMTYPE),
+ helpstring("Type of DVB System")
+ ]
+ HRESULT SystemType(
+ [in] DVBSystemType SysType
+ );
+
+ }
+
+//////////////////////////////////////////////////////////////////////////////////////
+ [
+ object,
+ hidden,
+ dual,
+ oleautomation,
+ nonextensible,
+ uuid(843188B4-CE62-43db-966B-8145A094E040),
+ pointer_default(unique)
+ ]
+ interface IDVBTuningSpace2 : IDVBTuningSpace
+ {
+ [propget, id(DISPID_TUNER_TS_DVB2_NETWORK_ID),
+ helpstring("Network ID of DVB System")
+ ]
+ HRESULT NetworkID(
+ [out, retval] long *NetworkID
+ );
+ [propput, id(DISPID_TUNER_TS_DVB2_NETWORK_ID),
+ helpstring("Network ID of DVB System")
+ ]
+ HRESULT NetworkID(
+ [in] long NetworkID
+ );
+
+ }
+
+//////////////////////////////////////////////////////////////////////////////////////
+ [
+ object,
+ hidden,
+ dual,
+ oleautomation,
+ nonextensible,
+ uuid(CDF7BE60-D954-42fd-A972-78971958E470),
+ pointer_default(unique)
+ ]
+ interface IDVBSTuningSpace : IDVBTuningSpace2
+ {
+
+ [propget, id(DISPID_TUNER_TS_DVBS_LOW_OSC_FREQ),
+ helpstring("Low Oscillator Frequency of DVB System in KHZ units")
+ ]
+ HRESULT LowOscillator(
+ [out, retval] long *LowOscillator
+ );
+ [propput, id(DISPID_TUNER_TS_DVBS_LOW_OSC_FREQ),
+ helpstring("Low Oscillator Frequency of DVB System in KHZ units")
+ ]
+ HRESULT LowOscillator(
+ [in] long LowOscillator
+ );
+ [propget, id(DISPID_TUNER_TS_DVBS_HI_OSC_FREQ),
+ helpstring("High Oscillator Frequency of DVB System in KHZ units")
+ ]
+ HRESULT HighOscillator(
+ [out, retval] long *HighOscillator
+ );
+ [propput, id(DISPID_TUNER_TS_DVBS_HI_OSC_FREQ),
+ helpstring("High Oscillator Frequency of DVB System in KHZ units")
+ ]
+ HRESULT HighOscillator(
+ [in] long HighOscillator
+ );
+ [propget, id(DISPID_TUNER_TS_DVBS_LNB_SWITCH_FREQ),
+ helpstring("LNB Switch Frequency of DVB System in KHZ units")
+ ]
+ HRESULT LNBSwitch(
+ [out, retval] long *LNBSwitch
+ );
+ [propput, id(DISPID_TUNER_TS_DVBS_LNB_SWITCH_FREQ),
+ helpstring("LNB Switch Frequency of DVB System in KHZ units")
+ ]
+ HRESULT LNBSwitch(
+ [in] long LNBSwitch
+ );
+ [propget, id(DISPID_TUNER_TS_DVBS_INPUT_RANGE),
+ helpstring("Which Option/Switch contains the requested signal source")
+ ]
+ HRESULT InputRange(
+ [out, retval] BSTR *InputRange
+ );
+ [propput, id(DISPID_TUNER_TS_DVBS_INPUT_RANGE),
+ helpstring("Which Option/Switch contains the requested signal source")
+ ]
+ HRESULT InputRange(
+ [in] BSTR InputRange
+ );
+ [propget, id(DISPID_TUNER_TS_DVBS_SPECTRAL_INVERSION),
+ helpstring("Which Option/Switch contains the requested signal source")
+ ]
+ HRESULT SpectralInversion(
+ [out, retval] SpectralInversion *SpectralInversionVal
+ );
+ [propput, id(DISPID_TUNER_TS_DVBS_SPECTRAL_INVERSION),
+ helpstring("Which Option/Switch contains the requested signal source")
+ ]
+ HRESULT SpectralInversion(
+ [in] SpectralInversion SpectralInversionVal
+ );
+
+
+ }
+
+
+//////////////////////////////////////////////////////////////////////////////////////
+ [
+ object,
+ hidden,
+ dual,
+ oleautomation,
+ nonextensible,
+ uuid(E48244B8-7E17-4f76-A763-5090FF1E2F30),
+ pointer_default(unique)
+ ]
+ interface IAuxInTuningSpace : ITuningSpace
+ {
+ }
+//////////////////////////////////////////////////////////////////////////////////////
+ [
+ object,
+ hidden,
+ dual,
+ oleautomation,
+ nonextensible,
+ uuid(2A6E293C-2595-11d3-B64C-00C04F79498E),
+ pointer_default(unique)
+ ]
+ interface IAnalogTVTuningSpace : ITuningSpace
+ {
+ [propget, id(DISPID_TUNER_TS_ATV_MINCHANNEL),
+ helpstring("Smallest channel number ever provided by this tuning space")
+ ]
+ HRESULT MinChannel(
+ [out, retval] long *MinChannelVal
+ );
+ [propput, id(DISPID_TUNER_TS_ATV_MINCHANNEL),
+ helpstring("Smallest channel number ever provided by this tuning space")
+ ]
+ HRESULT MinChannel(
+ [in] long NewMinChannelVal
+ );
+ [propget, id(DISPID_TUNER_TS_ATV_MAXCHANNEL),
+ helpstring("Largest channel number ever provided by this tuning space")
+ ]
+ HRESULT MaxChannel(
+ [out, retval] long *MaxChannelVal
+ );
+ [propput, id(DISPID_TUNER_TS_ATV_MAXCHANNEL),
+ helpstring("Largest channel number ever provided by this tuning space")
+ ]
+ HRESULT MaxChannel(
+ [in] long NewMaxChannelVal
+ );
+ [propget, id(DISPID_TUNER_TS_ATV_INPUTTYPE),
+ helpstring("Input type for this tuning space")
+ ]
+ HRESULT InputType([out, retval] TunerInputType *InputTypeVal);
+ [propput, id(DISPID_TUNER_TS_ATV_INPUTTYPE),
+ helpstring("Input type for this tuning space")
+ ]
+ HRESULT InputType([in] TunerInputType NewInputTypeVal);
+ [propget, id(DISPID_TUNER_TS_ATV_COUNTRYCODE),
+ helpstring("International dialing prefix for country of physical broadcast source")
+ ]
+ HRESULT CountryCode([out, retval] long *CountryCodeVal);
+ [propput, id(DISPID_TUNER_TS_ATV_COUNTRYCODE),
+ helpstring("International dialing prefix for country of physical broadcast source")
+ ]
+ HRESULT CountryCode([in] long NewCountryCodeVal);
+ }
+
+//////////////////////////////////////////////////////////////////////////////////////
+ [
+ object,
+ hidden,
+ dual,
+ oleautomation,
+ nonextensible,
+ uuid(0369B4E2-45B6-11d3-B650-00C04F79498E),
+ pointer_default(unique)
+ ]
+// note: we inherit ATSC from analog because we need the same properties.
+// - the definition of channel is overloaded to be the major channel,
+// - input type allows us to distinguish between broadcast and cable frequencies
+// which allows us to use the atsc tuning space class for "open cable".
+// - country code will allow us to redefine physical channel frequencies
+// if any other countries adopt ATSC which may happen in Latin America in particular.
+ interface IATSCTuningSpace : IAnalogTVTuningSpace
+ {
+ [propget, id(DISPID_TUNER_TS_ATSC_MINMINORCHANNEL),
+ helpstring("Smallest minor channel number ever provided by this tuning space")
+ ]
+ HRESULT MinMinorChannel(
+ [out, retval] long *MinMinorChannelVal
+ );
+ [propput, id(DISPID_TUNER_TS_ATSC_MINMINORCHANNEL),
+ helpstring("Smallest minor channel number ever provided by this tuning space")
+ ]
+ HRESULT MinMinorChannel(
+ [in] long NewMinMinorChannelVal
+ );
+ [propget, id(DISPID_TUNER_TS_ATSC_MAXMINORCHANNEL),
+ helpstring("Largest minor channel number ever provided by this tuning space")
+ ]
+ HRESULT MaxMinorChannel(
+ [out, retval] long *MaxMinorChannelVal
+ );
+ [propput, id(DISPID_TUNER_TS_ATSC_MAXMINORCHANNEL),
+ helpstring("Largest minor channel number ever provided by this tuning space")
+ ]
+ HRESULT MaxMinorChannel(
+ [in] long NewMaxMinorChannelVal
+ );
+ [propget, id(DISPID_TUNER_TS_ATSC_MINPHYSCHANNEL),
+ helpstring("Smallest physical channel number ever provided by this tuning space")
+ ]
+ HRESULT MinPhysicalChannel(
+ [out, retval] long *MinPhysicalChannelVal
+ );
+ [propput, id(DISPID_TUNER_TS_ATSC_MINPHYSCHANNEL),
+ helpstring("Smallest physical channel number ever provided by this tuning space")
+ ]
+ HRESULT MinPhysicalChannel(
+ [in] long NewMinPhysicalChannelVal
+ );
+ [propget, id(DISPID_TUNER_TS_ATSC_MAXPHYSCHANNEL),
+ helpstring("Largest physical channel number ever provided by this tuning space")
+ ]
+ HRESULT MaxPhysicalChannel(
+ [out, retval] long *MaxPhysicalChannelVal
+ );
+ [propput, id(DISPID_TUNER_TS_ATSC_MAXPHYSCHANNEL),
+ helpstring("Largest physical channel number ever provided by this tuning space")
+ ]
+ HRESULT MaxPhysicalChannel(
+ [in] long NewMaxPhysicalChannelVal
+ );
+
+ }
+
+//////////////////////////////////////////////////////////////////////////////////////
+ [
+ object,
+ hidden,
+ dual,
+ oleautomation,
+ nonextensible,
+ uuid(2A6E293B-2595-11d3-B64C-00C04F79498E),
+ pointer_default(unique)
+ ]
+ interface IAnalogRadioTuningSpace : ITuningSpace {
+ [propget, id(DISPID_TUNER_TS_AR_MINFREQUENCY),
+ helpstring("Smallest frequency(KHz) ever used by this tuning space")
+ ]
+ HRESULT MinFrequency(
+ [out, retval] long *MinFrequencyVal
+ );
+ [propput, id(DISPID_TUNER_TS_AR_MINFREQUENCY),
+ helpstring("Smallest frequency(KHz) ever used by this tuning space")
+ ]
+ HRESULT MinFrequency(
+ [in] long NewMinFrequencyVal
+ );
+ [propget, id(DISPID_TUNER_TS_AR_MAXFREQUENCY),
+ helpstring("Largest frequency(KHz) ever used by this tuning space")
+ ]
+ HRESULT MaxFrequency(
+ [out, retval] long *MaxFrequencyVal
+ );
+ [propput, id(DISPID_TUNER_TS_AR_MAXFREQUENCY),
+ helpstring("Largest frequency(KHz) ever used by this tuning space")
+ ]
+ HRESULT MaxFrequency(
+ [in] long NewMaxFrequencyVal
+ );
+ [propget, id(DISPID_TUNER_TS_AR_STEP),
+ helpstring("Default step value(KHz) to next frequency for this tuning space")
+ ]
+ HRESULT Step(
+ [out, retval] long *StepVal
+ );
+ [propput, id(DISPID_TUNER_TS_AR_STEP),
+ helpstring("Default step value(KHz) to next frequency for this tuning space")
+ ]
+ HRESULT Step(
+ [in] long NewStepVal
+ );
+ }
+
+
+//////////////////////////////////////////////////////////////////////////////////////
+// Tune Request Interfaces
+//////////////////////////////////////////////////////////////////////////////////////
+// tune requests(of any kind) can only be obtained from tune request factories such as
+// ITuningSpace::CreateTuneRequest. one reason for this is that we always want to be
+// certain that a tune request is bound to the right tuning space. this means we don't
+// have to perform consistency checks all over the place.
+ [
+ object,
+ nonextensible,
+ uuid(07DDC146-FC3D-11d2-9D8C-00C04F72D980),
+ dual,
+ oleautomation,
+ helpstring("Tune Request Interface"),
+ pointer_default(unique)
+ ]
+ interface ITuneRequest : IDispatch
+ {
+ [propget, id(DISPID_TUNER_TR_TUNINGSPACE),
+ helpstring("Tuning Space object")]
+ HRESULT TuningSpace(
+ [out, retval] ITuningSpace **TuningSpace
+ );
+ [propget, id(DISPID_TUNER_TR_COMPONENTS),
+ helpstring("Components collection")]
+ HRESULT Components(
+ [out, retval] IComponents **Components
+ );
+ [id(DISPID_TUNER_TR_CLONE),
+ helpstring("Create a new copy of this tune request")]
+ HRESULT Clone(
+ [out, retval] ITuneRequest **NewTuneRequest
+ );
+ [propget, id(DISPID_TUNER_TR_LOCATOR),
+ helpstring("Locator Object")]
+ HRESULT Locator(
+ [out, retval] ILocator **Locator
+ );
+ [propput, id(DISPID_TUNER_TR_LOCATOR),
+ helpstring("Locator Object")]
+ HRESULT Locator(
+ [in] ILocator *Locator
+ );
+ }
+
+//////////////////////////////////////////////////////////////////////////////////////
+ [
+ object,
+ nonextensible,
+ uuid(0369B4E0-45B6-11d3-B650-00C04F79498E),
+ dual,
+ oleautomation,
+ helpstring("Channel Tune Request Interface"),
+ pointer_default(unique)
+ ]
+ interface IChannelTuneRequest : ITuneRequest
+ {
+ [propget, id(DISPID_CHTUNER_CTR_CHANNEL),
+ helpstring("Channel")]
+ HRESULT Channel(
+ [out, retval] long *Channel
+ );
+ [propput, id(DISPID_CHTUNER_CTR_CHANNEL),
+ helpstring("Channel")]
+ HRESULT Channel(
+ [in] long Channel
+ );
+ }
+
+//////////////////////////////////////////////////////////////////////////////////////
+ [
+ object,
+ nonextensible,
+ uuid(0369B4E1-45B6-11d3-B650-00C04F79498E),
+ dual,
+ oleautomation,
+ helpstring("ATSC Channel Tune Request Interface"),
+ pointer_default(unique)
+ ]
+ interface IATSCChannelTuneRequest : IChannelTuneRequest
+ {
+ [propget, id(DISPID_CHTUNER_ACTR_MINOR_CHANNEL),
+ helpstring("Minor Channel")]
+ HRESULT MinorChannel(
+ [out, retval] long *MinorChannel
+ );
+ [propput, id(DISPID_CHTUNER_ACTR_MINOR_CHANNEL),
+ helpstring("Minor Channel")]
+ HRESULT MinorChannel(
+ [in] long MinorChannel
+ );
+ }
+
+//////////////////////////////////////////////////////////////////////////////////////
+ [
+ object,
+ nonextensible,
+ uuid(0D6F567E-A636-42bb-83BA-CE4C1704AFA2),
+ dual,
+ oleautomation,
+ helpstring("DVB Tune Request Interface"),
+ pointer_default(unique)
+ ]
+ interface IDVBTuneRequest : ITuneRequest
+ {
+ [propget, id(DISPID_DVBTUNER_ONID),
+ helpstring("Original Network ID")]
+ HRESULT ONID(
+ [out, retval] long *ONID
+ );
+ [propput, id(DISPID_DVBTUNER_ONID),
+ helpstring("Original Network ID")]
+ HRESULT ONID(
+ [in] long ONID
+ );
+ [propget, id(DISPID_DVBTUNER_TSID),
+ helpstring("Transport Stream ID")]
+ HRESULT TSID(
+ [out, retval] long *TSID
+ );
+ [propput, id(DISPID_DVBTUNER_TSID),
+ helpstring("Transport Stream ID")]
+ HRESULT TSID(
+ [in] long TSID
+ );
+ [propget, id(DISPID_DVBTUNER_SID),
+ helpstring("Service ID")]
+ HRESULT SID(
+ [out, retval] long *SID
+ );
+ [propput, id(DISPID_DVBTUNER_SID),
+ helpstring("Service ID")]
+ HRESULT SID(
+ [in] long SID
+ );
+ }
+
+//////////////////////////////////////////////////////////////////////////////////////
+/// There are times(for example, reading from a file) when its useful to be able to tune
+/// a basic mpeg2 transport stream that contains minimal tables. this requires the least
+/// common denominator mpeg2 xport stream id information
+/// the following tune request supplies these properties. it can typiclly only be obtained from
+/// an mpeg2tunerequestfactory object. no known tune request(at this time) will return this
+/// from their createtunerequest() method. in other words, this is not the "best" tune request
+/// for any of the current tuning spaces.
+//////////////////////////////////////////////////////////////////////////////////////
+ [
+ object,
+ nonextensible,
+ uuid(EB7D987F-8A01-42ad-B8AE-574DEEE44D1A),
+ dual,
+ oleautomation,
+ helpstring("MPEG2 Tune Request Interface"),
+ pointer_default(unique)
+ ]
+ interface IMPEG2TuneRequest : ITuneRequest
+ {
+ [propget, id(DISPID_MP2TUNER_TSID),
+ helpstring("Transport Stream ID")]
+ HRESULT TSID(
+ [out, retval] long *TSID
+ );
+ [propput, id(DISPID_MP2TUNER_TSID),
+ helpstring("Transport Stream ID")]
+ HRESULT TSID(
+ [in] long TSID
+ );
+ [propget, id(DISPID_MP2TUNER_PROGNO),
+ helpstring("Program Number ID")]
+ HRESULT ProgNo(
+ [out, retval] long *ProgNo
+ );
+ [propput, id(DISPID_MP2TUNER_PROGNO),
+ helpstring("Program Number ID")]
+ HRESULT ProgNo(
+ [in] long ProgNo
+ );
+ }
+
+ [
+ object,
+ nonextensible,
+ hidden,
+ uuid(14E11ABD-EE37-4893-9EA1-6964DE933E39),
+ dual,
+ oleautomation,
+ helpstring("MPEG2 Tune Request Factory Interface"),
+ pointer_default(unique)
+ ]
+ interface IMPEG2TuneRequestFactory : IDispatch
+ {
+ [id(DISPID_MP2TUNERFACTORY_CREATETUNEREQUEST),
+ helpstring("Create MPEG2 Tune Request for specified tuning space(if possible)")]
+ HRESULT CreateTuneRequest(
+ [in] ITuningSpace *TuningSpace,
+ [out, retval] IMPEG2TuneRequest **TuneRequest
+ );
+ }
+
+ [
+ object,
+ hidden,
+ restricted,
+ nonextensible,
+ uuid(1B9D5FC3-5BBC-4b6c-BB18-B9D10E3EEEBF),
+ helpstring("MPEG2 Tune Request Supported Interface"),
+ pointer_default(unique)
+ ]
+ interface IMPEG2TuneRequestSupport : IUnknown
+ {
+ }
+
+
+//////////////////////////////////////////////////////////////////////////////////////
+// Tuner Interfaces
+//////////////////////////////////////////////////////////////////////////////////////
+ [
+ object,
+ hidden,
+ nonextensible,
+ uuid(28C52640-018A-11d3-9D8E-00C04F72D980),
+ helpstring("Tuner Interface"),
+ pointer_default(unique)
+ ]
+ interface ITuner : IUnknown
+ {
+ [propget, helpstring("Tuning Space object")]
+ HRESULT TuningSpace(
+ [out, retval] ITuningSpace **TuningSpace
+ );
+
+ [propput, helpstring("Tuning Space object")]
+ HRESULT TuningSpace(
+ [in] ITuningSpace *TuningSpace
+ );
+
+ [hidden, restricted, helpstring("Returns an enumerator for Tuning Spaces accepted by this tuner")]
+ HRESULT EnumTuningSpaces(
+ [out, retval] IEnumTuningSpaces **ppEnum
+ );
+
+ [propget, helpstring("Tune Request object")]
+ HRESULT TuneRequest(
+ [out, retval] ITuneRequest **TuneRequest
+ );
+
+ [propput, helpstring("Tune Request object")]
+ HRESULT TuneRequest(
+ [in] ITuneRequest *TuneRequest
+ );
+
+ [helpstring("Validate the tuning request without tuning")]
+ HRESULT Validate(
+ [in] ITuneRequest *TuneRequest
+ );
+
+ [propget, helpstring("Preferred Component Types collection")]
+ HRESULT PreferredComponentTypes(
+ [out, retval] IComponentTypes **ComponentTypes
+ );
+
+ [propput, helpstring("Preferred Component Types collection")]
+ HRESULT PreferredComponentTypes(
+ [in] IComponentTypes *ComponentTypes
+ );
+
+ [propget, helpstring("Signal Strength")]
+ HRESULT SignalStrength(
+ [out, retval] long *Strength
+ );
+
+ [helpstring("Trigger Signal events (interval in milliseconds; 0 turns off trigger)")]
+ HRESULT TriggerSignalEvents(
+ [in] long Interval
+ );
+ }
+
+//////////////////////////////////////////////////////////////////////////////////////
+ [
+ object,
+ hidden,
+ nonextensible,
+ uuid(1DFD0A5C-0284-11d3-9D8E-00C04F72D980),
+ helpstring("Scanning Tuner Interface"),
+ pointer_default(unique)
+ ]
+ interface IScanningTuner : ITuner
+ {
+ [helpstring("Seek to the next valid selection")]
+ HRESULT SeekUp(
+ );
+
+ [helpstring("Seek to the previous valid selection")]
+ HRESULT SeekDown(
+ );
+
+ [helpstring("Scan for valid selections upward")]
+ HRESULT ScanUp(
+ [in] long MillisecondsPause
+ );
+
+ [helpstring("Scan for valid selections downward")]
+ HRESULT ScanDown(
+ [in] long MillisecondsPause
+ );
+
+ [helpstring("Enter the device's autoprogram mode")]
+ HRESULT AutoProgram(
+ );
+ };
+
+//////////////////////////////////////////////////////////////////////////////////////
+// Component Type Interfaces
+//////////////////////////////////////////////////////////////////////////////////////
+
+ // Component Category
+
+ [
+ object,
+ hidden,
+ nonextensible,
+ uuid(6A340DC0-0311-11d3-9D8E-00C04F72D980),
+ dual,
+ oleautomation,
+ helpstring("Component Type Interface"),
+ pointer_default(unique)
+ ]
+ interface IComponentType : IDispatch
+ {
+ [propget, id(DISPID_TUNER_CT_CATEGORY),
+ helpstring("General category of component")]
+ HRESULT Category(
+ [out, retval] ComponentCategory *Category
+ );
+ [propput, id(DISPID_TUNER_CT_CATEGORY),
+ helpstring("General category of component")]
+ HRESULT Category(
+ [in] ComponentCategory Category
+ );
+
+ [propget, id(DISPID_TUNER_CT_MEDIAMAJORTYPE),
+ helpstring("DirectShow MediaType Major Type Guid")]
+ HRESULT MediaMajorType(
+ [out, retval] BSTR *MediaMajorType
+ );
+ [propput, id(DISPID_TUNER_CT_MEDIAMAJORTYPE),
+ helpstring("DirectShow MediaType Major Type Guid")]
+ HRESULT MediaMajorType(
+ [in] BSTR MediaMajorType
+ );
+ [propget, id(DISPID_TUNER_CT__MEDIAMAJORTYPE),
+ helpstring("DirectShow MediaType Major Type Guid"), hidden, restricted]
+ HRESULT _MediaMajorType(
+ [out, retval] GUID* MediaMajorTypeGuid
+ );
+ [propput, id(DISPID_TUNER_CT__MEDIAMAJORTYPE),
+ helpstring("DirectShow MediaType Major Type Guid"), hidden, restricted]
+ HRESULT _MediaMajorType(
+ [in] REFCLSID MediaMajorTypeGuid
+ );
+ [propget, id(DISPID_TUNER_CT_MEDIASUBTYPE),
+ helpstring("DirectShow MediaType Sub Type Guid")]
+ HRESULT MediaSubType(
+ [out, retval] BSTR *MediaSubType
+ );
+ [propput, id(DISPID_TUNER_CT_MEDIASUBTYPE),
+ helpstring("DirectShow MediaType Sub Type Guid")]
+ HRESULT MediaSubType(
+ [in] BSTR MediaSubType
+ );
+ [propget, id(DISPID_TUNER_CT__MEDIASUBTYPE),
+ helpstring("DirectShow MediaType Sub Type Guid"), hidden, restricted]
+ HRESULT _MediaSubType(
+ [out, retval] GUID* MediaSubTypeGuid
+ );
+ [propput, id(DISPID_TUNER_CT__MEDIASUBTYPE),
+ helpstring("DirectShow MediaType Sub Type Guid"), hidden, restricted]
+ HRESULT _MediaSubType(
+ [in] REFCLSID MediaSubTypeGuid
+ );
+ [propget, id(DISPID_TUNER_CT_MEDIAFORMATTYPE),
+ helpstring("DirectShow MediaType Format Guid")]
+ HRESULT MediaFormatType(
+ [out, retval] BSTR *MediaFormatType
+ );
+ [propput, id(DISPID_TUNER_CT_MEDIAFORMATTYPE),
+ helpstring("DirectShow MediaType Format Guid")]
+ HRESULT MediaFormatType(
+ [in] BSTR MediaFormatType
+ );
+ [propget, id(DISPID_TUNER_CT__MEDIAFORMATTYPE),
+ helpstring("DirectShow MediaType Format Guid"), hidden, restricted]
+ HRESULT _MediaFormatType(
+ [out, retval] GUID* MediaFormatTypeGuid
+ );
+ [propput, id(DISPID_TUNER_CT__MEDIAFORMATTYPE),
+ helpstring("DirectShow MediaType Format Guid"), hidden, restricted]
+ HRESULT _MediaFormatType(
+ [in] REFCLSID MediaFormatTypeGuid
+ );
+
+ [propget, id(DISPID_TUNER_CT_MEDIATYPE), hidden, restricted,
+ helpstring("DirectShow MediaType Guid, this only retrieves major, sub, format guids not the entire struct")]
+ HRESULT MediaType(
+ [out, retval] AM_MEDIA_TYPE *MediaType
+ );
+ [propput, id(DISPID_TUNER_CT_MEDIATYPE), hidden, restricted,
+ helpstring("DirectShow MediaType Guid, this only retrieves major, sub, format guids not the entire struct")]
+ HRESULT MediaType(
+ [in] AM_MEDIA_TYPE *MediaType
+ );
+
+ [id(DISPID_TUNER_CT_CLONE),
+ helpstring("Create a copy of this component type")]
+ HRESULT Clone(
+ [out, retval] IComponentType **NewCT
+ );
+ };
+
+//////////////////////////////////////////////////////////////////////////////////////
+ [
+ object,
+ hidden,
+ nonextensible,
+ uuid(B874C8BA-0FA2-11d3-9D8E-00C04F72D980),
+ dual,
+ oleautomation,
+ helpstring("Language Component Type Interface"),
+ pointer_default(unique)
+ ]
+ interface ILanguageComponentType : IComponentType
+ {
+ [propget, id(DISPID_TUNER_LCT_LANGID),
+ helpstring("Language Identifier for Substream Content Language")]
+ HRESULT LangID(
+ [out, retval] long *LangID
+ );
+
+ [propput, id(DISPID_TUNER_LCT_LANGID),
+ helpstring("Language Identifier for Substream Content Language")]
+ HRESULT LangID(
+ [in] long LangID
+ );
+ };
+
+//////////////////////////////////////////////////////////////////////////////////////
+ [
+ object,
+ hidden,
+ nonextensible,
+ uuid(2C073D84-B51C-48c9-AA9F-68971E1F6E38),
+ dual,
+ oleautomation,
+ helpstring("MPEG2 Component Type Interface"),
+ pointer_default(unique)
+ ]
+ interface IMPEG2ComponentType : ILanguageComponentType
+ {
+ [propget, id(DISPID_TUNER_MP2CT_TYPE),
+ helpstring("MPEG2 Stream Type")]
+ HRESULT StreamType(
+ [out, retval] MPEG2StreamType *MP2StreamType
+ );
+
+ [propput, id(DISPID_TUNER_MP2CT_TYPE),
+ helpstring("MPEG2 Stream Type")]
+ HRESULT StreamType(
+ [in] MPEG2StreamType MP2StreamType
+ );
+ };
+
+//////////////////////////////////////////////////////////////////////////////////////
+
+ [
+ object,
+ hidden,
+ nonextensible,
+ uuid(FC189E4D-7BD4-4125-B3B3-3A76A332CC96),
+ dual,
+ oleautomation,
+ helpstring("ATSC Component Type Interface"),
+ pointer_default(unique)
+ ]
+ interface IATSCComponentType : IMPEG2ComponentType
+ {
+ [propget, id(DISPID_TUNER_ATSCCT_FLAGS),
+ helpstring("ATSC Component Type Flags")]
+ HRESULT Flags(
+ [out, retval] long *Flags
+ );
+
+ [propput, id(DISPID_TUNER_ATSCCT_FLAGS),
+ helpstring("ATSC Component Type Flags")]
+ HRESULT Flags(
+ [in] long flags
+ );
+ };
+
+//////////////////////////////////////////////////////////////////////////////////////
+ [
+ hidden, restricted,
+ object,
+ uuid(8A674B4A-1F63-11d3-B64C-00C04F79498E),
+ pointer_default(unique)
+ ]
+ interface IEnumComponentTypes : IUnknown
+ {
+ HRESULT Next(
+ [in] ULONG celt,
+ [out, size_is(celt), length_is(*pceltFetched)]
+ IComponentType** rgelt,
+ [out] ULONG* pceltFetched
+ );
+
+ HRESULT Skip(
+ [in] ULONG celt
+ );
+
+ HRESULT Reset(void);
+
+ HRESULT Clone(
+ [out] IEnumComponentTypes** ppEnum
+ );
+ }
+
+
+//////////////////////////////////////////////////////////////////////////////////////
+// Component Type Container
+//////////////////////////////////////////////////////////////////////////////////////
+
+ [
+ object,
+ hidden,
+ nonextensible,
+ uuid(0DC13D4A-0313-11d3-9D8E-00C04F72D980),
+ dual,
+ oleautomation,
+ helpstring("ComponentType Collection Interface"),
+ pointer_default(unique)
+ ]
+ interface IComponentTypes : IDispatch
+ {
+ [propget, helpstring("Number of items in the collection")]
+ HRESULT Count(
+ [out, retval] long *Count
+ );
+
+ [propget, id(DISPID_NEWENUM), hidden, restricted]
+ HRESULT _NewEnum(
+ [out, retval] IEnumVARIANT **ppNewEnum
+ );
+
+ [hidden, restricted, helpstring("Convenience Function for Use with C")]
+ HRESULT EnumComponentTypes(
+ [out, retval] IEnumComponentTypes **ppNewEnum
+ );
+
+ [id(DISPID_VALUE),
+ propget,
+ helpstring("Get the ComponentType at the specified index")]
+ HRESULT Item(
+ [in] VARIANT Index,
+ [out, retval] IComponentType **ComponentType
+ );
+
+ [id(DISPID_VALUE),
+ propput,
+ helpstring("Get the ComponentType at the specified index")]
+ HRESULT Item(
+ [in] VARIANT Index,
+ [in] IComponentType *ComponentType
+ );
+
+ [id(DISPID_ADDITEM),
+ helpstring("Append the ComponentType to the collection")]
+ HRESULT Add(
+ [in] IComponentType *ComponentType,
+ [out, retval] VARIANT *NewIndex
+ );
+
+ [id(DISPID_REMOVEITEM),
+ helpstring("Clear the collection")]
+ HRESULT Remove(
+ [in] VARIANT Index
+ );
+
+ [helpstring("Copy the collection")]
+ HRESULT Clone([out, retval] IComponentTypes **NewList);
+ };
+
+//////////////////////////////////////////////////////////////////////////////////////
+// Component Interfaces
+//////////////////////////////////////////////////////////////////////////////////////
+
+ [
+ object,
+ nonextensible,
+ uuid(1A5576FC-0E19-11d3-9D8E-00C04F72D980),
+ dual,
+ oleautomation,
+ helpstring("Component Interface"),
+ pointer_default(unique)
+ ]
+ interface IComponent : IDispatch
+ {
+ [propget, id(DISPID_TUNER_C_TYPE),
+ helpstring("Component Type")]
+ HRESULT Type(
+ [out, retval] IComponentType** CT
+ );
+
+ // only loaders initialize components
+ [hidden, restricted, propput, id(DISPID_TUNER_C_TYPE),
+ helpstring("Component Type")]
+ HRESULT Type(
+ [in] IComponentType* CT
+ );
+
+ // NOTE: this langid is *not* the same as the langid
+ // in the componenttype(if the componenttype is a languagecomponenttype)
+ // the langid in the component type is the language of the content this
+ // component is describing. the following langid in the component is the
+ // language of the descriptive info in the component object.
+ [propget, id(DISPID_TUNER_C_LANGID),
+ helpstring("Language Identifier for Description Language")]
+ HRESULT DescLangID(
+ [out, retval] long *LangID
+ );
+
+ [propput, id(DISPID_TUNER_C_LANGID),
+ helpstring("Language Identifier for Description Language")]
+ HRESULT DescLangID(
+ [in] long LangID
+ );
+
+ [propget, id(DISPID_TUNER_C_STATUS),
+ helpstring("Component Status")]
+ HRESULT Status(
+ [out, retval] ComponentStatus *Status
+ );
+
+ [propput, id(DISPID_TUNER_C_STATUS),
+ helpstring("Component Status")]
+ HRESULT Status(
+ [in] ComponentStatus Status
+ );
+
+ [propget, id(DISPID_TUNER_C_DESCRIPTION),
+ helpstring("Component Description")]
+ HRESULT Description(
+ [out, retval] BSTR *Description
+ );
+
+ // restricted: only loaders will initialize components
+ [hidden, restricted, propput, id(DISPID_TUNER_C_DESCRIPTION),
+ helpstring("Component Description")]
+ HRESULT Description(
+ [in] BSTR Description
+ );
+
+ [id(DISPID_TUNER_C_CLONE),
+ helpstring("Copy Component")]
+ HRESULT Clone(
+ [out, retval] IComponent **NewComponent
+ );
+
+ };
+
+//////////////////////////////////////////////////////////////////////////////////////
+ [
+ object,
+ nonextensible,
+ uuid(1493E353-1EB6-473c-802D-8E6B8EC9D2A9),
+ dual,
+ oleautomation,
+ helpstring("MPEG2 Component Interface"),
+ pointer_default(unique)
+ ]
+ interface IMPEG2Component : IComponent
+ {
+ [propget, id(DISPID_TUNER_C_MP2_PID),
+ helpstring("MPEG2 Packet ID for this Substream")]
+ HRESULT PID(
+ [out, retval] long *PID
+ );
+
+ [propput, id(DISPID_TUNER_C_MP2_PID),
+ helpstring("MPEG2 Packet ID for this Substream")]
+ HRESULT PID(
+ [in] long PID
+ );
+ [propget, id(DISPID_TUNER_C_MP2_PCRPID),
+ helpstring("MPEG2 Packet ID for this Substream's Timestamps")]
+ HRESULT PCRPID(
+ [out, retval] long *PCRPID
+ );
+
+ [propput, id(DISPID_TUNER_C_MP2_PCRPID),
+ helpstring("MPEG2 Packet ID for this Substream's Timestamps")]
+ HRESULT PCRPID(
+ [in] long PCRPID
+ );
+
+ // program number provides reverse lookup to PAT
+ [propget, id(DISPID_TUNER_C_MP2_PROGNO),
+ helpstring("MPEG2 Program Number")]
+ HRESULT ProgramNumber(
+ [out, retval] long *ProgramNumber
+ );
+
+ [propput, id(DISPID_TUNER_C_MP2_PROGNO),
+ helpstring("MPEG2 Program Number")]
+ HRESULT ProgramNumber(
+ [in] long ProgramNumber
+ );
+ };
+
+//////////////////////////////////////////////////////////////////////////////////////
+ [
+ hidden, restricted,
+ object,
+ uuid(2A6E2939-2595-11d3-B64C-00C04F79498E),
+ pointer_default(unique)
+ ]
+ interface IEnumComponents : IUnknown
+ {
+ HRESULT Next(
+ [in] ULONG celt,
+ [out, size_is(celt), length_is(*pceltFetched)]
+ IComponent** rgelt,
+ [out] ULONG* pceltFetched
+ );
+
+ HRESULT Skip(
+ [in] ULONG celt
+ );
+
+ HRESULT Reset(void);
+
+ HRESULT Clone(
+ [out] IEnumComponents** ppEnum
+ );
+ }
+
+
+//////////////////////////////////////////////////////////////////////////////////////
+// Component Container
+//////////////////////////////////////////////////////////////////////////////////////
+
+ [
+ object,
+ nonextensible,
+ uuid(FCD01846-0E19-11d3-9D8E-00C04F72D980),
+ dual,
+ oleautomation,
+ helpstring("Component Collection Interface"),
+ pointer_default(unique)
+ ]
+ interface IComponents : IDispatch
+ {
+ [propget, helpstring("Number of items in the collection")]
+ HRESULT Count(
+ [out, retval] long *Count
+ );
+
+ [propget, id(DISPID_NEWENUM), hidden, restricted]
+ HRESULT _NewEnum(
+ [out, retval] IEnumVARIANT **ppNewEnum
+ );
+
+ [hidden, restricted, helpstring("Convenience Function for Use with C")]
+ HRESULT EnumComponents(
+ [out, retval] IEnumComponents **ppNewEnum
+ );
+
+ [id(DISPID_VALUE),
+ propget,
+ helpstring("Get the Component at the specified index")]
+ HRESULT Item(
+ [in] VARIANT Index,
+ [out, retval] IComponent **ppComponent
+ );
+
+ [id(DISPID_ADDITEM),
+ helpstring("Add the Component to the collection")]
+ HRESULT Add(
+ [in] IComponent *Component,
+ [out, retval] VARIANT *NewIndex
+ );
+
+ [id(DISPID_REMOVEITEM),
+ helpstring("Remove the Component at the specified index")]
+ HRESULT Remove(
+ [in] VARIANT Index
+ );
+
+ [helpstring("Copy the collection")]
+ HRESULT Clone([out, retval] IComponents **NewList);
+ };
+
+//////////////////////////////////////////////////////////////////////////////////////
+// Component Container
+//////////////////////////////////////////////////////////////////////////////////////
+// this separates the what(general tune request properties) from the where
+
+
+
+ [
+ object,
+ nonextensible,
+ uuid(286D7F89-760C-4F89-80C4-66841D2507AA),
+ dual,
+ oleautomation,
+ helpstring("Generic Locator Information"),
+ pointer_default(unique)
+ ]
+ interface ILocator : IDispatch
+ {
+
+ [propget, id(DISPID_TUNER_L_CARRFREQ), helpstring("Carrier Frequency(KHz)")]
+ HRESULT CarrierFrequency(
+ [out, retval] long* Frequency
+ );
+ [propput, id(DISPID_TUNER_L_CARRFREQ), helpstring("Carrier Frequency(KHz)")]
+ HRESULT CarrierFrequency(
+ [in] long Frequency
+ );
+ [propget, id(DISPID_TUNER_L_INNERFECMETHOD), helpstring("Inner Fec Type")]
+ HRESULT InnerFEC(
+ [out, retval] FECMethod* FEC
+ );
+ [propput, id(DISPID_TUNER_L_INNERFECMETHOD), helpstring("Inner Fec Type")]
+ HRESULT InnerFEC(
+ [in] FECMethod FEC
+ );
+ [propget, id(DISPID_TUNER_L_INNERFECRATE), helpstring("Inner Fec Rate")]
+ HRESULT InnerFECRate(
+ [out, retval] BinaryConvolutionCodeRate* FEC
+ );
+ [propput, id(DISPID_TUNER_L_INNERFECRATE), helpstring("Inner Fec Rate")]
+ HRESULT InnerFECRate(
+ [in] BinaryConvolutionCodeRate FEC
+ );
+ [propget, id(DISPID_TUNER_L_OUTERFECMETHOD), helpstring("Outer Fec Type")]
+ HRESULT OuterFEC(
+ [out, retval] FECMethod* FEC
+ );
+ [propput, id(DISPID_TUNER_L_OUTERFECMETHOD), helpstring("Outer Fec Type")]
+ HRESULT OuterFEC(
+ [in] FECMethod FEC
+ );
+ [propget, id(DISPID_TUNER_L_OUTERFECRATE), helpstring("Outer Fec Rate")]
+ HRESULT OuterFECRate(
+ [out, retval] BinaryConvolutionCodeRate* FEC
+ );
+ [propput, id(DISPID_TUNER_L_OUTERFECRATE), helpstring("Outer Fec Rate")]
+ HRESULT OuterFECRate(
+ [in] BinaryConvolutionCodeRate FEC
+ );
+ [propget, id(DISPID_TUNER_L_MOD), helpstring("Modulation Type")]
+ HRESULT Modulation(
+ [out, retval] ModulationType* Modulation
+ );
+ [propput, id(DISPID_TUNER_L_MOD), helpstring("Modulation Type")]
+ HRESULT Modulation(
+ [in] ModulationType Modulation
+ );
+ [propget, id(DISPID_TUNER_L_SYMRATE), helpstring("Modulation Symbol Rate")]
+ HRESULT SymbolRate(
+ [out, retval] long* Rate
+ );
+ [propput, id(DISPID_TUNER_L_SYMRATE), helpstring("Modulation Symbol Rate")]
+ HRESULT SymbolRate(
+ [in] long Rate
+ );
+ [id(DISPID_TUNER_L_CLONE), helpstring("Copy the Locator")]
+ HRESULT Clone([out, retval] ILocator **NewLocator);
+ };
+
+//////////////////////////////////////////////////////////////////////////////////////
+ [
+ object,
+ hidden,
+ nonextensible,
+ uuid(BF8D986F-8C2B-4131-94D7-4D3D9FCC21EF),
+ dual,
+ oleautomation,
+ helpstring("ATSC Locator Information"),
+ pointer_default(unique)
+ ]
+ interface IATSCLocator : ILocator
+ {
+ [propget, id(DISPID_TUNER_L_ATSC_PHYS_CHANNEL),
+ helpstring("Physical Channel")]
+ HRESULT PhysicalChannel(
+ [out, retval] long *PhysicalChannel
+ );
+ [propput, id(DISPID_TUNER_L_ATSC_PHYS_CHANNEL),
+ helpstring("Physical Channel")]
+ HRESULT PhysicalChannel(
+ [in] long PhysicalChannel
+ );
+ [propget, id(DISPID_TUNER_L_ATSC_TSID),
+ helpstring("Transport Stream ID")]
+ HRESULT TSID(
+ [out, retval] long *TSID
+ );
+ [propput, id(DISPID_TUNER_L_ATSC_TSID),
+ helpstring("Transport Stream ID")]
+ HRESULT TSID(
+ [in] long TSID
+ );
+ };
+
+//////////////////////////////////////////////////////////////////////////////////////
+
+ [
+ object,
+ hidden,
+ nonextensible,
+ uuid(8664DA16-DDA2-42ac-926A-C18F9127C302),
+ dual,
+ oleautomation,
+ helpstring("DVB Terrestrial Locator Information"),
+ pointer_default(unique)
+ ]
+ interface IDVBTLocator : ILocator
+ {
+ [propget, id(DISPID_TUNER_L_DVBT_BANDWIDTH), helpstring("Bandwidth")]
+ HRESULT Bandwidth(
+ [out, retval] long* BandWidthVal
+ );
+ [propput, id(DISPID_TUNER_L_DVBT_BANDWIDTH), helpstring("Bandwidth")]
+ HRESULT Bandwidth(
+ [in] long BandwidthVal
+ );
+
+ [propget, id(DISPID_TUNER_L_DVBT_LPINNERFECMETHOD), helpstring("Inner Fec Type for Low Priority Stream")]
+ HRESULT LPInnerFEC(
+ [out, retval] FECMethod* FEC
+ );
+ [propput, id(DISPID_TUNER_L_DVBT_LPINNERFECMETHOD), helpstring("Inner Fec Type for Low Priority Stream")]
+ HRESULT LPInnerFEC(
+ [in] FECMethod FEC
+ );
+ [propget, id(DISPID_TUNER_L_DVBT_LPINNERFECRATE), helpstring("Inner Fec Rate for Low Priority Stream")]
+ HRESULT LPInnerFECRate(
+ [out, retval] BinaryConvolutionCodeRate* FEC
+ );
+ [propput, id(DISPID_TUNER_L_DVBT_LPINNERFECRATE), helpstring("Inner Fec Rate for Low Priority Stream")]
+ HRESULT LPInnerFECRate(
+ [in] BinaryConvolutionCodeRate FEC
+ );
+ [propget, id(DISPID_TUNER_L_DVBT_HALPHA), helpstring("Hierarchical Alpha")]
+ HRESULT HAlpha(
+ [out, retval] HierarchyAlpha* Alpha
+ );
+ [propput, id(DISPID_TUNER_L_DVBT_HALPHA), helpstring("Hierarchical Alpha")]
+ HRESULT HAlpha(
+ [in] HierarchyAlpha Alpha
+ );
+ [propget, id(DISPID_TUNER_L_DVBT_GUARDINTERVAL), helpstring("Guard Interval")]
+ HRESULT Guard(
+ [out, retval] GuardInterval* GI
+ );
+ [propput, id(DISPID_TUNER_L_DVBT_GUARDINTERVAL), helpstring("Guard Interval")]
+ HRESULT Guard(
+ [in] GuardInterval GI
+ );
+ [propget, id(DISPID_TUNER_L_DVBT_TRANSMISSIONMODE), helpstring("Transmission Mode")]
+ HRESULT Mode(
+ [out, retval] TransmissionMode* mode
+ );
+ [propput, id(DISPID_TUNER_L_DVBT_TRANSMISSIONMODE), helpstring("Transmission Mode")]
+ HRESULT Mode(
+ [in] TransmissionMode mode
+ );
+ [propget, id(DISPID_TUNER_L_DVBT_INUSE), helpstring("Hierarchical Alpha")]
+ HRESULT OtherFrequencyInUse(
+ [out, retval] VARIANT_BOOL* OtherFrequencyInUseVal
+ );
+ [propput, id(DISPID_TUNER_L_DVBT_INUSE), helpstring("Hierarchical Alpha")]
+ HRESULT OtherFrequencyInUse(
+ [in] VARIANT_BOOL OtherFrequencyInUseVal
+ );
+ };
+
+//////////////////////////////////////////////////////////////////////////////////////
+ [
+ object,
+ hidden,
+ nonextensible,
+ uuid(3D7C353C-0D04-45f1-A742-F97CC1188DC8),
+ dual,
+ oleautomation,
+ helpstring("DVB Satellite Locator Information"),
+ pointer_default(unique)
+ ]
+ interface IDVBSLocator : ILocator
+ {
+
+ [propget, id(DISPID_TUNER_L_DVBS_POLARISATION), helpstring("Signal Polarisation Type")]
+ HRESULT SignalPolarisation(
+ [out, retval] Polarisation* PolarisationVal
+ );
+ [propput, id(DISPID_TUNER_L_DVBS_POLARISATION), helpstring("Signal Polarisation Type")]
+ HRESULT SignalPolarisation(
+ [in] Polarisation PolarisationVal
+ );
+ [propget, id(DISPID_TUNER_L_DVBS_WEST), helpstring("VARIANT_TRUE means orbital position specifies west longitude")]
+ HRESULT WestPosition(
+ [out, retval] VARIANT_BOOL* WestLongitude
+ );
+ [propput, id(DISPID_TUNER_L_DVBS_WEST), helpstring("VARIANT_TRUE means orbital position specifies west longitude")]
+ HRESULT WestPosition(
+ [in] VARIANT_BOOL WestLongitude
+ );
+ [propget, id(DISPID_TUNER_L_DVBS_ORBITAL), helpstring("Longitude in tenths of a degree")]
+ HRESULT OrbitalPosition(
+ [out, retval] long* longitude
+ );
+ [propput, id(DISPID_TUNER_L_DVBS_ORBITAL), helpstring("Longitude in tenths of a degree")]
+ HRESULT OrbitalPosition(
+ [in] long longitude
+ );
+ [propget, id(DISPID_TUNER_L_DVBS_AZIMUTH), helpstring("Azimuth in tenths of a degree")]
+ HRESULT Azimuth(
+ [out, retval] long* Azimuth
+ );
+ [propput, id(DISPID_TUNER_L_DVBS_AZIMUTH), helpstring("Azimuth in tenths of a degree")]
+ HRESULT Azimuth(
+ [in] long Azimuth
+ );
+ [propget, id(DISPID_TUNER_L_DVBS_ELEVATION), helpstring("Elevation in tenths of a degree")]
+ HRESULT Elevation(
+ [out, retval] long* Elevation
+ );
+ [propput, id(DISPID_TUNER_L_DVBS_ELEVATION), helpstring("Elevation in tenths of a degree")]
+ HRESULT Elevation(
+ [in] long Elevation
+ );
+ };
+
+//////////////////////////////////////////////////////////////////////////////////////
+ [
+ object,
+ hidden,
+ nonextensible,
+ uuid(6E42F36E-1DD2-43c4-9F78-69D25AE39034),
+ dual,
+ oleautomation,
+ helpstring("DVB Cable Locator Information"),
+ pointer_default(unique)
+ ]
+ interface IDVBCLocator : ILocator
+ {
+ };
+
+///////////////////////////////////////////////////////////////////////////////////////
+// utility interfaces
+///////////////////////////////////////////////////////////////////////////////////////
+
+ [
+ object,
+ hidden,
+ nonextensible,
+ uuid(3B21263F-26E8-489d-AAC4-924F7EFD9511),
+ helpstring("Broadcast Event Service Firing/Reflecting Interface"),
+ pointer_default(unique)
+ ]
+ interface IBroadcastEvent : IUnknown
+ {
+ HRESULT Fire(GUID EventID);
+ };
+
+
+//////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////////////
+// TYPELIB & CoClasses
+//////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////////////
+[
+ uuid(9B085638-018E-11d3-9D8E-00C04F72D980),
+ version(1.0),
+ helpstring("Microsoft Tuner 1.0 Type Library")
+]
+library TunerLib
+{
+ importlib("stdole2.tlb");
+
+ // SystemTuningSpaces class
+ [
+ uuid(D02AAC50-027E-11d3-9D8E-00C04F72D980),
+ helpstring("SystemTuningSpace Class")
+ ]
+ coclass SystemTuningSpaces
+ {
+ [default] interface ITuningSpaceContainer;
+ };
+
+ // NOTE: there is no object factory for this class. the implementation for the underlying
+ // code is a c++ abstract base class. this coclass is only provided here to
+ // force vb to expose the base interface to enable polymorphic access to
+ // derived objects
+ [
+ hidden, restricted,
+ uuid(5FFDC5E6-B83A-4b55-B6E8-C69E765FE9DB),
+ helpstring("dummy class to expose base tuning space i/f to VB")
+ ]
+ coclass TuningSpace
+ {
+ [default] interface ITuningSpace;
+ };
+
+
+ [
+ uuid(A2E30750-6C3D-11d3-B653-00C04F79498E),
+ helpstring("ATSC Digital Broadcast Tuning Space Class")
+ ]
+ coclass ATSCTuningSpace
+ {
+ [default] interface IATSCTuningSpace;
+ };
+
+ [
+ uuid(8A674B4C-1F63-11d3-B64C-00C04F79498E),
+ helpstring("Analog Radio Tuning Space Class")
+ ]
+ coclass AnalogRadioTuningSpace
+ {
+ [default] interface IAnalogRadioTuningSpace;
+ };
+
+ [
+ uuid(F9769A06-7ACA-4e39-9CFB-97BB35F0E77E),
+ helpstring("Auxiliary Inputs Tuning Space Class")
+ ]
+ coclass AuxInTuningSpace
+ {
+ [default] interface IAuxInTuningSpace;
+ };
+
+ [
+ uuid(8A674B4D-1F63-11d3-B64C-00C04F79498E),
+ helpstring("Analog TV Tuning Space Class")
+ ]
+ coclass AnalogTVTuningSpace
+ {
+ [default] interface IAnalogTVTuningSpace;
+ };
+
+ [
+ uuid(C6B14B32-76AA-4a86-A7AC-5C79AAF58DA7),
+ helpstring("DVB Tuning Space Class")
+ ]
+ coclass DVBTuningSpace
+ {
+ [default] interface IDVBTuningSpace2;
+ interface IDVBTuningSpace;
+ };
+
+ [
+ uuid(B64016F3-C9A2-4066-96F0-BD9563314726),
+ helpstring("DVB Satellite Tuning Space Class")
+ ]
+ coclass DVBSTuningSpace
+ {
+ [default] interface IDVBSTuningSpace;
+ };
+
+
+ // ComponentTypes container class
+ [
+ uuid(A1A2B1C4-0E3A-11d3-9D8E-00C04F72D980),
+ helpstring("Component Types Collection Class")
+ ]
+ coclass ComponentTypes
+ {
+ [default] interface IComponentTypes;
+ };
+
+ // ComponentType class
+ [
+ uuid(823535A0-0318-11d3-9D8E-00C04F72D980),
+ helpstring("ComponentType Class")
+ ]
+ coclass ComponentType
+ {
+ [default] interface IComponentType;
+ };
+
+ // Language ComponentType class
+ [
+ uuid(1BE49F30-0E1B-11d3-9D8E-00C04F72D980),
+ helpstring("LanguageComponentType Class")
+ ]
+ coclass LanguageComponentType
+ {
+ [default] interface ILanguageComponentType;
+ };
+
+ // MPEG2 ComponentType class
+ [
+ uuid(418008F3-CF67-4668-9628-10DC52BE1D08),
+ helpstring("MPEG2ComponentType Class")
+ ]
+ coclass MPEG2ComponentType
+ {
+ [default] interface IMPEG2ComponentType;
+ };
+
+ // ATSC ComponentType class
+ [
+ uuid(A8DCF3D5-0780-4ef4-8A83-2CFFAACB8ACE),
+ helpstring("ATSCComponentType Class")
+ ]
+ coclass ATSCComponentType
+ {
+ [default] interface IATSCComponentType;
+ };
+
+ // Components class
+ [
+ hidden, restricted,
+ uuid(809B6661-94C4-49e6-B6EC-3F0F862215AA),
+ helpstring("Components Collection Class")
+ ]
+ coclass Components
+ {
+ [default] interface IComponents;
+ };
+
+ // Component class
+ // the components can only be created by network provider/tif. client apps
+ // retrieve them from a filled-in tune request by either loading a persisted tune
+ // request that has been filled in by a proper guide store loader or by re-getting
+ // the current tune request property which will have this filled in by the network
+ // provider
+ [
+ hidden, restricted,
+ uuid(59DC47A8-116C-11d3-9D8E-00C04F72D980),
+ helpstring("Component Class")
+ ]
+ coclass Component
+ {
+ [default] interface IComponent;
+ };
+
+ // MPEG2 Component class
+ [
+ hidden, restricted,
+ uuid(055CB2D7-2969-45cd-914B-76890722F112),
+ helpstring("MPEG2 Component Class")
+ ]
+ coclass MPEG2Component
+ {
+ [default] interface IMPEG2Component;
+ };
+
+
+ // NOTE: there is no object factory for this class. the implementation for the underlying
+ // code is a c++ abstract base class. this coclass is only provided here to
+ // force vb to expose the base interface to enable polymorphic access to
+ // derived objects
+ [
+ hidden, restricted,
+ uuid(B46E0D38-AB35-4a06-A137-70576B01B39F),
+ helpstring("dummy class to expose base tune request i/f to VB")
+ ]
+ coclass TuneRequest
+ {
+ [default] interface ITuneRequest;
+ };
+
+
+ // NOTE: the tuning request factories should not be invoked directly.
+ // instead apps should use ITuningSpace::CreateTuningRequest to obtain a correctly
+ // initialized tuning request of the appropriate type for that space.
+ // the object factories are provided to allow generic code to a load a previously persisted
+ // tune request object.
+ [
+ hidden,
+ restricted,
+ uuid(0369B4E5-45B6-11d3-B650-00C04F79498E),
+ helpstring("Channel Tune Request")
+ ]
+ coclass ChannelTuneRequest
+ {
+ [default] interface IChannelTuneRequest;
+ };
+
+ [
+ hidden,
+ restricted,
+ uuid(0369B4E6-45B6-11d3-B650-00C04F79498E),
+ helpstring("ATSC Channel Tune Request")
+ ]
+ coclass ATSCChannelTuneRequest
+ {
+ [default] interface IATSCChannelTuneRequest;
+ };
+
+ // NOTE: there is no object factory for this class. the implementation for the underlying
+ // code is a c++ abstract base class. this coclass is only provided here to
+ // force vb to expose the base interface to enable polymorphic access to
+ // derived objects
+ [
+ hidden, restricted,
+ uuid(0955AC62-BF2E-4cba-A2B9-A63F772D46CF),
+ helpstring("dummy class to expose mpeg2 request i/f to VB")
+ ]
+ coclass MPEG2TuneRequest
+ {
+ [default] interface IMPEG2TuneRequest;
+ };
+
+ [
+ uuid(2C63E4EB-4CEA-41b8-919C-E947EA19A77C),
+ helpstring("Factory for creating IMPEG2TuneRequest")
+ ]
+ coclass MPEG2TuneRequestFactory
+ {
+ [default] interface IMPEG2TuneRequestFactory;
+ };
+
+
+ // NOTE: there is no object factory for this class. the implementation for the underlying
+ // code is a c++ abstract base class. this coclass is only provided here to
+ // force vb to expose the base interface to enable polymorphic access to
+ // derived objects
+ [
+ hidden, restricted,
+ uuid(0888C883-AC4F-4943-B516-2C38D9B34562),
+ helpstring("dummy class to expose base locator i/f to VB")
+ ]
+ coclass Locator
+ {
+ [default] interface ILocator;
+ };
+
+ // its not intended that client apps actually create locators. the network
+ // provider in combination with the transport information filter(TIF) are the
+ // only modules in the system that actually know the correct values for these objects
+ // however, for testing purposes, its necessary to allow these to be created.
+ // instead, normally these will simply be passed around opaquely since they're a
+ // property of the base tune request interface.
+ [
+ uuid(8872FF1B-98FA-4d7a-8D93-C9F1055F85BB),
+ helpstring("ATSC Locator")
+ ]
+ coclass ATSCLocator
+ {
+ [default] interface IATSCLocator;
+ };
+
+ [
+ uuid(9CD64701-BDF3-4d14-8E03-F12983D86664),
+ helpstring("DVB-Terrestrial Locator")
+ ]
+ coclass DVBTLocator
+ {
+ [default] interface IDVBTLocator;
+ };
+
+ [
+ uuid(1DF7D126-4050-47f0-A7CF-4C4CA9241333),
+ helpstring("DVB-Satellite Locator")
+ ]
+ coclass DVBSLocator
+ {
+ [default] interface IDVBSLocator;
+ };
+
+ [
+ uuid(C531D9FD-9685-4028-8B68-6E1232079F1E),
+ helpstring("DVB-Cable Locator")
+ ]
+ coclass DVBCLocator
+ {
+ [default] interface IDVBCLocator;
+ };
+
+ [
+ hidden,
+ restricted,
+ uuid(15D6504A-5494-499c-886C-973C9E53B9F1),
+ helpstring("DVB Tune Request")
+ ]
+ coclass DVBTuneRequest
+ {
+ [default] interface IDVBTuneRequest;
+ };
+
+// Sample tuner class definition:
+//
+// [
+// uuid(<some guid>),
+// helpstring("My Tuner object")
+// ]
+// coclass MyTuner
+// {
+// [default] interface ITuner;
+// interface IMyTunerCustomFeatureInterface;
+// };
+
+///////////////////////////////////////////////////////////////////////////////////////
+// utility objects
+///////////////////////////////////////////////////////////////////////////////////////
+ [
+ hidden, restricted,
+ uuid(8A674B49-1F63-11d3-B64C-00C04F79498E),
+ helpstring("Create property bag backed by registry")
+ ]
+ coclass CreatePropBagOnRegKey
+ {
+ interface ICreatePropBagOnRegKey;
+ };
+
+ [
+ hidden, restricted,
+ uuid(0B3FFB92-0919-4934-9D5B-619C719D0202),
+ helpstring("DShow Broadcast Event Service Object")
+ ]
+ coclass BroadcastEventService
+ {
+ interface IBroadcastEvent;
+ };
+
+cpp_quote("#define SID_SBroadcastEventService CLSID_BroadcastEventService")
+
+}
+
+// end of file -- tuner.idl