Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2253 lines
73 KiB

  1. //------------------------------------------------------------------------------
  2. // File: Tuner.idl
  3. //
  4. // Desc:
  5. //
  6. // Copyright (c) 1999 - 2000, Microsoft Corporation. All rights reserved.
  7. //------------------------------------------------------------------------------
  8. cpp_quote("//+-------------------------------------------------------------------------")
  9. cpp_quote("//")
  10. cpp_quote("// Microsoft Windows")
  11. cpp_quote("// Copyright (C) Microsoft Corporation, 1999-2000.")
  12. cpp_quote("//")
  13. cpp_quote("//--------------------------------------------------------------------------")
  14. cpp_quote("#pragma once")
  15. #include <olectl.h>
  16. #ifndef DO_NO_IMPORTS
  17. import "oaidl.idl";
  18. import "comcat.idl";
  19. import "strmif.idl";
  20. import "bdatypes.h";
  21. import "regbag.idl";
  22. #endif
  23. cpp_quote("#include <bdatypes.h>")
  24. interface ITuningSpaceContainer;
  25. interface ITuningSpace;
  26. interface IEnumTuningSpaces;
  27. interface ITuneRequest;
  28. interface ITuner;
  29. interface IScanningTuner;
  30. interface IEnumComponentTypes;
  31. interface IComponentTypes;
  32. interface IComponentType;
  33. interface ILanguageComponentType;
  34. interface IEnumComponents;
  35. interface IComponents;
  36. interface IComponent;
  37. interface IMPEG2ComponentType;
  38. interface IMPEG2Component;
  39. interface ILocator;
  40. interface IATSCLocator;
  41. interface IDVBSLocator;
  42. interface IDVBTLocator;
  43. // tuner.idl:
  44. // interface ITuningSpaceContainer : IDispatch
  45. // interface ITuningSpace : IDispatch
  46. // interface ITuneRequest : IDispatch
  47. // interface IComponentType : IDispatch
  48. // interface ILanguageComponentType : IComponentType
  49. // interface IComponentTypes : IDispatch
  50. // interface IComponent : IDispatch
  51. // interface IComponents : IDispatch
  52. // interface ITVTuningSpace : ITuningSpace
  53. // interface IFMRadioTuningSpace : ITuningSpace
  54. // interface IAMRadioTuningSpace : ITuningSpace
  55. // interface IAnalogTVTuningSpace : ITVTuningSpace
  56. // interface IAnalogTVAudioComponent : IComponent
  57. // interface IAnalogTVDataComponent : IComponent
  58. // interface IChannelTuneRequest : ITuneRequest
  59. // interface IDVBComponent : IComponent
  60. // interface IDVBTuneRequest : ITuneRequest
  61. // DISPIDs for ITuningSpaces interface
  62. // we don't expect to inherit from this interface and consequently there's
  63. // no chance of collision, thus we'll allow midl to auto assign ids for this one
  64. // DISPIDs for ITuningSpace interface
  65. enum {
  66. DISPID_TUNER_TS_UNIQUENAME = 1,
  67. DISPID_TUNER_TS_FRIENDLYNAME = 2,
  68. DISPID_TUNER_TS_CLSID = 3,
  69. DISPID_TUNER_TS_NETWORKTYPE = 4,
  70. DISPID_TUNER_TS__NETWORKTYPE = 5,
  71. DISPID_TUNER_TS_CREATETUNEREQUEST = 6,
  72. DISPID_TUNER_TS_ENUMCATEGORYGUIDS = 7,
  73. DISPID_TUNER_TS_ENUMDEVICEMONIKERS = 8,
  74. DISPID_TUNER_TS_DEFAULTPREFERREDCOMPONENTTYPES = 9,
  75. DISPID_TUNER_TS_FREQMAP = 10,
  76. DISPID_TUNER_TS_DEFLOCATOR = 11,
  77. DISPID_TUNER_TS_CLONE = 12,
  78. // DISPIDs for ITuneRequest interface
  79. DISPID_TUNER_TR_TUNINGSPACE = 1,
  80. DISPID_TUNER_TR_COMPONENTS = 2,
  81. DISPID_TUNER_TR_CLONE = 3,
  82. DISPID_TUNER_TR_LOCATOR = 4,
  83. // DISPID for IComponentType interface
  84. DISPID_TUNER_CT_CATEGORY = 1,
  85. DISPID_TUNER_CT_MEDIAMAJORTYPE = 2,
  86. DISPID_TUNER_CT__MEDIAMAJORTYPE = 3,
  87. DISPID_TUNER_CT_MEDIASUBTYPE = 4,
  88. DISPID_TUNER_CT__MEDIASUBTYPE = 5,
  89. DISPID_TUNER_CT_MEDIAFORMATTYPE = 6,
  90. DISPID_TUNER_CT__MEDIAFORMATTYPE = 7,
  91. DISPID_TUNER_CT_MEDIATYPE = 8,
  92. DISPID_TUNER_CT_CLONE = 9,
  93. // DISPID for ILanguageComponentType interface
  94. DISPID_TUNER_LCT_LANGID = 100,
  95. // DISPID for IMPEG2ComponentType interface
  96. DISPID_TUNER_MP2CT_TYPE = 200,
  97. // DISPID for IATSCComponentType interface
  98. DISPID_TUNER_ATSCCT_FLAGS = 300,
  99. // DISPID for ILocator interface
  100. DISPID_TUNER_L_CARRFREQ = 1,
  101. DISPID_TUNER_L_INNERFECMETHOD = 2,
  102. DISPID_TUNER_L_INNERFECRATE = 3,
  103. DISPID_TUNER_L_OUTERFECMETHOD = 4,
  104. DISPID_TUNER_L_OUTERFECRATE = 5,
  105. DISPID_TUNER_L_MOD = 6,
  106. DISPID_TUNER_L_SYMRATE = 7,
  107. DISPID_TUNER_L_CLONE = 8,
  108. // DISPID for IATSCLocator interface
  109. DISPID_TUNER_L_ATSC_PHYS_CHANNEL = 201,
  110. DISPID_TUNER_L_ATSC_TSID = 202,
  111. // DISPID for IDVBTLocator interface
  112. DISPID_TUNER_L_DVBT_BANDWIDTH = 301,
  113. DISPID_TUNER_L_DVBT_LPINNERFECMETHOD = 302,
  114. DISPID_TUNER_L_DVBT_LPINNERFECRATE = 303,
  115. DISPID_TUNER_L_DVBT_GUARDINTERVAL = 304,
  116. DISPID_TUNER_L_DVBT_HALPHA = 305,
  117. DISPID_TUNER_L_DVBT_TRANSMISSIONMODE = 306,
  118. DISPID_TUNER_L_DVBT_INUSE = 307,
  119. // DISPID for IDVBSLocator interface
  120. DISPID_TUNER_L_DVBS_POLARISATION = 401,
  121. DISPID_TUNER_L_DVBS_WEST = 402,
  122. DISPID_TUNER_L_DVBS_ORBITAL = 403,
  123. DISPID_TUNER_L_DVBS_AZIMUTH = 404,
  124. DISPID_TUNER_L_DVBS_ELEVATION = 405,
  125. // DISPID for IDVBCLocator interface
  126. // DISPIDs for IComponent interface
  127. DISPID_TUNER_C_TYPE = 1,
  128. DISPID_TUNER_C_STATUS = 2,
  129. DISPID_TUNER_C_LANGID = 3,
  130. DISPID_TUNER_C_DESCRIPTION = 4,
  131. DISPID_TUNER_C_CLONE = 5,
  132. // DISPIDs for IMPEG2Component interface
  133. DISPID_TUNER_C_MP2_PID = 101,
  134. DISPID_TUNER_C_MP2_PCRPID = 102,
  135. DISPID_TUNER_C_MP2_PROGNO = 103,
  136. // DISPIDs for IDVBTuningSpace interface
  137. DISPID_TUNER_TS_DVB_SYSTEMTYPE = 101,
  138. // DISPIDs for IDVBTuningSpace2 interface
  139. DISPID_TUNER_TS_DVB2_NETWORK_ID = 102,
  140. // DISPIDs for IDVBSTuningSpace interface
  141. DISPID_TUNER_TS_DVBS_LOW_OSC_FREQ = 1001,
  142. DISPID_TUNER_TS_DVBS_HI_OSC_FREQ = 1002,
  143. DISPID_TUNER_TS_DVBS_LNB_SWITCH_FREQ = 1003,
  144. DISPID_TUNER_TS_DVBS_INPUT_RANGE = 1004,
  145. DISPID_TUNER_TS_DVBS_SPECTRAL_INVERSION = 1005,
  146. // DISPIDs for IAnalogRadioTuningSpace interface
  147. DISPID_TUNER_TS_AR_MINFREQUENCY = 101,
  148. DISPID_TUNER_TS_AR_MAXFREQUENCY = 102,
  149. DISPID_TUNER_TS_AR_STEP = 103,
  150. // DISPIDs for IAnalogTVTuningSpace interface
  151. DISPID_TUNER_TS_ATV_MINCHANNEL = 101,
  152. DISPID_TUNER_TS_ATV_MAXCHANNEL = 102,
  153. DISPID_TUNER_TS_ATV_INPUTTYPE = 103,
  154. DISPID_TUNER_TS_ATV_COUNTRYCODE = 104,
  155. // DISPIDs for IATSCTuningSpace interface
  156. DISPID_TUNER_TS_ATSC_MINMINORCHANNEL = 201,
  157. DISPID_TUNER_TS_ATSC_MAXMINORCHANNEL = 202,
  158. DISPID_TUNER_TS_ATSC_MINPHYSCHANNEL = 203,
  159. DISPID_TUNER_TS_ATSC_MAXPHYSCHANNEL = 204,
  160. // DISPID for IAnalogTVAudioComponent interface
  161. DISPID_CHTUNER_ATVAC_CHANNEL = 101,
  162. // DISPIDs for IAnalogTVDataComponent interface
  163. DISPID_CHTUNER_ATVDC_SYSTEM = 101,
  164. DISPID_CHTUNER_ATVDC_CONTENT = 102,
  165. // DISPID for IChannelTuneRequest interface
  166. DISPID_CHTUNER_CTR_CHANNEL = 101,
  167. // DISPID IATSCChannelTuneRequest
  168. DISPID_CHTUNER_ACTR_MINOR_CHANNEL = 201,
  169. // DISPIDs for IDVBComponent interface
  170. DISPID_DVBTUNER_DVBC_ATTRIBUTESVALID = 101,
  171. DISPID_DVBTUNER_DVBC_PID = 102,
  172. DISPID_DVBTUNER_DVBC_TAG = 103,
  173. DISPID_DVBTUNER_DVBC_COMPONENTTYPE = 104,
  174. // DISPIDs for IDVBTuneRequest interface
  175. DISPID_DVBTUNER_ONID = 101,
  176. DISPID_DVBTUNER_TSID = 102,
  177. DISPID_DVBTUNER_SID = 103,
  178. // DISPIDs for IMPEG2TuneRequest interface
  179. DISPID_MP2TUNER_TSID = 101,
  180. DISPID_MP2TUNER_PROGNO = 102,
  181. // DISPIDs for IMPEG2TuneRequestFactory interface
  182. DISPID_MP2TUNERFACTORY_CREATETUNEREQUEST = 1,
  183. };
  184. //////////////////////////////////////////////////////////////////////////////////////
  185. // Tuning Space Container
  186. //////////////////////////////////////////////////////////////////////////////////////
  187. // simple read-only collection of tuning spaces for enumerating subsets of the total
  188. // set of system tuning spaces
  189. [
  190. object,
  191. uuid(901284E4-33FE-4b69-8D63-634A596F3756),
  192. dual,
  193. oleautomation,
  194. nonextensible,
  195. helpstring("Tuning Space Collection Interface"),
  196. pointer_default(unique)
  197. ]
  198. interface ITuningSpaces : IDispatch
  199. {
  200. [propget, helpstring("Number of items in the collection")]
  201. HRESULT Count(
  202. [out, retval] long *Count
  203. );
  204. [propget, id(DISPID_NEWENUM), hidden, restricted]
  205. HRESULT _NewEnum(
  206. [out, retval] IEnumVARIANT** NewEnum
  207. );
  208. [id(DISPID_VALUE),
  209. propget,
  210. helpstring("Find the Tuning Space with the specified Index")]
  211. HRESULT Item(
  212. [in] VARIANT varIndex,
  213. [out, retval] ITuningSpace** TuningSpace
  214. );
  215. [propget, hidden, restricted,
  216. helpstring("convenience function so C++ apps don't have to unpack VARIANT")]
  217. HRESULT EnumTuningSpaces(
  218. [out, retval] IEnumTuningSpaces** NewEnum
  219. );
  220. }
  221. //////////////////////////////////////////////////////////////////////////////////////
  222. // Tuning Space Container
  223. //////////////////////////////////////////////////////////////////////////////////////
  224. [
  225. object,
  226. uuid(5B692E84-E2F1-11d2-9493-00C04F72D980),
  227. dual,
  228. oleautomation,
  229. hidden,
  230. nonextensible,
  231. helpstring("Tuning Space Container Interface"),
  232. pointer_default(unique)
  233. ]
  234. interface ITuningSpaceContainer : IDispatch
  235. {
  236. [propget, helpstring("Number of items in the collection")]
  237. HRESULT Count(
  238. [out, retval] long *Count
  239. );
  240. [propget, id(DISPID_NEWENUM), hidden, restricted]
  241. HRESULT _NewEnum(
  242. [out, retval] IEnumVARIANT** NewEnum
  243. );
  244. [id(DISPID_VALUE),
  245. propget,
  246. helpstring("Find the Tuning Space with the specified Index")]
  247. HRESULT Item(
  248. [in] VARIANT varIndex,
  249. [out, retval] ITuningSpace** TuningSpace
  250. );
  251. [id(DISPID_VALUE),
  252. propput,
  253. helpstring("Change the Tuning Space with the specified Index")]
  254. HRESULT Item([in] VARIANT varIndex, [in] ITuningSpace *TuningSpace);
  255. [helpstring("Returns the collection of Tuning Spaces with the same implementation")]
  256. HRESULT TuningSpacesForCLSID(
  257. [in] BSTR SpaceCLSID,
  258. [out, retval] ITuningSpaces** NewColl
  259. );
  260. [hidden, restricted,
  261. helpstring("Convenience Function for enumerating from C")]
  262. HRESULT _TuningSpacesForCLSID(
  263. [in] REFCLSID SpaceCLSID,
  264. [out, retval] ITuningSpaces** NewColl
  265. );
  266. [helpstring("Returns the collection of Tuning Spaces matching the name")]
  267. HRESULT TuningSpacesForName(
  268. [in] BSTR Name,
  269. [out, retval] ITuningSpaces** NewColl
  270. );
  271. [helpstring("Find Local ID Number of the specified Tuning Space")]
  272. HRESULT FindID(
  273. [in] ITuningSpace *TuningSpace,
  274. [out, retval] long *ID
  275. );
  276. [id(DISPID_ADDITEM),
  277. helpstring("Add a new Tuning Space to the collection. This tuning space will be persisted unless removed")]
  278. HRESULT Add(
  279. [in] ITuningSpace* TuningSpace,
  280. [out, retval] VARIANT* NewIndex
  281. );
  282. [propget, hidden, restricted, helpstring("Convenience Function for enumerating collection from C")]
  283. HRESULT EnumTuningSpaces(
  284. [out, retval] IEnumTuningSpaces **ppEnum
  285. );
  286. [id(DISPID_REMOVEITEM),
  287. helpstring("Remove a Tuning Space from the collection. this tuning space will be deleted from the registry")]
  288. HRESULT Remove(
  289. [in] VARIANT Index
  290. );
  291. [propget, helpstring("Maximum number of items allowed in the collection")]
  292. HRESULT MaxCount(
  293. [out, retval] long *MaxCount
  294. );
  295. // we don't allow script to set this, but we do allow c code to change it.
  296. [propput, hidden, restricted, helpstring("Maximum number of items allowed in the collection")]
  297. HRESULT MaxCount(
  298. [in] long MaxCount
  299. );
  300. }
  301. //////////////////////////////////////////////////////////////////////////////////////
  302. // Tuning Space Interfaces
  303. //////////////////////////////////////////////////////////////////////////////////////
  304. // note: the network type is the clsid of the tuning space implementation
  305. [
  306. object,
  307. uuid(061C6E30-E622-11d2-9493-00C04F72D980),
  308. dual,
  309. oleautomation,
  310. nonextensible,
  311. helpstring("Tuning Space Interface"),
  312. pointer_default(unique)
  313. ]
  314. interface ITuningSpace : IDispatch
  315. {
  316. [propget, id(DISPID_TUNER_TS_UNIQUENAME),
  317. helpstring("Unique name of the Tuning Space")]
  318. HRESULT UniqueName(
  319. [out, retval] BSTR *Name
  320. );
  321. [propput, id(DISPID_TUNER_TS_UNIQUENAME),
  322. helpstring("Unique name of the Tuning Space")]
  323. HRESULT UniqueName(
  324. [in] BSTR Name
  325. );
  326. [propget, id(DISPID_TUNER_TS_FRIENDLYNAME),
  327. helpstring("User-friendly name of the Tuning Space")]
  328. HRESULT FriendlyName(
  329. [out, retval] BSTR *Name
  330. );
  331. [propput, id(DISPID_TUNER_TS_FRIENDLYNAME),
  332. helpstring("User-friendly name of the Tuning Space")]
  333. HRESULT FriendlyName(
  334. [in] BSTR Name
  335. );
  336. [propget, id(DISPID_TUNER_TS_CLSID),
  337. helpstring("Returns the clsid of the tuning space implementation. provides script access to IPersist:GetClassID")]
  338. HRESULT CLSID(
  339. [out, retval] BSTR* SpaceCLSID
  340. );
  341. [propget, id(DISPID_TUNER_TS_NETWORKTYPE),
  342. helpstring("Network Type (Network Proivder CLSID)")]
  343. HRESULT NetworkType(
  344. [out, retval] BSTR *NetworkTypeGuid
  345. );
  346. [propput, id(DISPID_TUNER_TS_NETWORKTYPE),
  347. helpstring("Network Type (Network Proivder CLSID)")]
  348. HRESULT NetworkType(
  349. [in] BSTR NetworkTypeGuid
  350. );
  351. [propget, id(DISPID_TUNER_TS__NETWORKTYPE),
  352. helpstring("Network Type (Network Proivder CLSID)"), hidden, restricted]
  353. HRESULT _NetworkType(
  354. [out, retval] GUID* NetworkTypeGuid
  355. );
  356. [propput, id(DISPID_TUNER_TS__NETWORKTYPE),
  357. helpstring("Network Type (Network Proivder CLSID)"), hidden, restricted]
  358. HRESULT _NetworkType(
  359. [in] REFCLSID NetworkTypeGuid
  360. );
  361. // this method creates the "best" kind of tune request for this tuning space.
  362. // the tuning space may support other kinds of tune requests created via
  363. // other factory mechanisms(for example, see mpeg2tunerequestfactory). but,
  364. // this method is the preferred way to get a tune request as it always returns
  365. // the optimal type of tune request for this space.
  366. [id(DISPID_TUNER_TS_CREATETUNEREQUEST),
  367. helpstring("Create a Tune Request object")]
  368. HRESULT CreateTuneRequest(
  369. [out, retval] ITuneRequest **TuneRequest
  370. );
  371. [id(DISPID_TUNER_TS_ENUMCATEGORYGUIDS), hidden, restricted]
  372. HRESULT EnumCategoryGUIDs(
  373. [out, retval] IEnumGUID **ppEnum
  374. );
  375. [id(DISPID_TUNER_TS_ENUMDEVICEMONIKERS), hidden, restricted]
  376. HRESULT EnumDeviceMonikers(
  377. [out, retval] IEnumMoniker **ppEnum
  378. );
  379. [propget, id(DISPID_TUNER_TS_DEFAULTPREFERREDCOMPONENTTYPES)]
  380. HRESULT DefaultPreferredComponentTypes(
  381. [out, retval] IComponentTypes** ComponentTypes
  382. );
  383. [propput, id(DISPID_TUNER_TS_DEFAULTPREFERREDCOMPONENTTYPES)]
  384. HRESULT DefaultPreferredComponentTypes(
  385. [in] IComponentTypes* NewComponentTypes
  386. );
  387. // the following property is for the network providers to store frequency/channel maps, frequency/transponder maps
  388. // or whatever other mapping from carrier frequencies to frequency identifiers are appropriate for the tuning space
  389. // in question. the bstr is treated as a binary blob. it is expected to contain embedded nulls, and it may be formatted
  390. // internally in whatever fashion the network provider sees fit.
  391. [propget, id(DISPID_TUNER_TS_FREQMAP)]
  392. HRESULT FrequencyMapping([out, retval] BSTR *pMapping);
  393. [propput, id(DISPID_TUNER_TS_FREQMAP)]
  394. HRESULT FrequencyMapping(BSTR Mapping);
  395. // the following property provides a starting point for the initial IScanningTuner after installation
  396. [propget, id(DISPID_TUNER_TS_DEFLOCATOR)]
  397. HRESULT DefaultLocator([out, retval] ILocator **LocatorVal);
  398. [propput, id(DISPID_TUNER_TS_DEFLOCATOR)]
  399. HRESULT DefaultLocator([in]ILocator *LocatorVal);
  400. HRESULT Clone([out, retval] ITuningSpace **NewTS);
  401. }
  402. //////////////////////////////////////////////////////////////////////////////////////
  403. [
  404. hidden,
  405. restricted,
  406. object,
  407. uuid(8B8EB248-FC2B-11d2-9D8C-00C04F72D980),
  408. pointer_default(unique)
  409. ]
  410. interface IEnumTuningSpaces : IUnknown
  411. {
  412. HRESULT Next(
  413. [in] ULONG celt,
  414. [out, size_is(celt), length_is(*pceltFetched)]
  415. ITuningSpace** rgelt,
  416. [out] ULONG* pceltFetched
  417. );
  418. HRESULT Skip(
  419. [in] ULONG celt
  420. );
  421. HRESULT Reset(void);
  422. HRESULT Clone(
  423. [out] IEnumTuningSpaces** ppEnum
  424. );
  425. }
  426. //////////////////////////////////////////////////////////////////////////////////////
  427. [
  428. object,
  429. hidden,
  430. dual,
  431. oleautomation,
  432. nonextensible,
  433. uuid(ADA0B268-3B19-4e5b-ACC4-49F852BE13BA),
  434. pointer_default(unique)
  435. ]
  436. interface IDVBTuningSpace : ITuningSpace
  437. {
  438. [propget, id(DISPID_TUNER_TS_DVB_SYSTEMTYPE),
  439. helpstring("Type of DVB System")
  440. ]
  441. HRESULT SystemType(
  442. [out, retval] DVBSystemType *SysType
  443. );
  444. [propput, id(DISPID_TUNER_TS_DVB_SYSTEMTYPE),
  445. helpstring("Type of DVB System")
  446. ]
  447. HRESULT SystemType(
  448. [in] DVBSystemType SysType
  449. );
  450. }
  451. //////////////////////////////////////////////////////////////////////////////////////
  452. [
  453. object,
  454. hidden,
  455. dual,
  456. oleautomation,
  457. nonextensible,
  458. uuid(843188B4-CE62-43db-966B-8145A094E040),
  459. pointer_default(unique)
  460. ]
  461. interface IDVBTuningSpace2 : IDVBTuningSpace
  462. {
  463. [propget, id(DISPID_TUNER_TS_DVB2_NETWORK_ID),
  464. helpstring("Network ID of DVB System")
  465. ]
  466. HRESULT NetworkID(
  467. [out, retval] long *NetworkID
  468. );
  469. [propput, id(DISPID_TUNER_TS_DVB2_NETWORK_ID),
  470. helpstring("Network ID of DVB System")
  471. ]
  472. HRESULT NetworkID(
  473. [in] long NetworkID
  474. );
  475. }
  476. //////////////////////////////////////////////////////////////////////////////////////
  477. [
  478. object,
  479. hidden,
  480. dual,
  481. oleautomation,
  482. nonextensible,
  483. uuid(CDF7BE60-D954-42fd-A972-78971958E470),
  484. pointer_default(unique)
  485. ]
  486. interface IDVBSTuningSpace : IDVBTuningSpace2
  487. {
  488. [propget, id(DISPID_TUNER_TS_DVBS_LOW_OSC_FREQ),
  489. helpstring("Low Oscillator Frequency of DVB System in 10HZ units")
  490. ]
  491. HRESULT LowOscillator(
  492. [out, retval] long *LowOscillator
  493. );
  494. [propput, id(DISPID_TUNER_TS_DVBS_LOW_OSC_FREQ),
  495. helpstring("Low Oscillator Frequency of DVB System in 10HZ units")
  496. ]
  497. HRESULT LowOscillator(
  498. [in] long LowOscillator
  499. );
  500. [propget, id(DISPID_TUNER_TS_DVBS_HI_OSC_FREQ),
  501. helpstring("High Oscillator Frequency of DVB System in 10HZ units")
  502. ]
  503. HRESULT HighOscillator(
  504. [out, retval] long *HighOscillator
  505. );
  506. [propput, id(DISPID_TUNER_TS_DVBS_HI_OSC_FREQ),
  507. helpstring("High Oscillator Frequency of DVB System in 10HZ units")
  508. ]
  509. HRESULT HighOscillator(
  510. [in] long HighOscillator
  511. );
  512. [propget, id(DISPID_TUNER_TS_DVBS_LNB_SWITCH_FREQ),
  513. helpstring("LNB Switch Frequency of DVB System in 10HZ units")
  514. ]
  515. HRESULT LNBSwitch(
  516. [out, retval] long *LNBSwitch
  517. );
  518. [propput, id(DISPID_TUNER_TS_DVBS_LNB_SWITCH_FREQ),
  519. helpstring("LNB Switch Frequency of DVB System in 10HZ units")
  520. ]
  521. HRESULT LNBSwitch(
  522. [in] long LNBSwitch
  523. );
  524. [propget, id(DISPID_TUNER_TS_DVBS_INPUT_RANGE),
  525. helpstring("Which Option/Switch contains the requested signal source")
  526. ]
  527. HRESULT InputRange(
  528. [out, retval] BSTR *InputRange
  529. );
  530. [propput, id(DISPID_TUNER_TS_DVBS_INPUT_RANGE),
  531. helpstring("Which Option/Switch contains the requested signal source")
  532. ]
  533. HRESULT InputRange(
  534. [in] BSTR InputRange
  535. );
  536. [propget, id(DISPID_TUNER_TS_DVBS_SPECTRAL_INVERSION),
  537. helpstring("Which Option/Switch contains the requested signal source")
  538. ]
  539. HRESULT SpectralInversion(
  540. [out, retval] SpectralInversion *SpectralInversionVal
  541. );
  542. [propput, id(DISPID_TUNER_TS_DVBS_SPECTRAL_INVERSION),
  543. helpstring("Which Option/Switch contains the requested signal source")
  544. ]
  545. HRESULT SpectralInversion(
  546. [in] SpectralInversion SpectralInversionVal
  547. );
  548. }
  549. //////////////////////////////////////////////////////////////////////////////////////
  550. [
  551. object,
  552. hidden,
  553. dual,
  554. oleautomation,
  555. nonextensible,
  556. uuid(E48244B8-7E17-4f76-A763-5090FF1E2F30),
  557. pointer_default(unique)
  558. ]
  559. interface IAuxInTuningSpace : ITuningSpace
  560. {
  561. }
  562. //////////////////////////////////////////////////////////////////////////////////////
  563. [
  564. object,
  565. hidden,
  566. dual,
  567. oleautomation,
  568. nonextensible,
  569. uuid(2A6E293C-2595-11d3-B64C-00C04F79498E),
  570. pointer_default(unique)
  571. ]
  572. interface IAnalogTVTuningSpace : ITuningSpace
  573. {
  574. [propget, id(DISPID_TUNER_TS_ATV_MINCHANNEL),
  575. helpstring("Smallest channel number ever provided by this tuning space")
  576. ]
  577. HRESULT MinChannel(
  578. [out, retval] long *MinChannelVal
  579. );
  580. [propput, id(DISPID_TUNER_TS_ATV_MINCHANNEL),
  581. helpstring("Smallest channel number ever provided by this tuning space")
  582. ]
  583. HRESULT MinChannel(
  584. [in] long NewMinChannelVal
  585. );
  586. [propget, id(DISPID_TUNER_TS_ATV_MAXCHANNEL),
  587. helpstring("Largest channel number ever provided by this tuning space")
  588. ]
  589. HRESULT MaxChannel(
  590. [out, retval] long *MaxChannelVal
  591. );
  592. [propput, id(DISPID_TUNER_TS_ATV_MAXCHANNEL),
  593. helpstring("Largest channel number ever provided by this tuning space")
  594. ]
  595. HRESULT MaxChannel(
  596. [in] long NewMaxChannelVal
  597. );
  598. [propget, id(DISPID_TUNER_TS_ATV_INPUTTYPE),
  599. helpstring("Input type for this tuning space")
  600. ]
  601. HRESULT InputType([out, retval] TunerInputType *InputTypeVal);
  602. [propput, id(DISPID_TUNER_TS_ATV_INPUTTYPE),
  603. helpstring("Input type for this tuning space")
  604. ]
  605. HRESULT InputType([in] TunerInputType NewInputTypeVal);
  606. [propget, id(DISPID_TUNER_TS_ATV_COUNTRYCODE),
  607. helpstring("International dialing prefix for country of physical broadcast source")
  608. ]
  609. HRESULT CountryCode([out, retval] long *CountryCodeVal);
  610. [propput, id(DISPID_TUNER_TS_ATV_COUNTRYCODE),
  611. helpstring("International dialing prefix for country of physical broadcast source")
  612. ]
  613. HRESULT CountryCode([in] long NewCountryCodeVal);
  614. }
  615. //////////////////////////////////////////////////////////////////////////////////////
  616. [
  617. object,
  618. hidden,
  619. dual,
  620. oleautomation,
  621. nonextensible,
  622. uuid(0369B4E2-45B6-11d3-B650-00C04F79498E),
  623. pointer_default(unique)
  624. ]
  625. // note: we inherit ATSC from analog because we need the same properties.
  626. // - the definition of channel is overloaded to be the major channel,
  627. // - input type allows us to distinguish between broadcast and cable frequencies
  628. // which allows us to use the atsc tuning space class for "open cable".
  629. // - country code will allow us to redefine physical channel frequencies
  630. // if any other countries adopt ATSC which may happen in Latin America in particular.
  631. interface IATSCTuningSpace : IAnalogTVTuningSpace
  632. {
  633. [propget, id(DISPID_TUNER_TS_ATSC_MINMINORCHANNEL),
  634. helpstring("Smallest minor channel number ever provided by this tuning space")
  635. ]
  636. HRESULT MinMinorChannel(
  637. [out, retval] long *MinMinorChannelVal
  638. );
  639. [propput, id(DISPID_TUNER_TS_ATSC_MINMINORCHANNEL),
  640. helpstring("Smallest minor channel number ever provided by this tuning space")
  641. ]
  642. HRESULT MinMinorChannel(
  643. [in] long NewMinMinorChannelVal
  644. );
  645. [propget, id(DISPID_TUNER_TS_ATSC_MAXMINORCHANNEL),
  646. helpstring("Largest minor channel number ever provided by this tuning space")
  647. ]
  648. HRESULT MaxMinorChannel(
  649. [out, retval] long *MaxMinorChannelVal
  650. );
  651. [propput, id(DISPID_TUNER_TS_ATSC_MAXMINORCHANNEL),
  652. helpstring("Largest minor channel number ever provided by this tuning space")
  653. ]
  654. HRESULT MaxMinorChannel(
  655. [in] long NewMaxMinorChannelVal
  656. );
  657. [propget, id(DISPID_TUNER_TS_ATSC_MINPHYSCHANNEL),
  658. helpstring("Smallest physical channel number ever provided by this tuning space")
  659. ]
  660. HRESULT MinPhysicalChannel(
  661. [out, retval] long *MinPhysicalChannelVal
  662. );
  663. [propput, id(DISPID_TUNER_TS_ATSC_MINPHYSCHANNEL),
  664. helpstring("Smallest physical channel number ever provided by this tuning space")
  665. ]
  666. HRESULT MinPhysicalChannel(
  667. [in] long NewMinPhysicalChannelVal
  668. );
  669. [propget, id(DISPID_TUNER_TS_ATSC_MAXPHYSCHANNEL),
  670. helpstring("Largest physical channel number ever provided by this tuning space")
  671. ]
  672. HRESULT MaxPhysicalChannel(
  673. [out, retval] long *MaxPhysicalChannelVal
  674. );
  675. [propput, id(DISPID_TUNER_TS_ATSC_MAXPHYSCHANNEL),
  676. helpstring("Largest physical channel number ever provided by this tuning space")
  677. ]
  678. HRESULT MaxPhysicalChannel(
  679. [in] long NewMaxPhysicalChannelVal
  680. );
  681. }
  682. //////////////////////////////////////////////////////////////////////////////////////
  683. [
  684. object,
  685. hidden,
  686. dual,
  687. oleautomation,
  688. nonextensible,
  689. uuid(2A6E293B-2595-11d3-B64C-00C04F79498E),
  690. pointer_default(unique)
  691. ]
  692. interface IAnalogRadioTuningSpace : ITuningSpace {
  693. [propget, id(DISPID_TUNER_TS_AR_MINFREQUENCY),
  694. helpstring("Smallest frequency(khz) ever used by this tuning space")
  695. ]
  696. HRESULT MinFrequency(
  697. [out, retval] long *MinFrequencyVal
  698. );
  699. [propput, id(DISPID_TUNER_TS_AR_MINFREQUENCY),
  700. helpstring("Smallest frequency(khz) ever used by this tuning space")
  701. ]
  702. HRESULT MinFrequency(
  703. [in] long NewMinFrequencyVal
  704. );
  705. [propget, id(DISPID_TUNER_TS_AR_MAXFREQUENCY),
  706. helpstring("Largest frequency(khz) ever used by this tuning space")
  707. ]
  708. HRESULT MaxFrequency(
  709. [out, retval] long *MaxFrequencyVal
  710. );
  711. [propput, id(DISPID_TUNER_TS_AR_MAXFREQUENCY),
  712. helpstring("Largest frequency(khz) ever used by this tuning space")
  713. ]
  714. HRESULT MaxFrequency(
  715. [in] long NewMaxFrequencyVal
  716. );
  717. [propget, id(DISPID_TUNER_TS_AR_STEP),
  718. helpstring("Default step value(khz) to next frequency for this tuning space")
  719. ]
  720. HRESULT Step(
  721. [out, retval] long *StepVal
  722. );
  723. [propput, id(DISPID_TUNER_TS_AR_STEP),
  724. helpstring("Default step value(khz) to next frequency for this tuning space")
  725. ]
  726. HRESULT Step(
  727. [in] long NewStepVal
  728. );
  729. }
  730. //////////////////////////////////////////////////////////////////////////////////////
  731. // Tune Request Interfaces
  732. //////////////////////////////////////////////////////////////////////////////////////
  733. // tune requests(of any kind) can only be obtained from tune request factories such as
  734. // ITuningSpace::CreateTuneRequest. one reason for this is that we always want to be
  735. // certain that a tune request is bound to the right tuning space. this means we don't
  736. // have to perform consistency checks all over the place.
  737. [
  738. object,
  739. nonextensible,
  740. uuid(07DDC146-FC3D-11d2-9D8C-00C04F72D980),
  741. dual,
  742. oleautomation,
  743. helpstring("Tune Request Interface"),
  744. pointer_default(unique)
  745. ]
  746. interface ITuneRequest : IDispatch
  747. {
  748. [propget, id(DISPID_TUNER_TR_TUNINGSPACE),
  749. helpstring("Tuning Space object")]
  750. HRESULT TuningSpace(
  751. [out, retval] ITuningSpace **TuningSpace
  752. );
  753. [propget, id(DISPID_TUNER_TR_COMPONENTS),
  754. helpstring("Components collection")]
  755. HRESULT Components(
  756. [out, retval] IComponents **Components
  757. );
  758. [id(DISPID_TUNER_TR_CLONE),
  759. helpstring("Create a new copy of this tune request")]
  760. HRESULT Clone(
  761. [out, retval] ITuneRequest **NewTuneRequest
  762. );
  763. [propget, id(DISPID_TUNER_TR_LOCATOR),
  764. helpstring("Locator Object")]
  765. HRESULT Locator(
  766. [out, retval] ILocator **Locator
  767. );
  768. [propput, id(DISPID_TUNER_TR_LOCATOR),
  769. helpstring("Locator Object")]
  770. HRESULT Locator(
  771. [in] ILocator *Locator
  772. );
  773. }
  774. //////////////////////////////////////////////////////////////////////////////////////
  775. [
  776. object,
  777. nonextensible,
  778. uuid(0369B4E0-45B6-11d3-B650-00C04F79498E),
  779. dual,
  780. oleautomation,
  781. helpstring("Channel Tune Request Interface"),
  782. pointer_default(unique)
  783. ]
  784. interface IChannelTuneRequest : ITuneRequest
  785. {
  786. [propget, id(DISPID_CHTUNER_CTR_CHANNEL),
  787. helpstring("Channel")]
  788. HRESULT Channel(
  789. [out, retval] long *Channel
  790. );
  791. [propput, id(DISPID_CHTUNER_CTR_CHANNEL),
  792. helpstring("Channel")]
  793. HRESULT Channel(
  794. [in] long Channel
  795. );
  796. }
  797. //////////////////////////////////////////////////////////////////////////////////////
  798. [
  799. object,
  800. nonextensible,
  801. uuid(0369B4E1-45B6-11d3-B650-00C04F79498E),
  802. dual,
  803. oleautomation,
  804. helpstring("ATSC Channel Tune Request Interface"),
  805. pointer_default(unique)
  806. ]
  807. interface IATSCChannelTuneRequest : IChannelTuneRequest
  808. {
  809. [propget, id(DISPID_CHTUNER_ACTR_MINOR_CHANNEL),
  810. helpstring("Minor Channel")]
  811. HRESULT MinorChannel(
  812. [out, retval] long *MinorChannel
  813. );
  814. [propput, id(DISPID_CHTUNER_ACTR_MINOR_CHANNEL),
  815. helpstring("Minor Channel")]
  816. HRESULT MinorChannel(
  817. [in] long MinorChannel
  818. );
  819. }
  820. //////////////////////////////////////////////////////////////////////////////////////
  821. [
  822. object,
  823. nonextensible,
  824. uuid(0D6F567E-A636-42bb-83BA-CE4C1704AFA2),
  825. dual,
  826. oleautomation,
  827. helpstring("DVB Tune Request Interface"),
  828. pointer_default(unique)
  829. ]
  830. interface IDVBTuneRequest : ITuneRequest
  831. {
  832. [propget, id(DISPID_DVBTUNER_ONID),
  833. helpstring("Original Network ID")]
  834. HRESULT ONID(
  835. [out, retval] long *ONID
  836. );
  837. [propput, id(DISPID_DVBTUNER_ONID),
  838. helpstring("Original Network ID")]
  839. HRESULT ONID(
  840. [in] long ONID
  841. );
  842. [propget, id(DISPID_DVBTUNER_TSID),
  843. helpstring("Transport Stream ID")]
  844. HRESULT TSID(
  845. [out, retval] long *TSID
  846. );
  847. [propput, id(DISPID_DVBTUNER_TSID),
  848. helpstring("Transport Stream ID")]
  849. HRESULT TSID(
  850. [in] long TSID
  851. );
  852. [propget, id(DISPID_DVBTUNER_SID),
  853. helpstring("Service ID")]
  854. HRESULT SID(
  855. [out, retval] long *SID
  856. );
  857. [propput, id(DISPID_DVBTUNER_SID),
  858. helpstring("Service ID")]
  859. HRESULT SID(
  860. [in] long SID
  861. );
  862. }
  863. //////////////////////////////////////////////////////////////////////////////////////
  864. /// There are times(for example, reading from a file) when its useful to be able to tune
  865. /// a basic mpeg2 transport stream that contains minimal tables. this requires the least
  866. /// common denominator mpeg2 xport stream id information
  867. /// the following tune request supplies these properties. it can typiclly only be obtained from
  868. /// an mpeg2tunerequestfactory object. no known tune request(at this time) will return this
  869. /// from their createtunerequest() method. in other words, this is not the "best" tune request
  870. /// for any of the current tuning spaces.
  871. //////////////////////////////////////////////////////////////////////////////////////
  872. [
  873. object,
  874. nonextensible,
  875. uuid(EB7D987F-8A01-42ad-B8AE-574DEEE44D1A),
  876. dual,
  877. oleautomation,
  878. helpstring("MPEG2 Tune Request Interface"),
  879. pointer_default(unique)
  880. ]
  881. interface IMPEG2TuneRequest : ITuneRequest
  882. {
  883. [propget, id(DISPID_MP2TUNER_TSID),
  884. helpstring("Transport Stream ID")]
  885. HRESULT TSID(
  886. [out, retval] long *TSID
  887. );
  888. [propput, id(DISPID_MP2TUNER_TSID),
  889. helpstring("Transport Stream ID")]
  890. HRESULT TSID(
  891. [in] long TSID
  892. );
  893. [propget, id(DISPID_MP2TUNER_PROGNO),
  894. helpstring("Program Number ID")]
  895. HRESULT ProgNo(
  896. [out, retval] long *ProgNo
  897. );
  898. [propput, id(DISPID_MP2TUNER_PROGNO),
  899. helpstring("Program Number ID")]
  900. HRESULT ProgNo(
  901. [in] long ProgNo
  902. );
  903. }
  904. [
  905. object,
  906. nonextensible,
  907. hidden,
  908. uuid(14E11ABD-EE37-4893-9EA1-6964DE933E39),
  909. dual,
  910. oleautomation,
  911. helpstring("MPEG2 Tune Request Factory Interface"),
  912. pointer_default(unique)
  913. ]
  914. interface IMPEG2TuneRequestFactory : IDispatch
  915. {
  916. [id(DISPID_MP2TUNERFACTORY_CREATETUNEREQUEST),
  917. helpstring("Create MPEG2 Tune Request for specified tuning space(if possible)")]
  918. HRESULT CreateTuneRequest(
  919. [in] ITuningSpace *TuningSpace,
  920. [out, retval] IMPEG2TuneRequest **TuneRequest
  921. );
  922. }
  923. [
  924. object,
  925. hidden,
  926. restricted,
  927. nonextensible,
  928. uuid(1B9D5FC3-5BBC-4b6c-BB18-B9D10E3EEEBF),
  929. helpstring("MPEG2 Tune Request Supported Interface"),
  930. pointer_default(unique)
  931. ]
  932. interface IMPEG2TuneRequestSupport : IUnknown
  933. {
  934. }
  935. //////////////////////////////////////////////////////////////////////////////////////
  936. // Tuner Interfaces
  937. //////////////////////////////////////////////////////////////////////////////////////
  938. [
  939. object,
  940. hidden,
  941. nonextensible,
  942. uuid(28C52640-018A-11d3-9D8E-00C04F72D980),
  943. helpstring("Tuner Interface"),
  944. pointer_default(unique)
  945. ]
  946. interface ITuner : IUnknown
  947. {
  948. [propget, helpstring("Tuning Space object")]
  949. HRESULT TuningSpace(
  950. [out, retval] ITuningSpace **TuningSpace
  951. );
  952. [propput, helpstring("Tuning Space object")]
  953. HRESULT TuningSpace(
  954. [in] ITuningSpace *TuningSpace
  955. );
  956. [hidden, restricted, helpstring("Returns an enumerator for Tuning Spaces accepted by this tuner")]
  957. HRESULT EnumTuningSpaces(
  958. [out, retval] IEnumTuningSpaces **ppEnum
  959. );
  960. [propget, helpstring("Tune Request object")]
  961. HRESULT TuneRequest(
  962. [out, retval] ITuneRequest **TuneRequest
  963. );
  964. [propput, helpstring("Tune Request object")]
  965. HRESULT TuneRequest(
  966. [in] ITuneRequest *TuneRequest
  967. );
  968. [helpstring("Validate the tuning request without tuning")]
  969. HRESULT Validate(
  970. [in] ITuneRequest *TuneRequest
  971. );
  972. [propget, helpstring("Preferred Component Types collection")]
  973. HRESULT PreferredComponentTypes(
  974. [out, retval] IComponentTypes **ComponentTypes
  975. );
  976. [propput, helpstring("Preferred Component Types collection")]
  977. HRESULT PreferredComponentTypes(
  978. [in] IComponentTypes *ComponentTypes
  979. );
  980. [propget, helpstring("Signal Strength")]
  981. HRESULT SignalStrength(
  982. [out, retval] long *Strength
  983. );
  984. [helpstring("Trigger Signal events (interval in milliseconds; 0 turns off trigger)")]
  985. HRESULT TriggerSignalEvents(
  986. [in] long Interval
  987. );
  988. }
  989. //////////////////////////////////////////////////////////////////////////////////////
  990. [
  991. object,
  992. hidden,
  993. nonextensible,
  994. uuid(1DFD0A5C-0284-11d3-9D8E-00C04F72D980),
  995. helpstring("Scanning Tuner Interface"),
  996. pointer_default(unique)
  997. ]
  998. interface IScanningTuner : ITuner
  999. {
  1000. [helpstring("Seek to the next valid selection")]
  1001. HRESULT SeekUp(
  1002. );
  1003. [helpstring("Seek to the previous valid selection")]
  1004. HRESULT SeekDown(
  1005. );
  1006. [helpstring("Scan for valid selections upward")]
  1007. HRESULT ScanUp(
  1008. [in] long MillisecondsPause
  1009. );
  1010. [helpstring("Scan for valid selections downward")]
  1011. HRESULT ScanDown(
  1012. [in] long MillisecondsPause
  1013. );
  1014. [helpstring("Enter the device's autoprogram mode")]
  1015. HRESULT AutoProgram(
  1016. );
  1017. };
  1018. //////////////////////////////////////////////////////////////////////////////////////
  1019. // Component Type Interfaces
  1020. //////////////////////////////////////////////////////////////////////////////////////
  1021. // Component Category
  1022. [
  1023. object,
  1024. hidden,
  1025. nonextensible,
  1026. uuid(6A340DC0-0311-11d3-9D8E-00C04F72D980),
  1027. dual,
  1028. oleautomation,
  1029. helpstring("Component Type Interface"),
  1030. pointer_default(unique)
  1031. ]
  1032. interface IComponentType : IDispatch
  1033. {
  1034. [propget, id(DISPID_TUNER_CT_CATEGORY),
  1035. helpstring("General category of component")]
  1036. HRESULT Category(
  1037. [out, retval] ComponentCategory *Category
  1038. );
  1039. [propput, id(DISPID_TUNER_CT_CATEGORY),
  1040. helpstring("General category of component")]
  1041. HRESULT Category(
  1042. [in] ComponentCategory Category
  1043. );
  1044. [propget, id(DISPID_TUNER_CT_MEDIAMAJORTYPE),
  1045. helpstring("DirectShow MediaType Major Type Guid")]
  1046. HRESULT MediaMajorType(
  1047. [out, retval] BSTR *MediaMajorType
  1048. );
  1049. [propput, id(DISPID_TUNER_CT_MEDIAMAJORTYPE),
  1050. helpstring("DirectShow MediaType Major Type Guid")]
  1051. HRESULT MediaMajorType(
  1052. [in] BSTR MediaMajorType
  1053. );
  1054. [propget, id(DISPID_TUNER_CT__MEDIAMAJORTYPE),
  1055. helpstring("DirectShow MediaType Major Type Guid"), hidden, restricted]
  1056. HRESULT _MediaMajorType(
  1057. [out, retval] GUID* MediaMajorTypeGuid
  1058. );
  1059. [propput, id(DISPID_TUNER_CT__MEDIAMAJORTYPE),
  1060. helpstring("DirectShow MediaType Major Type Guid"), hidden, restricted]
  1061. HRESULT _MediaMajorType(
  1062. [in] REFCLSID MediaMajorTypeGuid
  1063. );
  1064. [propget, id(DISPID_TUNER_CT_MEDIASUBTYPE),
  1065. helpstring("DirectShow MediaType Sub Type Guid")]
  1066. HRESULT MediaSubType(
  1067. [out, retval] BSTR *MediaSubType
  1068. );
  1069. [propput, id(DISPID_TUNER_CT_MEDIASUBTYPE),
  1070. helpstring("DirectShow MediaType Sub Type Guid")]
  1071. HRESULT MediaSubType(
  1072. [in] BSTR MediaSubType
  1073. );
  1074. [propget, id(DISPID_TUNER_CT__MEDIASUBTYPE),
  1075. helpstring("DirectShow MediaType Sub Type Guid"), hidden, restricted]
  1076. HRESULT _MediaSubType(
  1077. [out, retval] GUID* MediaSubTypeGuid
  1078. );
  1079. [propput, id(DISPID_TUNER_CT__MEDIASUBTYPE),
  1080. helpstring("DirectShow MediaType Sub Type Guid"), hidden, restricted]
  1081. HRESULT _MediaSubType(
  1082. [in] REFCLSID MediaSubTypeGuid
  1083. );
  1084. [propget, id(DISPID_TUNER_CT_MEDIAFORMATTYPE),
  1085. helpstring("DirectShow MediaType Format Guid")]
  1086. HRESULT MediaFormatType(
  1087. [out, retval] BSTR *MediaFormatType
  1088. );
  1089. [propput, id(DISPID_TUNER_CT_MEDIAFORMATTYPE),
  1090. helpstring("DirectShow MediaType Format Guid")]
  1091. HRESULT MediaFormatType(
  1092. [in] BSTR MediaFormatType
  1093. );
  1094. [propget, id(DISPID_TUNER_CT__MEDIAFORMATTYPE),
  1095. helpstring("DirectShow MediaType Format Guid"), hidden, restricted]
  1096. HRESULT _MediaFormatType(
  1097. [out, retval] GUID* MediaFormatTypeGuid
  1098. );
  1099. [propput, id(DISPID_TUNER_CT__MEDIAFORMATTYPE),
  1100. helpstring("DirectShow MediaType Format Guid"), hidden, restricted]
  1101. HRESULT _MediaFormatType(
  1102. [in] REFCLSID MediaFormatTypeGuid
  1103. );
  1104. [propget, id(DISPID_TUNER_CT_MEDIATYPE), hidden, restricted,
  1105. helpstring("DirectShow MediaType Guid, this only retrieves major, sub, format guids not the entire struct")]
  1106. HRESULT MediaType(
  1107. [out, retval] AM_MEDIA_TYPE *MediaType
  1108. );
  1109. [propput, id(DISPID_TUNER_CT_MEDIATYPE), hidden, restricted,
  1110. helpstring("DirectShow MediaType Guid, this only retrieves major, sub, format guids not the entire struct")]
  1111. HRESULT MediaType(
  1112. [in] AM_MEDIA_TYPE *MediaType
  1113. );
  1114. [id(DISPID_TUNER_CT_CLONE),
  1115. helpstring("Create a copy of this component type")]
  1116. HRESULT Clone(
  1117. [out, retval] IComponentType **NewCT
  1118. );
  1119. };
  1120. //////////////////////////////////////////////////////////////////////////////////////
  1121. [
  1122. object,
  1123. hidden,
  1124. nonextensible,
  1125. uuid(B874C8BA-0FA2-11d3-9D8E-00C04F72D980),
  1126. dual,
  1127. oleautomation,
  1128. helpstring("Language Component Type Interface"),
  1129. pointer_default(unique)
  1130. ]
  1131. interface ILanguageComponentType : IComponentType
  1132. {
  1133. [propget, id(DISPID_TUNER_LCT_LANGID),
  1134. helpstring("Language Identifier for Substream Content Language")]
  1135. HRESULT LangID(
  1136. [out, retval] long *LangID
  1137. );
  1138. [propput, id(DISPID_TUNER_LCT_LANGID),
  1139. helpstring("Language Identifier for Substream Content Language")]
  1140. HRESULT LangID(
  1141. [in] long LangID
  1142. );
  1143. };
  1144. //////////////////////////////////////////////////////////////////////////////////////
  1145. [
  1146. object,
  1147. hidden,
  1148. nonextensible,
  1149. uuid(2C073D84-B51C-48c9-AA9F-68971E1F6E38),
  1150. dual,
  1151. oleautomation,
  1152. helpstring("MPEG2 Component Type Interface"),
  1153. pointer_default(unique)
  1154. ]
  1155. interface IMPEG2ComponentType : ILanguageComponentType
  1156. {
  1157. [propget, id(DISPID_TUNER_MP2CT_TYPE),
  1158. helpstring("MPEG2 Stream Type")]
  1159. HRESULT StreamType(
  1160. [out, retval] MPEG2StreamType *MP2StreamType
  1161. );
  1162. [propput, id(DISPID_TUNER_MP2CT_TYPE),
  1163. helpstring("MPEG2 Stream Type")]
  1164. HRESULT StreamType(
  1165. [in] MPEG2StreamType MP2StreamType
  1166. );
  1167. };
  1168. //////////////////////////////////////////////////////////////////////////////////////
  1169. [
  1170. object,
  1171. hidden,
  1172. nonextensible,
  1173. uuid(FC189E4D-7BD4-4125-B3B3-3A76A332CC96),
  1174. dual,
  1175. oleautomation,
  1176. helpstring("ATSC Component Type Interface"),
  1177. pointer_default(unique)
  1178. ]
  1179. interface IATSCComponentType : IMPEG2ComponentType
  1180. {
  1181. [propget, id(DISPID_TUNER_ATSCCT_FLAGS),
  1182. helpstring("ATSC Component Type Flags")]
  1183. HRESULT Flags(
  1184. [out, retval] long *Flags
  1185. );
  1186. [propput, id(DISPID_TUNER_ATSCCT_FLAGS),
  1187. helpstring("ATSC Component Type Flags")]
  1188. HRESULT Flags(
  1189. [in] long flags
  1190. );
  1191. };
  1192. //////////////////////////////////////////////////////////////////////////////////////
  1193. [
  1194. hidden, restricted,
  1195. object,
  1196. uuid(8A674B4A-1F63-11d3-B64C-00C04F79498E),
  1197. pointer_default(unique)
  1198. ]
  1199. interface IEnumComponentTypes : IUnknown
  1200. {
  1201. HRESULT Next(
  1202. [in] ULONG celt,
  1203. [out, size_is(celt), length_is(*pceltFetched)]
  1204. IComponentType** rgelt,
  1205. [out] ULONG* pceltFetched
  1206. );
  1207. HRESULT Skip(
  1208. [in] ULONG celt
  1209. );
  1210. HRESULT Reset(void);
  1211. HRESULT Clone(
  1212. [out] IEnumComponentTypes** ppEnum
  1213. );
  1214. }
  1215. //////////////////////////////////////////////////////////////////////////////////////
  1216. // Component Type Container
  1217. //////////////////////////////////////////////////////////////////////////////////////
  1218. [
  1219. object,
  1220. hidden,
  1221. nonextensible,
  1222. uuid(0DC13D4A-0313-11d3-9D8E-00C04F72D980),
  1223. dual,
  1224. oleautomation,
  1225. helpstring("ComponentType Collection Interface"),
  1226. pointer_default(unique)
  1227. ]
  1228. interface IComponentTypes : IDispatch
  1229. {
  1230. [propget, helpstring("Number of items in the collection")]
  1231. HRESULT Count(
  1232. [out, retval] long *Count
  1233. );
  1234. [propget, id(DISPID_NEWENUM), hidden, restricted]
  1235. HRESULT _NewEnum(
  1236. [out, retval] IEnumVARIANT **ppNewEnum
  1237. );
  1238. [hidden, restricted, helpstring("Convenience Function for Use with C")]
  1239. HRESULT EnumComponentTypes(
  1240. [out, retval] IEnumComponentTypes **ppNewEnum
  1241. );
  1242. [id(DISPID_VALUE),
  1243. propget,
  1244. helpstring("Get the ComponentType at the specified index")]
  1245. HRESULT Item(
  1246. [in] VARIANT Index,
  1247. [out, retval] IComponentType **ComponentType
  1248. );
  1249. [id(DISPID_VALUE),
  1250. propput,
  1251. helpstring("Get the ComponentType at the specified index")]
  1252. HRESULT Item(
  1253. [in] VARIANT Index,
  1254. [in] IComponentType *ComponentType
  1255. );
  1256. [id(DISPID_ADDITEM),
  1257. helpstring("Append the ComponentType to the collection")]
  1258. HRESULT Add(
  1259. [in] IComponentType *ComponentType,
  1260. [out, retval] VARIANT *NewIndex
  1261. );
  1262. [id(DISPID_REMOVEITEM),
  1263. helpstring("Clear the collection")]
  1264. HRESULT Remove(
  1265. [in] VARIANT Index
  1266. );
  1267. [helpstring("Copy the collection")]
  1268. HRESULT Clone([out, retval] IComponentTypes **NewList);
  1269. };
  1270. //////////////////////////////////////////////////////////////////////////////////////
  1271. // Component Interfaces
  1272. //////////////////////////////////////////////////////////////////////////////////////
  1273. [
  1274. object,
  1275. nonextensible,
  1276. uuid(1A5576FC-0E19-11d3-9D8E-00C04F72D980),
  1277. dual,
  1278. oleautomation,
  1279. helpstring("Component Interface"),
  1280. pointer_default(unique)
  1281. ]
  1282. interface IComponent : IDispatch
  1283. {
  1284. [propget, id(DISPID_TUNER_C_TYPE),
  1285. helpstring("Component Type")]
  1286. HRESULT Type(
  1287. [out, retval] IComponentType** CT
  1288. );
  1289. // only loaders initialize components
  1290. [hidden, restricted, propput, id(DISPID_TUNER_C_TYPE),
  1291. helpstring("Component Type")]
  1292. HRESULT Type(
  1293. [in] IComponentType* CT
  1294. );
  1295. // NOTE: this langid is *not* the same as the langid
  1296. // in the componenttype(if the componenttype is a languagecomponenttype)
  1297. // the langid in the component type is the language of the content this
  1298. // component is describing. the following langid in the component is the
  1299. // language of the descriptive info in the component object.
  1300. [propget, id(DISPID_TUNER_C_LANGID),
  1301. helpstring("Language Identifier for Description Language")]
  1302. HRESULT DescLangID(
  1303. [out, retval] long *LangID
  1304. );
  1305. [propput, id(DISPID_TUNER_C_LANGID),
  1306. helpstring("Language Identifier for Description Language")]
  1307. HRESULT DescLangID(
  1308. [in] long LangID
  1309. );
  1310. [propget, id(DISPID_TUNER_C_STATUS),
  1311. helpstring("Component Status")]
  1312. HRESULT Status(
  1313. [out, retval] ComponentStatus *Status
  1314. );
  1315. [propput, id(DISPID_TUNER_C_STATUS),
  1316. helpstring("Component Status")]
  1317. HRESULT Status(
  1318. [in] ComponentStatus Status
  1319. );
  1320. [propget, id(DISPID_TUNER_C_DESCRIPTION),
  1321. helpstring("Component Description")]
  1322. HRESULT Description(
  1323. [out, retval] BSTR *Description
  1324. );
  1325. // restricted: only loaders will initialize components
  1326. [hidden, restricted, propput, id(DISPID_TUNER_C_DESCRIPTION),
  1327. helpstring("Component Description")]
  1328. HRESULT Description(
  1329. [in] BSTR Description
  1330. );
  1331. [id(DISPID_TUNER_C_CLONE),
  1332. helpstring("Copy Component")]
  1333. HRESULT Clone(
  1334. [out, retval] IComponent **NewComponent
  1335. );
  1336. };
  1337. //////////////////////////////////////////////////////////////////////////////////////
  1338. [
  1339. object,
  1340. nonextensible,
  1341. uuid(1493E353-1EB6-473c-802D-8E6B8EC9D2A9),
  1342. dual,
  1343. oleautomation,
  1344. helpstring("MPEG2 Component Interface"),
  1345. pointer_default(unique)
  1346. ]
  1347. interface IMPEG2Component : IComponent
  1348. {
  1349. [propget, id(DISPID_TUNER_C_MP2_PID),
  1350. helpstring("MPEG2 Packet ID for this Substream")]
  1351. HRESULT PID(
  1352. [out, retval] long *PID
  1353. );
  1354. [propput, id(DISPID_TUNER_C_MP2_PID),
  1355. helpstring("MPEG2 Packet ID for this Substream")]
  1356. HRESULT PID(
  1357. [in] long PID
  1358. );
  1359. [propget, id(DISPID_TUNER_C_MP2_PCRPID),
  1360. helpstring("MPEG2 Packet ID for this Substream's Timestamps")]
  1361. HRESULT PCRPID(
  1362. [out, retval] long *PCRPID
  1363. );
  1364. [propput, id(DISPID_TUNER_C_MP2_PCRPID),
  1365. helpstring("MPEG2 Packet ID for this Substream's Timestamps")]
  1366. HRESULT PCRPID(
  1367. [in] long PCRPID
  1368. );
  1369. // program number provides reverse lookup to PAT
  1370. [propget, id(DISPID_TUNER_C_MP2_PROGNO),
  1371. helpstring("MPEG2 Program Number")]
  1372. HRESULT ProgramNumber(
  1373. [out, retval] long *ProgramNumber
  1374. );
  1375. [propput, id(DISPID_TUNER_C_MP2_PROGNO),
  1376. helpstring("MPEG2 Program Number")]
  1377. HRESULT ProgramNumber(
  1378. [in] long ProgramNumber
  1379. );
  1380. };
  1381. //////////////////////////////////////////////////////////////////////////////////////
  1382. [
  1383. hidden, restricted,
  1384. object,
  1385. uuid(2A6E2939-2595-11d3-B64C-00C04F79498E),
  1386. pointer_default(unique)
  1387. ]
  1388. interface IEnumComponents : IUnknown
  1389. {
  1390. HRESULT Next(
  1391. [in] ULONG celt,
  1392. [out, size_is(celt), length_is(*pceltFetched)]
  1393. IComponent** rgelt,
  1394. [out] ULONG* pceltFetched
  1395. );
  1396. HRESULT Skip(
  1397. [in] ULONG celt
  1398. );
  1399. HRESULT Reset(void);
  1400. HRESULT Clone(
  1401. [out] IEnumComponents** ppEnum
  1402. );
  1403. }
  1404. //////////////////////////////////////////////////////////////////////////////////////
  1405. // Component Container
  1406. //////////////////////////////////////////////////////////////////////////////////////
  1407. [
  1408. object,
  1409. nonextensible,
  1410. uuid(FCD01846-0E19-11d3-9D8E-00C04F72D980),
  1411. dual,
  1412. oleautomation,
  1413. helpstring("Component Collection Interface"),
  1414. pointer_default(unique)
  1415. ]
  1416. interface IComponents : IDispatch
  1417. {
  1418. [propget, helpstring("Number of items in the collection")]
  1419. HRESULT Count(
  1420. [out, retval] long *Count
  1421. );
  1422. [propget, id(DISPID_NEWENUM), hidden, restricted]
  1423. HRESULT _NewEnum(
  1424. [out, retval] IEnumVARIANT **ppNewEnum
  1425. );
  1426. [hidden, restricted, helpstring("Convenience Function for Use with C")]
  1427. HRESULT EnumComponents(
  1428. [out, retval] IEnumComponents **ppNewEnum
  1429. );
  1430. [id(DISPID_VALUE),
  1431. propget,
  1432. helpstring("Get the Component at the specified index")]
  1433. HRESULT Item(
  1434. [in] VARIANT Index,
  1435. [out, retval] IComponent **ppComponent
  1436. );
  1437. [id(DISPID_ADDITEM),
  1438. helpstring("Add the Component to the collection")]
  1439. HRESULT Add(
  1440. [in] IComponent *Component,
  1441. [out, retval] VARIANT *NewIndex
  1442. );
  1443. [id(DISPID_REMOVEITEM),
  1444. helpstring("Remove the Component at the specified index")]
  1445. HRESULT Remove(
  1446. [in] VARIANT Index
  1447. );
  1448. [helpstring("Copy the collection")]
  1449. HRESULT Clone([out, retval] IComponents **NewList);
  1450. };
  1451. //////////////////////////////////////////////////////////////////////////////////////
  1452. // Component Container
  1453. //////////////////////////////////////////////////////////////////////////////////////
  1454. // this separates the what(general tune request properties) from the where
  1455. [
  1456. object,
  1457. nonextensible,
  1458. uuid(286D7F89-760C-4F89-80C4-66841D2507AA),
  1459. dual,
  1460. oleautomation,
  1461. helpstring("Generic Locator Information"),
  1462. pointer_default(unique)
  1463. ]
  1464. interface ILocator : IDispatch
  1465. {
  1466. [propget, id(DISPID_TUNER_L_CARRFREQ), helpstring("Carrier Frequency(DecaHertz)")]
  1467. HRESULT CarrierFrequency(
  1468. [out, retval] long* Frequency
  1469. );
  1470. [propput, id(DISPID_TUNER_L_CARRFREQ), helpstring("Carrier Frequency(DecaHertz)")]
  1471. HRESULT CarrierFrequency(
  1472. [in] long Frequency
  1473. );
  1474. [propget, id(DISPID_TUNER_L_INNERFECMETHOD), helpstring("Inner Fec Type")]
  1475. HRESULT InnerFEC(
  1476. [out, retval] FECMethod* FEC
  1477. );
  1478. [propput, id(DISPID_TUNER_L_INNERFECMETHOD), helpstring("Inner Fec Type")]
  1479. HRESULT InnerFEC(
  1480. [in] FECMethod FEC
  1481. );
  1482. [propget, id(DISPID_TUNER_L_INNERFECRATE), helpstring("Inner Fec Rate")]
  1483. HRESULT InnerFECRate(
  1484. [out, retval] BinaryConvolutionCodeRate* FEC
  1485. );
  1486. [propput, id(DISPID_TUNER_L_INNERFECRATE), helpstring("Inner Fec Rate")]
  1487. HRESULT InnerFECRate(
  1488. [in] BinaryConvolutionCodeRate FEC
  1489. );
  1490. [propget, id(DISPID_TUNER_L_OUTERFECMETHOD), helpstring("Outer Fec Type")]
  1491. HRESULT OuterFEC(
  1492. [out, retval] FECMethod* FEC
  1493. );
  1494. [propput, id(DISPID_TUNER_L_OUTERFECMETHOD), helpstring("Outer Fec Type")]
  1495. HRESULT OuterFEC(
  1496. [in] FECMethod FEC
  1497. );
  1498. [propget, id(DISPID_TUNER_L_OUTERFECRATE), helpstring("Outer Fec Rate")]
  1499. HRESULT OuterFECRate(
  1500. [out, retval] BinaryConvolutionCodeRate* FEC
  1501. );
  1502. [propput, id(DISPID_TUNER_L_OUTERFECRATE), helpstring("Outer Fec Rate")]
  1503. HRESULT OuterFECRate(
  1504. [in] BinaryConvolutionCodeRate FEC
  1505. );
  1506. [propget, id(DISPID_TUNER_L_MOD), helpstring("Modulation Type")]
  1507. HRESULT Modulation(
  1508. [out, retval] ModulationType* Modulation
  1509. );
  1510. [propput, id(DISPID_TUNER_L_MOD), helpstring("Modulation Type")]
  1511. HRESULT Modulation(
  1512. [in] ModulationType Modulation
  1513. );
  1514. [propget, id(DISPID_TUNER_L_SYMRATE), helpstring("Modulation Symbol Rate")]
  1515. HRESULT SymbolRate(
  1516. [out, retval] long* Rate
  1517. );
  1518. [propput, id(DISPID_TUNER_L_SYMRATE), helpstring("Modulation Symbol Rate")]
  1519. HRESULT SymbolRate(
  1520. [in] long Rate
  1521. );
  1522. [id(DISPID_TUNER_L_CLONE), helpstring("Copy the Locator")]
  1523. HRESULT Clone([out, retval] ILocator **NewLocator);
  1524. };
  1525. //////////////////////////////////////////////////////////////////////////////////////
  1526. [
  1527. object,
  1528. hidden,
  1529. nonextensible,
  1530. uuid(BF8D986F-8C2B-4131-94D7-4D3D9FCC21EF),
  1531. dual,
  1532. oleautomation,
  1533. helpstring("ATSC Locator Information"),
  1534. pointer_default(unique)
  1535. ]
  1536. interface IATSCLocator : ILocator
  1537. {
  1538. [propget, id(DISPID_TUNER_L_ATSC_PHYS_CHANNEL),
  1539. helpstring("Physical Channel")]
  1540. HRESULT PhysicalChannel(
  1541. [out, retval] long *PhysicalChannel
  1542. );
  1543. [propput, id(DISPID_TUNER_L_ATSC_PHYS_CHANNEL),
  1544. helpstring("Physical Channel")]
  1545. HRESULT PhysicalChannel(
  1546. [in] long PhysicalChannel
  1547. );
  1548. [propget, id(DISPID_TUNER_L_ATSC_TSID),
  1549. helpstring("Transport Stream ID")]
  1550. HRESULT TSID(
  1551. [out, retval] long *TSID
  1552. );
  1553. [propput, id(DISPID_TUNER_L_ATSC_TSID),
  1554. helpstring("Transport Stream ID")]
  1555. HRESULT TSID(
  1556. [in] long TSID
  1557. );
  1558. };
  1559. //////////////////////////////////////////////////////////////////////////////////////
  1560. [
  1561. object,
  1562. hidden,
  1563. nonextensible,
  1564. uuid(8664DA16-DDA2-42ac-926A-C18F9127C302),
  1565. dual,
  1566. oleautomation,
  1567. helpstring("DVB Terrestrial Locator Information"),
  1568. pointer_default(unique)
  1569. ]
  1570. interface IDVBTLocator : ILocator
  1571. {
  1572. [propget, id(DISPID_TUNER_L_DVBT_BANDWIDTH), helpstring("Bandwidth")]
  1573. HRESULT Bandwidth(
  1574. [out, retval] long* BandWidthVal
  1575. );
  1576. [propput, id(DISPID_TUNER_L_DVBT_BANDWIDTH), helpstring("Bandwidth")]
  1577. HRESULT Bandwidth(
  1578. [in] long BandwidthVal
  1579. );
  1580. [propget, id(DISPID_TUNER_L_DVBT_LPINNERFECMETHOD), helpstring("Inner Fec Type for Low Priority Stream")]
  1581. HRESULT LPInnerFEC(
  1582. [out, retval] FECMethod* FEC
  1583. );
  1584. [propput, id(DISPID_TUNER_L_DVBT_LPINNERFECMETHOD), helpstring("Inner Fec Type for Low Priority Stream")]
  1585. HRESULT LPInnerFEC(
  1586. [in] FECMethod FEC
  1587. );
  1588. [propget, id(DISPID_TUNER_L_DVBT_LPINNERFECRATE), helpstring("Inner Fec Rate for Low Priority Stream")]
  1589. HRESULT LPInnerFECRate(
  1590. [out, retval] BinaryConvolutionCodeRate* FEC
  1591. );
  1592. [propput, id(DISPID_TUNER_L_DVBT_LPINNERFECRATE), helpstring("Inner Fec Rate for Low Priority Stream")]
  1593. HRESULT LPInnerFECRate(
  1594. [in] BinaryConvolutionCodeRate FEC
  1595. );
  1596. [propget, id(DISPID_TUNER_L_DVBT_HALPHA), helpstring("Hierarchical Alpha")]
  1597. HRESULT HAlpha(
  1598. [out, retval] HierarchyAlpha* Alpha
  1599. );
  1600. [propput, id(DISPID_TUNER_L_DVBT_HALPHA), helpstring("Hierarchical Alpha")]
  1601. HRESULT HAlpha(
  1602. [in] HierarchyAlpha Alpha
  1603. );
  1604. [propget, id(DISPID_TUNER_L_DVBT_GUARDINTERVAL), helpstring("Guard Interval")]
  1605. HRESULT Guard(
  1606. [out, retval] GuardInterval* GI
  1607. );
  1608. [propput, id(DISPID_TUNER_L_DVBT_GUARDINTERVAL), helpstring("Guard Interval")]
  1609. HRESULT Guard(
  1610. [in] GuardInterval GI
  1611. );
  1612. [propget, id(DISPID_TUNER_L_DVBT_TRANSMISSIONMODE), helpstring("Transmission Mode")]
  1613. HRESULT Mode(
  1614. [out, retval] TransmissionMode* mode
  1615. );
  1616. [propput, id(DISPID_TUNER_L_DVBT_TRANSMISSIONMODE), helpstring("Transmission Mode")]
  1617. HRESULT Mode(
  1618. [in] TransmissionMode mode
  1619. );
  1620. [propget, id(DISPID_TUNER_L_DVBT_INUSE), helpstring("Hierarchical Alpha")]
  1621. HRESULT OtherFrequencyInUse(
  1622. [out, retval] VARIANT_BOOL* OtherFrequencyInUseVal
  1623. );
  1624. [propput, id(DISPID_TUNER_L_DVBT_INUSE), helpstring("Hierarchical Alpha")]
  1625. HRESULT OtherFrequencyInUse(
  1626. [in] VARIANT_BOOL OtherFrequencyInUseVal
  1627. );
  1628. };
  1629. //////////////////////////////////////////////////////////////////////////////////////
  1630. [
  1631. object,
  1632. hidden,
  1633. nonextensible,
  1634. uuid(3D7C353C-0D04-45f1-A742-F97CC1188DC8),
  1635. dual,
  1636. oleautomation,
  1637. helpstring("DVB Satellite Locator Information"),
  1638. pointer_default(unique)
  1639. ]
  1640. interface IDVBSLocator : ILocator
  1641. {
  1642. [propget, id(DISPID_TUNER_L_DVBS_POLARISATION), helpstring("Signal Polarisation Type")]
  1643. HRESULT SignalPolarisation(
  1644. [out, retval] Polarisation* PolarisationVal
  1645. );
  1646. [propput, id(DISPID_TUNER_L_DVBS_POLARISATION), helpstring("Signal Polarisation Type")]
  1647. HRESULT SignalPolarisation(
  1648. [in] Polarisation PolarisationVal
  1649. );
  1650. [propget, id(DISPID_TUNER_L_DVBS_WEST), helpstring("VARIANT_TRUE means orbital position specifies west longitude")]
  1651. HRESULT WestPosition(
  1652. [out, retval] VARIANT_BOOL* WestLongitude
  1653. );
  1654. [propput, id(DISPID_TUNER_L_DVBS_WEST), helpstring("VARIANT_TRUE means orbital position specifies west longitude")]
  1655. HRESULT WestPosition(
  1656. [in] VARIANT_BOOL WestLongitude
  1657. );
  1658. [propget, id(DISPID_TUNER_L_DVBS_ORBITAL), helpstring("Longitude in tenths of a degree")]
  1659. HRESULT OrbitalPosition(
  1660. [out, retval] long* longitude
  1661. );
  1662. [propput, id(DISPID_TUNER_L_DVBS_ORBITAL), helpstring("Longitude in tenths of a degree")]
  1663. HRESULT OrbitalPosition(
  1664. [in] long longitude
  1665. );
  1666. [propget, id(DISPID_TUNER_L_DVBS_AZIMUTH), helpstring("Azimuth in tenths of a degree")]
  1667. HRESULT Azimuth(
  1668. [out, retval] long* Azimuth
  1669. );
  1670. [propput, id(DISPID_TUNER_L_DVBS_AZIMUTH), helpstring("Azimuth in tenths of a degree")]
  1671. HRESULT Azimuth(
  1672. [in] long Azimuth
  1673. );
  1674. [propget, id(DISPID_TUNER_L_DVBS_ELEVATION), helpstring("Elevation in tenths of a degree")]
  1675. HRESULT Elevation(
  1676. [out, retval] long* Elevation
  1677. );
  1678. [propput, id(DISPID_TUNER_L_DVBS_ELEVATION), helpstring("Elevation in tenths of a degree")]
  1679. HRESULT Elevation(
  1680. [in] long Elevation
  1681. );
  1682. };
  1683. //////////////////////////////////////////////////////////////////////////////////////
  1684. [
  1685. object,
  1686. hidden,
  1687. nonextensible,
  1688. uuid(6E42F36E-1DD2-43c4-9F78-69D25AE39034),
  1689. dual,
  1690. oleautomation,
  1691. helpstring("DVB Cable Locator Information"),
  1692. pointer_default(unique)
  1693. ]
  1694. interface IDVBCLocator : ILocator
  1695. {
  1696. };
  1697. ///////////////////////////////////////////////////////////////////////////////////////
  1698. // utility interfaces
  1699. ///////////////////////////////////////////////////////////////////////////////////////
  1700. [
  1701. object,
  1702. hidden,
  1703. nonextensible,
  1704. uuid(3B21263F-26E8-489d-AAC4-924F7EFD9511),
  1705. helpstring("Broadcast Event Service Firing/Reflecting Interface"),
  1706. pointer_default(unique)
  1707. ]
  1708. interface IBroadcastEvent : IUnknown
  1709. {
  1710. HRESULT Fire(GUID EventID);
  1711. };
  1712. //////////////////////////////////////////////////////////////////////////////////////
  1713. //////////////////////////////////////////////////////////////////////////////////////
  1714. // TYPELIB & CoClasses
  1715. //////////////////////////////////////////////////////////////////////////////////////
  1716. //////////////////////////////////////////////////////////////////////////////////////
  1717. [
  1718. uuid(9B085638-018E-11d3-9D8E-00C04F72D980),
  1719. version(1.0),
  1720. helpstring("Microsoft Tuner 1.0 Type Library")
  1721. ]
  1722. library TunerLib
  1723. {
  1724. importlib("stdole2.tlb");
  1725. // SystemTuningSpaces class
  1726. [
  1727. uuid(D02AAC50-027E-11d3-9D8E-00C04F72D980),
  1728. helpstring("SystemTuningSpace Class")
  1729. ]
  1730. coclass SystemTuningSpaces
  1731. {
  1732. [default] interface ITuningSpaceContainer;
  1733. };
  1734. // NOTE: there is no object factory for this class. the implementation for the underlying
  1735. // code is a c++ abstract base class. this coclass is only provided here to
  1736. // force vb to expose the base interface to enable polymorphic access to
  1737. // derived objects
  1738. [
  1739. hidden, restricted,
  1740. uuid(5FFDC5E6-B83A-4b55-B6E8-C69E765FE9DB),
  1741. helpstring("dummy class to expose base tuning space i/f to VB")
  1742. ]
  1743. coclass TuningSpace
  1744. {
  1745. [default] interface ITuningSpace;
  1746. };
  1747. [
  1748. uuid(A2E30750-6C3D-11d3-B653-00C04F79498E),
  1749. helpstring("ATSC Digital Broadcast Tuning Space Class")
  1750. ]
  1751. coclass ATSCTuningSpace
  1752. {
  1753. [default] interface IATSCTuningSpace;
  1754. };
  1755. [
  1756. uuid(8A674B4C-1F63-11d3-B64C-00C04F79498E),
  1757. helpstring("Analog Radio Tuning Space Class")
  1758. ]
  1759. coclass AnalogRadioTuningSpace
  1760. {
  1761. [default] interface IAnalogRadioTuningSpace;
  1762. };
  1763. [
  1764. uuid(F9769A06-7ACA-4e39-9CFB-97BB35F0E77E),
  1765. helpstring("Auxiliary Inputs Tuning Space Class")
  1766. ]
  1767. coclass AuxInTuningSpace
  1768. {
  1769. [default] interface IAuxInTuningSpace;
  1770. };
  1771. [
  1772. uuid(8A674B4D-1F63-11d3-B64C-00C04F79498E),
  1773. helpstring("Analog TV Tuning Space Class")
  1774. ]
  1775. coclass AnalogTVTuningSpace
  1776. {
  1777. [default] interface IAnalogTVTuningSpace;
  1778. };
  1779. [
  1780. uuid(C6B14B32-76AA-4a86-A7AC-5C79AAF58DA7),
  1781. helpstring("DVB Tuning Space Class")
  1782. ]
  1783. coclass DVBTuningSpace
  1784. {
  1785. [default] interface IDVBTuningSpace2;
  1786. interface IDVBTuningSpace;
  1787. };
  1788. [
  1789. uuid(B64016F3-C9A2-4066-96F0-BD9563314726),
  1790. helpstring("DVB Satellite Tuning Space Class")
  1791. ]
  1792. coclass DVBSTuningSpace
  1793. {
  1794. [default] interface IDVBSTuningSpace;
  1795. };
  1796. // ComponentTypes container class
  1797. [
  1798. uuid(A1A2B1C4-0E3A-11d3-9D8E-00C04F72D980),
  1799. helpstring("Component Types Collection Class")
  1800. ]
  1801. coclass ComponentTypes
  1802. {
  1803. [default] interface IComponentTypes;
  1804. };
  1805. // ComponentType class
  1806. [
  1807. uuid(823535A0-0318-11d3-9D8E-00C04F72D980),
  1808. helpstring("ComponentType Class")
  1809. ]
  1810. coclass ComponentType
  1811. {
  1812. [default] interface IComponentType;
  1813. };
  1814. // Language ComponentType class
  1815. [
  1816. uuid(1BE49F30-0E1B-11d3-9D8E-00C04F72D980),
  1817. helpstring("LanguageComponentType Class")
  1818. ]
  1819. coclass LanguageComponentType
  1820. {
  1821. [default] interface ILanguageComponentType;
  1822. };
  1823. // MPEG2 ComponentType class
  1824. [
  1825. uuid(418008F3-CF67-4668-9628-10DC52BE1D08),
  1826. helpstring("MPEG2ComponentType Class")
  1827. ]
  1828. coclass MPEG2ComponentType
  1829. {
  1830. [default] interface IMPEG2ComponentType;
  1831. };
  1832. // ATSC ComponentType class
  1833. [
  1834. uuid(A8DCF3D5-0780-4ef4-8A83-2CFFAACB8ACE),
  1835. helpstring("ATSCComponentType Class")
  1836. ]
  1837. coclass ATSCComponentType
  1838. {
  1839. [default] interface IATSCComponentType;
  1840. };
  1841. // Components class
  1842. [
  1843. hidden, restricted,
  1844. uuid(809B6661-94C4-49e6-B6EC-3F0F862215AA),
  1845. helpstring("Components Collection Class")
  1846. ]
  1847. coclass Components
  1848. {
  1849. [default] interface IComponents;
  1850. };
  1851. // Component class
  1852. // the components can only be created by network provider/tif. client apps
  1853. // retrieve them from a filled-in tune request by either loading a persisted tune
  1854. // request that has been filled in by a proper guide store loader or by re-getting
  1855. // the current tune request property which will have this filled in by the network
  1856. // provider
  1857. [
  1858. hidden, restricted,
  1859. uuid(59DC47A8-116C-11d3-9D8E-00C04F72D980),
  1860. helpstring("Component Class")
  1861. ]
  1862. coclass Component
  1863. {
  1864. [default] interface IComponent;
  1865. };
  1866. // MPEG2 Component class
  1867. [
  1868. hidden, restricted,
  1869. uuid(055CB2D7-2969-45cd-914B-76890722F112),
  1870. helpstring("MPEG2 Component Class")
  1871. ]
  1872. coclass MPEG2Component
  1873. {
  1874. [default] interface IMPEG2Component;
  1875. };
  1876. // NOTE: there is no object factory for this class. the implementation for the underlying
  1877. // code is a c++ abstract base class. this coclass is only provided here to
  1878. // force vb to expose the base interface to enable polymorphic access to
  1879. // derived objects
  1880. [
  1881. hidden, restricted,
  1882. uuid(B46E0D38-AB35-4a06-A137-70576B01B39F),
  1883. helpstring("dummy class to expose base tune request i/f to VB")
  1884. ]
  1885. coclass TuneRequest
  1886. {
  1887. [default] interface ITuneRequest;
  1888. };
  1889. // NOTE: the tuning request factories should not be invoked directly.
  1890. // instead apps should use ITuningSpace::CreateTuningRequest to obtain a correctly
  1891. // initialized tuning request of the appropriate type for that space.
  1892. // the object factories are provided to allow generic code to a load a previously persisted
  1893. // tune request object.
  1894. [
  1895. hidden,
  1896. restricted,
  1897. uuid(0369B4E5-45B6-11d3-B650-00C04F79498E),
  1898. helpstring("Channel Tune Request")
  1899. ]
  1900. coclass ChannelTuneRequest
  1901. {
  1902. [default] interface IChannelTuneRequest;
  1903. };
  1904. [
  1905. hidden,
  1906. restricted,
  1907. uuid(0369B4E6-45B6-11d3-B650-00C04F79498E),
  1908. helpstring("ATSC Channel Tune Request")
  1909. ]
  1910. coclass ATSCChannelTuneRequest
  1911. {
  1912. [default] interface IATSCChannelTuneRequest;
  1913. };
  1914. // NOTE: there is no object factory for this class. the implementation for the underlying
  1915. // code is a c++ abstract base class. this coclass is only provided here to
  1916. // force vb to expose the base interface to enable polymorphic access to
  1917. // derived objects
  1918. [
  1919. hidden, restricted,
  1920. uuid(0955AC62-BF2E-4cba-A2B9-A63F772D46CF),
  1921. helpstring("dummy class to expose mpeg2 request i/f to VB")
  1922. ]
  1923. coclass MPEG2TuneRequest
  1924. {
  1925. [default] interface IMPEG2TuneRequest;
  1926. };
  1927. [
  1928. uuid(2C63E4EB-4CEA-41b8-919C-E947EA19A77C),
  1929. helpstring("Factory for creating IMPEG2TuneRequest")
  1930. ]
  1931. coclass MPEG2TuneRequestFactory
  1932. {
  1933. [default] interface IMPEG2TuneRequestFactory;
  1934. };
  1935. // NOTE: there is no object factory for this class. the implementation for the underlying
  1936. // code is a c++ abstract base class. this coclass is only provided here to
  1937. // force vb to expose the base interface to enable polymorphic access to
  1938. // derived objects
  1939. [
  1940. hidden, restricted,
  1941. uuid(0888C883-AC4F-4943-B516-2C38D9B34562),
  1942. helpstring("dummy class to expose base locator i/f to VB")
  1943. ]
  1944. coclass Locator
  1945. {
  1946. [default] interface ILocator;
  1947. };
  1948. // its not intended that client apps actually create locators. the network
  1949. // provider in combination with the transport information filter(TIF) are the
  1950. // only modules in the system that actually know the correct values for these objects
  1951. // however, for testing purposes, its necessary to allow these to be created.
  1952. // instead, normally these will simply be passed around opaquely since they're a
  1953. // property of the base tune request interface.
  1954. [
  1955. uuid(8872FF1B-98FA-4d7a-8D93-C9F1055F85BB),
  1956. helpstring("ATSC Locator")
  1957. ]
  1958. coclass ATSCLocator
  1959. {
  1960. [default] interface IATSCLocator;
  1961. };
  1962. [
  1963. uuid(9CD64701-BDF3-4d14-8E03-F12983D86664),
  1964. helpstring("DVB-Terrestrial Locator")
  1965. ]
  1966. coclass DVBTLocator
  1967. {
  1968. [default] interface IDVBTLocator;
  1969. };
  1970. [
  1971. uuid(1DF7D126-4050-47f0-A7CF-4C4CA9241333),
  1972. helpstring("DVB-Satellite Locator")
  1973. ]
  1974. coclass DVBSLocator
  1975. {
  1976. [default] interface IDVBSLocator;
  1977. };
  1978. [
  1979. uuid(C531D9FD-9685-4028-8B68-6E1232079F1E),
  1980. helpstring("DVB-Cable Locator")
  1981. ]
  1982. coclass DVBCLocator
  1983. {
  1984. [default] interface ILocator;
  1985. };
  1986. [
  1987. hidden,
  1988. restricted,
  1989. uuid(15D6504A-5494-499c-886C-973C9E53B9F1),
  1990. helpstring("DVB Tune Request")
  1991. ]
  1992. coclass DVBTuneRequest
  1993. {
  1994. [default] interface IDVBTuneRequest;
  1995. };
  1996. // Sample tuner class definition:
  1997. //
  1998. // [
  1999. // uuid(<some guid>),
  2000. // helpstring("My Tuner object")
  2001. // ]
  2002. // coclass MyTuner
  2003. // {
  2004. // [default] interface ITuner;
  2005. // interface IMyTunerCustomFeatureInterface;
  2006. // };
  2007. ///////////////////////////////////////////////////////////////////////////////////////
  2008. // utility objects
  2009. ///////////////////////////////////////////////////////////////////////////////////////
  2010. [
  2011. hidden, restricted,
  2012. uuid(8A674B49-1F63-11d3-B64C-00C04F79498E),
  2013. helpstring("Create property bag backed by registry")
  2014. ]
  2015. coclass CreatePropBagOnRegKey
  2016. {
  2017. interface ICreatePropBagOnRegKey;
  2018. };
  2019. [
  2020. hidden, restricted,
  2021. uuid(0B3FFB92-0919-4934-9D5B-619C719D0202),
  2022. helpstring("DShow Broadcast Event Service Object")
  2023. ]
  2024. coclass BroadcastEventService
  2025. {
  2026. interface IBroadcastEvent;
  2027. };
  2028. cpp_quote("#define SID_SBroadcastEventService CLSID_BroadcastEventService")
  2029. }
  2030. // end of file -- tuner.idl