/[cvs]/api/include/DShowIDL/tuner.idl
ViewVC logotype

Annotation of /api/include/DShowIDL/tuner.idl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (hide annotations) (vendor branch)
Sun Jul 1 20:47:59 2001 UTC (23 years, 4 months ago) by bearsoft
Branch: lazy, MAIN
CVS Tags: start, HEAD
Changes since 1.1: +0 -0 lines
First import

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

root@recompile.se
ViewVC Help
Powered by ViewVC 1.1.26