📄 tuner.idl
字号:
//------------------------------------------------------------------------------
// 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"),
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -