xref: /reactos/sdk/include/psdk/tuner.idl (revision b36d9bd9)
1
2
3cpp_quote("#pragma once")
4
5#include <olectl.h>
6#ifndef DO_NO_IMPORTS
7import "oaidl.idl";
8import "comcat.idl";
9import "strmif.idl";
10import "bdaiface.idl";
11import "regbag.idl";
12#else
13cpp_quote("#include <bdaiface.h>")
14#endif
15
16interface ITuningSpaceContainer;
17interface ITuningSpace;
18interface IEnumTuningSpaces;
19interface ITuneRequest;
20interface ITuner;
21interface ITunerCap;
22interface IScanningTuner;
23interface IEnumComponentTypes;
24interface IComponentTypes;
25interface IComponentType;
26interface ILanguageComponentType;
27interface IEnumComponents;
28interface IComponents;
29interface IComponent;
30interface IMPEG2ComponentType;
31interface IMPEG2Component;
32interface ILocator;
33interface IATSCLocator;
34interface IDVBSLocator;
35interface IDVBTLocator;
36interface IDVBCLocator;
37interface IDigitalCableLocator;
38interface IAnalogLocator;
39interface IDigitalCableTuneRequest;
40interface IDigitalCableTuningSpace;
41
42[
43    object,
44    uuid(901284E4-33FE-4b69-8D63-634A596F3756),
45    dual,
46    oleautomation,
47    nonextensible,
48    pointer_default(unique)
49]
50interface ITuningSpaces : IDispatch
51{
52    HRESULT get_Count(
53        [out] long *Count);
54
55    HRESULT get__NewEnum(
56        [out] IEnumVARIANT** NewEnum);
57
58    HRESULT get_Item(
59        [in] VARIANT varIndex,
60        [out] ITuningSpace** TuningSpace);
61
62    HRESULT get_EnumTuningSpaces(
63        [out] IEnumTuningSpaces** NewEnum);
64}
65
66[
67    object,
68    uuid(5B692E84-E2F1-11d2-9493-00C04F72D980),
69    dual,
70    oleautomation,
71    hidden,
72    nonextensible,
73    pointer_default(unique)
74]
75interface ITuningSpaceContainer : IDispatch
76{
77    HRESULT get_Count(
78        [out] long *Count);
79
80    HRESULT get__NewEnum(
81        [out] IEnumVARIANT** NewEnum);
82
83    HRESULT get_Item(
84        [in] VARIANT varIndex,
85        [out] ITuningSpace** TuningSpace);
86
87    HRESULT put_Item(
88        [in] VARIANT varIndex,
89        [in] ITuningSpace *TuningSpace);
90
91    HRESULT TuningSpacesForCLSID(
92        [in] BSTR SpaceCLSID,
93        [out] ITuningSpaces** NewColl);
94
95    HRESULT _TuningSpacesForCLSID(
96        [in] REFCLSID SpaceCLSID,
97        [out] ITuningSpaces** NewColl);
98
99    HRESULT TuningSpacesForName(
100        [in] BSTR Name,
101        [out] ITuningSpaces** NewColl);
102
103    HRESULT FindID(
104        [in] ITuningSpace *TuningSpace,
105        [out] long *ID);
106
107    HRESULT Add(
108        [in] ITuningSpace* TuningSpace,
109        [out] VARIANT* NewIndex);
110
111    HRESULT get_EnumTuningSpaces(
112        [out] IEnumTuningSpaces **ppEnum);
113
114    HRESULT Remove(
115        [in] VARIANT Index);
116
117    HRESULT get_MaxCount(
118        [out] long *MaxCount);
119
120    HRESULT put_MaxCount(
121        [in] long MaxCount);
122}
123
124
125[
126    object,
127    uuid(061C6E30-E622-11d2-9493-00C04F72D980),
128    dual,
129    oleautomation,
130    nonextensible,
131    pointer_default(unique)
132]
133interface ITuningSpace : IDispatch
134{
135    HRESULT get_UniqueName(
136        [out] BSTR *Name);
137
138    HRESULT put_UniqueName(
139        [in] BSTR Name);
140
141    HRESULT get_FriendlyName(
142        [out] BSTR *Name);
143
144    HRESULT put_FriendlyName(
145        [in] BSTR Name);
146
147    HRESULT get_CLSID(
148        [out] BSTR* SpaceCLSID);
149
150    HRESULT get_NetworkType(
151        [out] BSTR *NetworkTypeGuid);
152
153    HRESULT put_NetworkType(
154        [in] BSTR NetworkTypeGuid);
155
156    HRESULT get__NetworkType(
157        [out] GUID* NetworkTypeGuid);
158
159    HRESULT put__NetworkType(
160        [in] REFCLSID NetworkTypeGuid);
161
162    HRESULT CreateTuneRequest(
163        [out] ITuneRequest **TuneRequest);
164
165    HRESULT EnumCategoryGUIDs(
166        [out] IEnumGUID **ppEnum);
167
168    HRESULT EnumDeviceMonikers(
169        [out] IEnumMoniker **ppEnum);
170
171    HRESULT get_DefaultPreferredComponentTypes(
172        [out] IComponentTypes** ComponentTypes);
173
174    HRESULT put_DefaultPreferredComponentTypes(
175        [in] IComponentTypes* NewComponentTypes);
176
177    HRESULT get_FrequencyMapping(
178        [out] BSTR *pMapping);
179
180    HRESULT put_FrequencyMapping(
181        BSTR Mapping);
182
183    HRESULT get_DefaultLocator(
184        [out] ILocator **LocatorVal);
185
186    HRESULT put_DefaultLocator(
187        [in]ILocator *LocatorVal);
188
189    HRESULT Clone(
190        [out] ITuningSpace **NewTS);
191}
192
193[
194    hidden,
195    restricted,
196    object,
197    uuid(8B8EB248-FC2B-11d2-9D8C-00C04F72D980),
198    pointer_default(unique)
199]
200interface IEnumTuningSpaces : IUnknown
201{
202    HRESULT Next(
203        [in] ULONG celt,
204        [in, out]ITuningSpace** rgelt,
205        [out] ULONG* pceltFetched);
206
207    HRESULT Skip(
208        [in] ULONG celt);
209
210    HRESULT Reset();
211
212    HRESULT Clone(
213        [out] IEnumTuningSpaces** ppEnum);
214}
215
216[
217    object,
218    hidden,
219    dual,
220    oleautomation,
221    nonextensible,
222    uuid(ADA0B268-3B19-4e5b-ACC4-49F852BE13BA),
223    pointer_default(unique)
224]
225interface IDVBTuningSpace : ITuningSpace
226{
227    HRESULT get_SystemType(
228        [out] DVBSystemType *SysType);
229
230    HRESULT put_SystemType(
231        [in] DVBSystemType SysType);
232}
233
234[
235    object,
236    hidden,
237    dual,
238    oleautomation,
239    nonextensible,
240    uuid(843188B4-CE62-43db-966B-8145A094E040),
241    pointer_default(unique)
242]
243interface IDVBTuningSpace2 : IDVBTuningSpace
244{
245    HRESULT get_NetworkID(
246        [out] long *NetworkID);
247
248    HRESULT put_NetworkID(
249        [in] long NetworkID);
250}
251
252[
253    object,
254    hidden,
255    dual,
256    oleautomation,
257    nonextensible,
258    uuid(CDF7BE60-D954-42fd-A972-78971958E470),
259    pointer_default(unique)
260]
261interface IDVBSTuningSpace : IDVBTuningSpace2
262{
263
264    HRESULT get_LowOscillator(
265        [out] long *LowOscillator);
266
267    HRESULT put_LowOscillator(
268        [in] long LowOscillator);
269
270    HRESULT get_HighOscillator(
271        [out] long *HighOscillator);
272
273    HRESULT put_HighOscillator(
274        [in] long HighOscillator);
275
276    HRESULT get_LNBSwitch(
277        [out] long *LNBSwitch);
278
279    HRESULT put_LNBSwitch(
280        [in] long LNBSwitch);
281
282    HRESULT get_InputRange(
283        [out] BSTR *InputRange);
284
285    HRESULT put_InputRange(
286        [in] BSTR InputRange);
287
288    HRESULT get_SpectralInversion(
289        [out] SpectralInversion *SpectralInversionVal);
290
291    HRESULT put_SpectralInversion(
292        [in] SpectralInversion SpectralInversionVal);
293}
294
295[
296    object,
297    hidden,
298    dual,
299    oleautomation,
300    nonextensible,
301    uuid(E48244B8-7E17-4f76-A763-5090FF1E2F30),
302    pointer_default(unique)
303]
304interface IAuxInTuningSpace : ITuningSpace
305{
306}
307
308[
309    object,
310    hidden,
311    dual,
312    oleautomation,
313    nonextensible,
314    uuid(B10931ED-8BFE-4AB0-9DCE-E469C29A9729),
315    pointer_default(unique)
316]
317interface IAuxInTuningSpace2 : IAuxInTuningSpace
318{
319    HRESULT get_CountryCode([out] long *CountryCodeVal);
320
321    HRESULT put_CountryCode([in] long NewCountryCodeVal);
322}
323
324[
325    object,
326    hidden,
327    dual,
328    oleautomation,
329    nonextensible,
330    uuid(2A6E293C-2595-11d3-B64C-00C04F79498E),
331    pointer_default(unique)
332]
333interface IAnalogTVTuningSpace : ITuningSpace
334{
335    HRESULT get_MinChannel(
336        [out] long *MinChannelVal);
337
338    HRESULT put_MinChannel(
339        [in] long NewMinChannelVal);
340
341    HRESULT get_MaxChannel(
342        [out] long *MaxChannelVal);
343
344    HRESULT put_MaxChannel(
345        [in] long NewMaxChannelVal);
346
347    HRESULT get_InputType(
348        [out] TunerInputType *InputTypeVal);
349
350    HRESULT put_InputType(
351        [in] TunerInputType NewInputTypeVal);
352
353    HRESULT get_CountryCode(
354        [out] long *CountryCodeVal);
355
356    HRESULT put_CountryCode(
357        [in] long NewCountryCodeVal);
358}
359
360[
361    object,
362    hidden,
363    dual,
364    oleautomation,
365    nonextensible,
366    uuid(0369B4E2-45B6-11d3-B650-00C04F79498E),
367    pointer_default(unique)
368]
369interface IATSCTuningSpace : IAnalogTVTuningSpace
370{
371    HRESULT get_MinMinorChannel(
372        [out] long *MinMinorChannelVal);
373
374    HRESULT put_MinMinorChannel(
375        [in] long NewMinMinorChannelVal);
376
377    HRESULT get_MaxMinorChannel(
378        [out] long *MaxMinorChannelVal);
379
380    HRESULT put_MaxMinorChannel(
381        [in] long NewMaxMinorChannelVal);
382
383    HRESULT get_MinPhysicalChannel(
384        [out] long *MinPhysicalChannelVal);
385
386    HRESULT put_MinPhysicalChannel(
387        [in] long NewMinPhysicalChannelVal);
388
389    HRESULT get_MaxPhysicalChannel(
390        [out] long *MaxPhysicalChannelVal);
391
392    HRESULT put_MaxPhysicalChannel(
393        [in] long NewMaxPhysicalChannelVal);
394}
395
396[
397    object,
398    hidden,
399    dual,
400    oleautomation,
401    nonextensible,
402    uuid(013F9F9C-B449-4ec7-A6D2-9D4F2FC70AE5),
403    pointer_default(unique)
404]
405interface IDigitalCableTuningSpace : IATSCTuningSpace
406{
407    HRESULT get_MinMajorChannel(
408        [out] long *MinMajorChannelVal);
409
410    HRESULT put_MinMajorChannel(
411        [in] long NewMinMajorChannelVal);
412
413    HRESULT get_MaxMajorChannel(
414        [out] long *MaxMajorChannelVal);
415
416    HRESULT put_MaxMajorChannel(
417        [in] long NewMaxMajorChannelVal);
418
419    HRESULT get_MinSourceID(
420        [out] long *MinSourceIDVal);
421
422    HRESULT put_MinSourceID(
423        [in] long NewMinSourceIDVal);
424
425    HRESULT get_MaxSourceID(
426        [out] long *MaxSourceIDVal);
427
428    HRESULT put_MaxSourceID(
429        [in] long NewMaxSourceIDVal);
430}
431
432[
433    object,
434    hidden,
435    dual,
436    oleautomation,
437    nonextensible,
438    uuid(2A6E293B-2595-11d3-B64C-00C04F79498E),
439    pointer_default(unique)
440]
441interface IAnalogRadioTuningSpace : ITuningSpace
442{
443    HRESULT get_MinFrequency(
444        [out] long *MinFrequencyVal);
445
446    HRESULT put_MinFrequency(
447        [in] long NewMinFrequencyVal);
448
449    HRESULT get_MaxFrequency(
450        [out] long *MaxFrequencyVal);
451
452    HRESULT put_MaxFrequency(
453        [in] long NewMaxFrequencyVal);
454
455    HRESULT get_Step(
456        [out] long *StepVal);
457
458    HRESULT put_Step(
459        [in] long NewStepVal);
460}
461
462[
463    object,
464    hidden,
465    dual,
466    oleautomation,
467    nonextensible,
468    uuid(39DD45DA-2DA8-46BA-8A8A-87E2B73D983A),
469    pointer_default(unique)
470]
471interface IAnalogRadioTuningSpace2 : IAnalogRadioTuningSpace {
472    HRESULT get_CountryCode([out] long *CountryCodeVal);
473    HRESULT put_CountryCode([in] long NewCountryCodeVal);
474}
475[
476    object,
477    nonextensible,
478    uuid(07DDC146-FC3D-11d2-9D8C-00C04F72D980),
479    dual,
480    oleautomation,
481    pointer_default(unique)
482]
483interface ITuneRequest : IDispatch
484{
485    HRESULT get_TuningSpace(
486        [out] ITuningSpace **TuningSpace);
487
488    HRESULT get_Components(
489        [out] IComponents **Components);
490
491    HRESULT Clone(
492        [out] ITuneRequest **NewTuneRequest);
493
494    HRESULT get_Locator(
495        [out] ILocator **Locator);
496
497    HRESULT put_Locator(
498        [in] ILocator *Locator);
499}
500
501[
502    object,
503    nonextensible,
504    uuid(0369B4E0-45B6-11d3-B650-00C04F79498E),
505    dual,
506    oleautomation,
507    pointer_default(unique)
508]
509interface IChannelTuneRequest : ITuneRequest
510{
511    HRESULT get_Channel(
512        [out] long *Channel);
513
514    HRESULT put_Channel(
515        [in] long Channel);
516}
517
518[
519    object,
520    nonextensible,
521    uuid(0369B4E1-45B6-11d3-B650-00C04F79498E),
522    dual,
523    oleautomation,
524    pointer_default(unique)
525]
526interface IATSCChannelTuneRequest : IChannelTuneRequest
527{
528    HRESULT get_MinorChannel(
529        [out] long *MinorChannel);
530
531    HRESULT put_MinorChannel(
532        [in] long MinorChannel);
533}
534
535[
536    object,
537    nonextensible,
538    uuid(BAD7753B-6B37-4810-AE57-3CE0C4A9E6CB),
539    dual,
540    oleautomation,
541    pointer_default(unique)
542]
543interface IDigitalCableTuneRequest : IATSCChannelTuneRequest
544{
545    HRESULT get_MajorChannel(
546        [out] long *pMajorChannel);
547
548    HRESULT put_MajorChannel(
549        [in] long MajorChannel);
550
551    HRESULT get_SourceID(
552        [out] long *pSourceID);
553
554    HRESULT put_SourceID(
555        [in] long SourceID);
556}
557
558
559[
560    object,
561    nonextensible,
562    uuid(0D6F567E-A636-42bb-83BA-CE4C1704AFA2),
563    dual,
564    oleautomation,
565    pointer_default(unique)
566]
567interface IDVBTuneRequest : ITuneRequest
568{
569    HRESULT get_ONID(
570        [out] long *ONID);
571
572    HRESULT put_ONID(
573        [in] long ONID);
574
575    HRESULT get_TSID(
576        [out] long *TSID);
577
578    HRESULT put_TSID(
579        [in] long TSID);
580
581    HRESULT get_SID(
582        [out] long *SID);
583
584    HRESULT put_SID(
585        [in] long SID);
586}
587
588[
589    object,
590    nonextensible,
591    uuid(EB7D987F-8A01-42ad-B8AE-574DEEE44D1A),
592    dual,
593    oleautomation,
594    pointer_default(unique)
595]
596interface IMPEG2TuneRequest : ITuneRequest
597{
598    HRESULT get_TSID(
599        [out] long *TSID);
600
601    HRESULT put_TSID(
602        [in] long TSID);
603
604    HRESULT get_ProgNo(
605        [out] long *ProgNo);
606
607    HRESULT put_ProgNo(
608        [in] long ProgNo);
609}
610
611[
612    object,
613    nonextensible,
614    hidden,
615    uuid(14E11ABD-EE37-4893-9EA1-6964DE933E39),
616    dual,
617    oleautomation,
618    pointer_default(unique)
619]
620interface IMPEG2TuneRequestFactory : IDispatch
621{
622    HRESULT CreateTuneRequest(
623        [in] ITuningSpace *TuningSpace,
624        [out] IMPEG2TuneRequest **TuneRequest);
625}
626
627[
628    object,
629    hidden,
630    restricted,
631    nonextensible,
632    uuid(1B9D5FC3-5BBC-4b6c-BB18-B9D10E3EEEBF),
633    pointer_default(unique)
634]
635interface IMPEG2TuneRequestSupport : IUnknown
636{
637}
638
639[
640    object,
641    hidden,
642    nonextensible,
643    uuid(E60DFA45-8D56-4e65-A8AB-D6BE9412C249),
644    pointer_default(unique)
645]
646interface ITunerCap : IUnknown
647{
648    HRESULT get_SupportedNetworkTypes(
649        [in] ULONG ulcNetworkTypesMax,
650        [out] ULONG *pulcNetworkTypes,
651        [in, out] GUID *pguidNetworkTypes);
652
653    HRESULT get_SupportedVideoFormats(
654        [out] ULONG *pulAMTunerModeType,
655        [out] ULONG *pulAnalogVideoStandard);
656
657    HRESULT get_AuxInputCount(
658        [in, out] ULONG *pulCompositeCount,
659        [in, out] ULONG *pulSvideoCount);
660}
661
662[
663    object,
664    hidden,
665    nonextensible,
666    uuid(28C52640-018A-11d3-9D8E-00C04F72D980),
667    pointer_default(unique)
668]
669interface ITuner : IUnknown
670{
671    HRESULT get_TuningSpace(
672        [out] ITuningSpace **TuningSpace);
673
674    HRESULT put_TuningSpace(
675        [in] ITuningSpace *TuningSpace);
676
677    HRESULT EnumTuningSpaces(
678        [out] IEnumTuningSpaces **ppEnum);
679
680    HRESULT get_TuneRequest(
681        [out] ITuneRequest **TuneRequest);
682
683    HRESULT put_TuneRequest(
684        [in] ITuneRequest *TuneRequest);
685
686    HRESULT Validate(
687        [in] ITuneRequest *TuneRequest);
688
689    HRESULT get_PreferredComponentTypes(
690        [out] IComponentTypes **ComponentTypes);
691
692    HRESULT put_PreferredComponentTypes(
693        [in] IComponentTypes *ComponentTypes);
694
695    HRESULT get_SignalStrength(
696        [out] long *Strength);
697
698    HRESULT TriggerSignalEvents(
699        [in] long Interval);
700}
701
702[
703    object,
704    hidden,
705    nonextensible,
706    uuid(1DFD0A5C-0284-11d3-9D8E-00C04F72D980),
707    pointer_default(unique)
708]
709interface IScanningTuner : ITuner
710{
711    HRESULT SeekUp();
712
713    HRESULT SeekDown();
714
715    HRESULT ScanUp(
716        [in] long MillisecondsPause);
717
718    HRESULT ScanDown(
719        [in] long MillisecondsPause);
720
721    HRESULT AutoProgram();
722};
723
724[
725    object,
726    hidden,
727    nonextensible,
728    uuid(04BBD195-0E2D-4593-9BD5-4F908BC33CF5),
729    pointer_default(unique)
730]
731interface IScanningTunerEx : IScanningTuner
732{
733    HRESULT GetCurrentLocator(
734        [in]ILocator **pILocator);
735
736    HRESULT PerformExhaustiveScan(
737         [in]  long dwLowerFreq,
738         [in]  long dwHigherFreq,
739         [in]  VARIANT_BOOL bFineTune,
740         [in]  HEVENT hEvent);
741
742    HRESULT TerminateCurrentScan(
743         [out] long *pcurrentFreq);
744
745    HRESULT ResumeCurrentScan(
746         [in] HEVENT hEvent);
747
748    HRESULT GetTunerScanningCapability(
749         [out] long *HardwareAssistedScanning,
750         [out] long *NumStandardsSupported,
751         [out] GUID *BroadcastStandards);
752
753    HRESULT GetTunerStatus(
754         [out] long *SecondsLeft,
755         [out] long *CurrentLockType,
756         [out] long *AutoDetect,
757         [out] long *CurrentFreq);
758
759    HRESULT GetCurrentTunerStandardCapability(
760         [in] GUID CurrentBroadcastStandard,
761         [out] long  *SettlingTime,
762         [out] long  *TvStandardsSupported);
763
764    HRESULT SetScanSignalTypeFilter(
765        [in] long ScanModulationTypes,
766        [in] long AnalogVideoStandard);
767};
768
769[
770    object,
771    hidden,
772    nonextensible,
773    uuid(6A340DC0-0311-11d3-9D8E-00C04F72D980),
774    dual,
775    oleautomation,
776    pointer_default(unique)
777]
778interface IComponentType : IDispatch
779{
780    HRESULT get_Category(
781        [out] ComponentCategory *Category);
782
783    HRESULT put_Category(
784        [in] ComponentCategory Category);
785
786    HRESULT get_MediaMajorType(
787        [out] BSTR *MediaMajorType);
788
789    HRESULT put_MediaMajorType(
790        [in] BSTR MediaMajorType);
791
792    HRESULT get__MediaMajorType(
793        [out] GUID* MediaMajorTypeGuid);
794
795    HRESULT put__MediaMajorType(
796        [in] REFCLSID MediaMajorTypeGuid);
797
798    HRESULT get_MediaSubType(
799        [out] BSTR *MediaSubType);
800
801    HRESULT put_MediaSubType(
802        [in] BSTR MediaSubType);
803
804    HRESULT get__MediaSubType(
805        [out] GUID* MediaSubTypeGuid);
806
807    HRESULT put__MediaSubType(
808        [in] REFCLSID MediaSubTypeGuid);
809
810    HRESULT get_MediaFormatType(
811        [out] BSTR *MediaFormatType);
812
813    HRESULT put_MediaFormatType(
814        [in] BSTR MediaFormatType);
815
816    HRESULT get__MediaFormatType(
817        [out] GUID* MediaFormatTypeGuid);
818
819    HRESULT put__MediaFormatType(
820        [in] REFCLSID MediaFormatTypeGuid);
821
822    HRESULT get_MediaType(
823        [out] AM_MEDIA_TYPE *MediaType);
824
825    HRESULT put_MediaType(
826        [in] AM_MEDIA_TYPE *MediaType);
827
828    HRESULT Clone(
829        [out] IComponentType **NewCT);
830};
831
832[
833    object,
834    hidden,
835    nonextensible,
836    uuid(B874C8BA-0FA2-11d3-9D8E-00C04F72D980),
837    dual,
838    oleautomation,
839    pointer_default(unique)
840]
841interface ILanguageComponentType : IComponentType
842{
843    HRESULT get_LangID(
844        [out] long *LangID);
845
846    HRESULT put_LangID(
847        [in] long LangID);
848};
849
850[
851    object,
852    hidden,
853    nonextensible,
854    uuid(2C073D84-B51C-48c9-AA9F-68971E1F6E38),
855    dual,
856    oleautomation,
857    pointer_default(unique)
858]
859interface IMPEG2ComponentType : ILanguageComponentType
860{
861    HRESULT get_StreamType(
862        [out] MPEG2StreamType *MP2StreamType);
863
864    HRESULT put_StreamType(
865        [in] MPEG2StreamType MP2StreamType);
866};
867
868
869[
870    object,
871    hidden,
872    nonextensible,
873    uuid(FC189E4D-7BD4-4125-B3B3-3A76A332CC96),
874    dual,
875    oleautomation,
876    pointer_default(unique)
877]
878interface IATSCComponentType : IMPEG2ComponentType
879{
880    HRESULT get_Flags(
881        [out] long *Flags);
882
883    HRESULT put_Flags(
884        [in] long flags);
885};
886
887[
888    hidden, restricted,
889    object,
890    uuid(8A674B4A-1F63-11d3-B64C-00C04F79498E),
891    pointer_default(unique)
892]
893interface IEnumComponentTypes : IUnknown
894{
895    HRESULT Next(
896        [in] ULONG celt,
897        [in, out]IComponentType** rgelt,
898        [out] ULONG* pceltFetched);
899
900    HRESULT Skip(
901        [in] ULONG celt);
902
903    HRESULT Reset(void);
904
905    HRESULT Clone(
906        [out] IEnumComponentTypes** ppEnum);
907}
908
909[
910    object,
911    hidden,
912    nonextensible,
913    uuid(0DC13D4A-0313-11d3-9D8E-00C04F72D980),
914    dual,
915    oleautomation,
916    pointer_default(unique)
917]
918interface IComponentTypes : IDispatch
919{
920    HRESULT get_Count(
921        [out] long *Count);
922
923    HRESULT get__NewEnum(
924        [out] IEnumVARIANT **ppNewEnum);
925
926    HRESULT EnumComponentTypes(
927        [out] IEnumComponentTypes **ppNewEnum);
928
929    HRESULT get_Item(
930        [in] VARIANT Index,
931        [out] IComponentType **ComponentType);
932
933    HRESULT put_Item(
934        [in] VARIANT Index,
935        [in] IComponentType *ComponentType);
936
937    HRESULT Add(
938        [in] IComponentType *ComponentType,
939        [out] VARIANT *NewIndex);
940
941    HRESULT Remove(
942        [in] VARIANT Index);
943
944    HRESULT Clone([out] IComponentTypes **NewList);
945};
946
947[
948    object,
949    nonextensible,
950    uuid(1A5576FC-0E19-11d3-9D8E-00C04F72D980),
951    dual,
952    oleautomation,
953    pointer_default(unique)
954]
955interface IComponent : IDispatch
956{
957    HRESULT get_Type(
958        [out] IComponentType** CT);
959
960    HRESULT put_Type(
961        [in] IComponentType* CT);
962
963    HRESULT get_DescLangID(
964        [out] long *LangID);
965
966    HRESULT put_DescLangID(
967        [in] long LangID);
968
969    HRESULT get_Status(
970        [out] ComponentStatus *Status);
971
972    HRESULT put_Status(
973        [in] ComponentStatus Status);
974
975    HRESULT get_Description(
976        [out] BSTR *Description);
977
978    HRESULT put_Description(
979        [in] BSTR Description);
980
981    HRESULT Clone(
982        [out] IComponent **NewComponent);
983
984};
985
986[
987    object,
988    nonextensible,
989    uuid(2CFEB2A8-1787-4A24-A941-C6EAEC39C842),
990    dual,
991    oleautomation,
992    pointer_default(unique)
993]
994interface IAnalogAudioComponentType : IComponentType
995{
996    HRESULT get_AnalogAudioMode(
997        [out] TVAudioMode *Mode);
998
999    HRESULT put_AnalogAudioMode(
1000        [in] TVAudioMode Mode);
1001}
1002
1003[
1004    object,
1005    nonextensible,
1006    uuid(1493E353-1EB6-473c-802D-8E6B8EC9D2A9),
1007    dual,
1008    oleautomation,
1009    pointer_default(unique)
1010]
1011interface IMPEG2Component : IComponent
1012{
1013    HRESULT get_PID(
1014        [out] long *PID);
1015
1016    HRESULT put_PID(
1017        [in] long PID);
1018
1019    HRESULT get_PCRPID(
1020        [out] long *PCRPID);
1021
1022    HRESULT put_PCRPID(
1023        [in] long PCRPID);
1024
1025    HRESULT get_ProgramNumber(
1026        [out] long *ProgramNumber);
1027
1028    HRESULT put_ProgramNumber(
1029        [in] long ProgramNumber);
1030};
1031
1032[
1033    hidden,
1034    restricted,
1035    object,
1036    uuid(2A6E2939-2595-11d3-B64C-00C04F79498E),
1037    pointer_default(unique)
1038]
1039interface IEnumComponents : IUnknown
1040{
1041    HRESULT Next(
1042        [in] ULONG celt,
1043        [in, out]IComponent** rgelt,
1044        [out] ULONG* pceltFetched);
1045
1046    HRESULT Skip(
1047        [in] ULONG celt);
1048
1049    HRESULT Reset(void);
1050
1051    HRESULT Clone(
1052        [out] IEnumComponents** ppEnum);
1053}
1054
1055
1056
1057[
1058    object,
1059    nonextensible,
1060    uuid(39A48091-FFFE-4182-A161-3FF802640E26),
1061    dual,
1062    oleautomation,
1063    pointer_default(unique)
1064]
1065interface IComponents : IDispatch
1066{
1067    HRESULT get_Count(
1068        [out] long *Count);
1069
1070    HRESULT get__NewEnum(
1071        [out] IEnumVARIANT **ppNewEnum);
1072
1073    HRESULT EnumComponents(
1074        [out] IEnumComponents **ppNewEnum);
1075
1076    HRESULT get_Item(
1077        [in] VARIANT Index,
1078        [out] IComponent **ppComponent);
1079
1080    HRESULT Add(
1081        [in] IComponent *Component,
1082        [out] VARIANT *NewIndex);
1083
1084    HRESULT Remove(
1085        [in] VARIANT Index);
1086
1087    HRESULT Clone(
1088        [out] IComponents **NewList);
1089
1090    HRESULT put_Item(
1091        [in] VARIANT Index,
1092        [in] IComponent *ppComponent);
1093
1094};
1095
1096[
1097    object,
1098    nonextensible,
1099    uuid(FCD01846-0E19-11d3-9D8E-00C04F72D980),
1100    dual,
1101    oleautomation,
1102    pointer_default(unique)
1103]
1104interface IComponentsOld : IDispatch
1105{
1106    HRESULT get_Count(
1107        [out] long *Count);
1108
1109    HRESULT get__NewEnum(
1110        [out] IEnumVARIANT **ppNewEnum);
1111
1112    HRESULT EnumComponents(
1113        [out] IEnumComponents **ppNewEnum);
1114
1115    HRESULT get_Item(
1116        [in] VARIANT Index,
1117        [out] IComponent **ppComponent);
1118
1119    HRESULT Add(
1120        [in] IComponent *Component,
1121        [out] VARIANT *NewIndex);
1122
1123    HRESULT Remove(
1124        [in] VARIANT Index);
1125
1126    HRESULT Clone(
1127        [out] IComponents **NewList);
1128
1129};
1130
1131[
1132    object,
1133    nonextensible,
1134    uuid(286D7F89-760C-4F89-80C4-66841D2507AA),
1135    dual,
1136    oleautomation,
1137    pointer_default(unique)
1138]
1139interface ILocator : IDispatch
1140{
1141
1142    HRESULT get_CarrierFrequency(
1143        [out] long* Frequency);
1144
1145    HRESULT put_CarrierFrequency(
1146        [in] long Frequency);
1147
1148    HRESULT get_InnerFEC(
1149        [out] FECMethod* FEC);
1150
1151    HRESULT put_InnerFEC(
1152        [in] FECMethod FEC);
1153
1154    HRESULT get_InnerFECRate(
1155        [out] BinaryConvolutionCodeRate* FEC);
1156
1157    HRESULT put_InnerFECRate(
1158        [in] BinaryConvolutionCodeRate FEC);
1159
1160    HRESULT get_OuterFEC(
1161        [out] FECMethod* FEC);
1162
1163    HRESULT put_OuterFEC(
1164        [in] FECMethod FEC);
1165
1166    HRESULT get_OuterFECRate(
1167        [out] BinaryConvolutionCodeRate* FEC);
1168
1169    HRESULT put_OuterFECRate(
1170        [in] BinaryConvolutionCodeRate FEC);
1171
1172    HRESULT get_Modulation(
1173        [out] ModulationType* Modulation);
1174
1175    HRESULT put_Modulation(
1176        [in] ModulationType Modulation);
1177
1178    HRESULT get_SymbolRate(
1179        [out] long* Rate);
1180
1181    HRESULT put_SymbolRate(
1182        [in] long Rate);
1183
1184    HRESULT Clone(
1185        [out] ILocator **NewLocator);
1186};
1187
1188[
1189    object,
1190    nonextensible,
1191    uuid(34D1F26B-E339-430D-ABCE-738CB48984DC),
1192    dual,
1193    oleautomation,
1194    pointer_default(unique)
1195]
1196interface IAnalogLocator : ILocator
1197{
1198    HRESULT get_VideoStandard(
1199        [out] AnalogVideoStandard* AVS);
1200
1201    HRESULT put_VideoStandard(
1202        [in] AnalogVideoStandard AVS);
1203}
1204
1205[
1206    object,
1207    nonextensible,
1208    uuid(19B595D8-839A-47F0-96DF-4F194F3C768C),
1209    dual,
1210    oleautomation,
1211    pointer_default(unique)
1212]
1213interface IDigitalLocator : ILocator
1214{
1215};
1216
1217[
1218    object,
1219    hidden,
1220    nonextensible,
1221    uuid(BF8D986F-8C2B-4131-94D7-4D3D9FCC21EF),
1222    dual,
1223    oleautomation,
1224    pointer_default(unique)
1225]
1226interface IATSCLocator : IDigitalLocator
1227{
1228    HRESULT get_PhysicalChannel(
1229        [out] long *PhysicalChannel);
1230
1231    HRESULT put_PhysicalChannel(
1232        [in] long PhysicalChannel);
1233
1234    HRESULT get_TSID(
1235        [out] long *TSID);
1236
1237    HRESULT put_TSID(
1238        [in] long TSID);
1239};
1240
1241[
1242    object,
1243    hidden,
1244    nonextensible,
1245    uuid(612AA885-66CF-4090-BA0A-566F5312E4CA),
1246    dual,
1247    oleautomation,
1248    pointer_default(unique)
1249]
1250interface IATSCLocator2 : IATSCLocator
1251{
1252    HRESULT get_ProgramNumber(
1253        [out] long *ProgramNumber);
1254
1255    HRESULT put_ProgramNumber(
1256        [in] long ProgramNumber);
1257};
1258
1259[
1260    object,
1261    hidden,
1262    nonextensible,
1263    uuid(48F66A11-171A-419A-9525-BEEECD51584C),
1264    dual,
1265    oleautomation,
1266    pointer_default(unique)
1267]
1268interface IDigitalCableLocator : IATSCLocator2
1269{
1270}
1271
1272[
1273    object,
1274    hidden,
1275    nonextensible,
1276    uuid(8664DA16-DDA2-42ac-926A-C18F9127C302),
1277    dual,
1278    oleautomation,
1279    pointer_default(unique)
1280]
1281interface IDVBTLocator : IDigitalLocator
1282{
1283    HRESULT get_Bandwidth(
1284        [out] long* BandWidthVal);
1285
1286    HRESULT put_Bandwidth(
1287        [in] long BandwidthVal);
1288
1289    HRESULT get_LPInnerFEC(
1290        [out] FECMethod* FEC);
1291
1292    HRESULT put_LPInnerFEC(
1293        [in] FECMethod FEC);
1294
1295    HRESULT get_LPInnerFECRate(
1296        [out] BinaryConvolutionCodeRate* FEC);
1297
1298    HRESULT put_LPInnerFECRate(
1299        [in] BinaryConvolutionCodeRate FEC);
1300
1301    HRESULT get_HAlpha(
1302        [out] HierarchyAlpha* Alpha);
1303
1304    HRESULT put_HAlpha(
1305        [in] HierarchyAlpha Alpha);
1306
1307    HRESULT get_Guard(
1308        [out] GuardInterval* GI);
1309
1310    HRESULT put_Guard(
1311        [in] GuardInterval GI);
1312
1313    HRESULT get_Mode(
1314        [out] TransmissionMode* mode);
1315
1316    HRESULT put_Mode(
1317        [in] TransmissionMode mode);
1318
1319    HRESULT get_OtherFrequencyInUse(
1320        [out] VARIANT_BOOL* OtherFrequencyInUseVal);
1321
1322    HRESULT put_OtherFrequencyInUse(
1323        [in] VARIANT_BOOL OtherFrequencyInUseVal);
1324};
1325
1326[
1327    object,
1328    hidden,
1329    nonextensible,
1330    uuid(3D7C353C-0D04-45f1-A742-F97CC1188DC8),
1331    dual,
1332    oleautomation,
1333    pointer_default(unique)
1334]
1335interface IDVBSLocator : IDigitalLocator
1336{
1337
1338    HRESULT get_SignalPolarisation(
1339        [out] Polarisation* PolarisationVal);
1340
1341    HRESULT put_SignalPolarisation(
1342        [in] Polarisation PolarisationVal);
1343
1344    HRESULT get_WestPosition(
1345        [out] VARIANT_BOOL* WestLongitude);
1346
1347    HRESULT put_WestPosition(
1348        [in] VARIANT_BOOL WestLongitude);
1349
1350    HRESULT get_OrbitalPosition(
1351        [out] long* longitude);
1352
1353    HRESULT put_OrbitalPosition(
1354        [in] long longitude);
1355
1356    HRESULT get_Azimuth(
1357        [out] long* Azimuth);
1358
1359    HRESULT put_Azimuth(
1360        [in] long Azimuth);
1361
1362    HRESULT get_Elevation(
1363        [out] long* Elevation);
1364
1365    HRESULT put_Elevation(
1366        [in] long Elevation);
1367};
1368
1369[
1370    object,
1371    hidden,
1372    nonextensible,
1373    uuid(6E42F36E-1DD2-43c4-9F78-69D25AE39034),
1374    dual,
1375    oleautomation,
1376    pointer_default(unique)
1377]
1378interface IDVBCLocator : IDigitalLocator
1379{
1380};
1381[
1382    object,
1383    hidden,
1384    nonextensible,
1385    uuid(3B21263F-26E8-489d-AAC4-924F7EFD9511),
1386    pointer_default(unique)
1387]
1388interface IBroadcastEvent : IUnknown
1389{
1390    HRESULT Fire([in] GUID EventID);
1391};
1392
1393[
1394    object,
1395    hidden,
1396    nonextensible,
1397    uuid(3d9e3887-1929-423f-8021-43682de95448),
1398    pointer_default(unique)
1399]
1400interface IBroadcastEventEx : IBroadcastEvent
1401{
1402    HRESULT FireEx(
1403        [in] GUID EventID,
1404        [in] ULONG Param1,
1405        [in] ULONG Param2,
1406        [in] ULONG Param3,
1407        [in] ULONG Param4);
1408};
1409
1410[
1411    object,
1412    hidden,
1413    nonextensible,
1414    uuid(359B3901-572C-4854-BB49-CDEF66606A25),
1415    pointer_default(unique)
1416]
1417interface IRegisterTuner : IUnknown
1418{
1419    HRESULT Register(
1420        [in] ITuner* pTuner,
1421        [in] IGraphBuilder* pGraph);
1422
1423    HRESULT Unregister();
1424};
1425
1426[
1427    object,
1428    hidden,
1429    nonextensible,
1430    uuid(B34505E0-2F0E-497b-80BC-D43F3B24ED7F),
1431    pointer_default(unique)
1432]
1433interface IBDAComparable : IUnknown
1434{
1435    HRESULT CompareExact(
1436       [in] IDispatch* CompareTo,
1437       [out] long* Result);
1438
1439    HRESULT CompareEquivalent(
1440       [in] IDispatch* CompareTo,
1441       [in] DWORD dwFlags,
1442       [out] long* Result);
1443
1444    HRESULT HashExact(
1445       [out] __int64* Result);
1446
1447    HRESULT HashExactIncremental(
1448       [in] __int64 PartialResult,
1449       [out] __int64* Result);
1450
1451    HRESULT HashEquivalent(
1452       [in] DWORD dwFlags,
1453       [out] __int64* Result);
1454
1455    HRESULT HashEquivalentIncremental(
1456       [in] __int64 PartialResult,
1457       [in] DWORD dwFlags,
1458       [out] __int64* Result);
1459};
1460
1461[
1462    uuid(9B085638-018E-11d3-9D8E-00C04F72D980),
1463    version(1.0),
1464]
1465library TunerLib
1466{
1467    importlib("stdole2.tlb");
1468
1469[
1470    uuid(D02AAC50-027E-11d3-9D8E-00C04F72D980)
1471]
1472
1473    coclass SystemTuningSpaces
1474{
1475        [default] interface ITuningSpaceContainer;
1476};
1477
1478[
1479    noncreatable,
1480    hidden,
1481    uuid(5FFDC5E6-B83A-4b55-B6E8-C69E765FE9DB)
1482]
1483    coclass TuningSpace
1484{
1485    [default] interface ITuningSpace;
1486    interface IBDAComparable;
1487};
1488
1489
1490[
1491    uuid(A2E30750-6C3D-11d3-B653-00C04F79498E)
1492]
1493    coclass ATSCTuningSpace
1494{
1495    [default] interface IATSCTuningSpace;
1496    interface IBDAComparable;
1497};
1498
1499[
1500    uuid(D9BB4CEE-B87A-47F1-AC92-B08D9C7813FC)
1501]
1502    coclass DigitalCableTuningSpace
1503{
1504    [default] interface IDigitalCableTuningSpace;
1505    interface IBDAComparable;
1506};
1507
1508
1509[
1510    uuid(8A674B4C-1F63-11d3-B64C-00C04F79498E)
1511]
1512    coclass AnalogRadioTuningSpace
1513{
1514    [default] interface IAnalogRadioTuningSpace2;
1515    interface IAnalogRadioTuningSpace;
1516    interface IBDAComparable;
1517};
1518
1519[
1520    uuid(F9769A06-7ACA-4e39-9CFB-97BB35F0E77E)
1521]
1522    coclass AuxInTuningSpace
1523{
1524    interface IAuxInTuningSpace;
1525    [default] interface IAuxInTuningSpace2;
1526    interface IBDAComparable;
1527};
1528
1529[
1530    uuid(8A674B4D-1F63-11d3-B64C-00C04F79498E)
1531]
1532    coclass AnalogTVTuningSpace
1533{
1534    [default] interface IAnalogTVTuningSpace;
1535    interface IBDAComparable;
1536};
1537
1538[
1539    uuid(C6B14B32-76AA-4a86-A7AC-5C79AAF58DA7)
1540]
1541    coclass DVBTuningSpace
1542{
1543    [default] interface IDVBTuningSpace2;
1544    interface IDVBTuningSpace;
1545    interface IBDAComparable;
1546};
1547
1548[
1549    uuid(B64016F3-C9A2-4066-96F0-BD9563314726)
1550]
1551    coclass DVBSTuningSpace
1552{
1553    [default] interface IDVBSTuningSpace;
1554    interface IBDAComparable;
1555};
1556
1557
1558[
1559    uuid(A1A2B1C4-0E3A-11d3-9D8E-00C04F72D980)
1560]
1561    coclass ComponentTypes
1562{
1563        [default] interface IComponentTypes;
1564        };
1565
1566[
1567    uuid(823535A0-0318-11d3-9D8E-00C04F72D980)
1568]
1569    coclass ComponentType
1570{
1571        [default] interface IComponentType;
1572        };
1573
1574[
1575    uuid(1BE49F30-0E1B-11d3-9D8E-00C04F72D980)
1576]
1577    coclass LanguageComponentType
1578{
1579        [default] interface ILanguageComponentType;
1580        };
1581
1582[
1583    uuid(418008F3-CF67-4668-9628-10DC52BE1D08)
1584]
1585    coclass MPEG2ComponentType
1586{
1587        [default] interface IMPEG2ComponentType;
1588        };
1589
1590[
1591    uuid(A8DCF3D5-0780-4ef4-8A83-2CFFAACB8ACE)
1592]
1593    coclass ATSCComponentType
1594{
1595        [default] interface IATSCComponentType;
1596        };
1597
1598[
1599    hidden,
1600    uuid(809B6661-94C4-49e6-B6EC-3F0F862215AA)
1601]
1602    coclass Components
1603{
1604    [default] interface IComponents;
1605    interface IComponentsOld;
1606};
1607
1608[
1609    hidden,
1610    uuid(59DC47A8-116C-11d3-9D8E-00C04F72D980)
1611]
1612    coclass Component
1613{
1614        [default] interface IComponent;
1615        };
1616
1617[
1618    hidden,
1619    uuid(055CB2D7-2969-45cd-914B-76890722F112)
1620]
1621    coclass MPEG2Component
1622{
1623        [default] interface IMPEG2Component;
1624        };
1625
1626
1627[
1628    hidden,
1629    uuid(28AB0005-E845-4FFA-AA9B-F4665236141C)
1630]
1631    coclass AnalogAudioComponentType
1632{
1633        [default] interface IAnalogAudioComponentType;
1634        };
1635
1636[
1637    noncreatable,
1638    hidden,
1639    uuid(B46E0D38-AB35-4a06-A137-70576B01B39F)
1640]
1641    coclass TuneRequest
1642{
1643    [default] interface ITuneRequest;
1644    interface IBDAComparable;
1645};
1646
1647
1648[
1649    hidden,
1650    uuid(0369B4E5-45B6-11d3-B650-00C04F79498E)
1651]
1652    coclass ChannelTuneRequest
1653{
1654    [default] interface IChannelTuneRequest;
1655    interface IBDAComparable;
1656};
1657
1658[
1659    hidden,
1660    uuid(0369B4E6-45B6-11d3-B650-00C04F79498E)
1661]
1662    coclass ATSCChannelTuneRequest
1663{
1664    [default] interface IATSCChannelTuneRequest;
1665    interface IBDAComparable;
1666};
1667
1668[
1669    hidden,
1670    uuid(26EC0B63-AA90-458A-8DF4-5659F2C8A18A)
1671]
1672    coclass DigitalCableTuneRequest
1673{
1674    [default] interface IDigitalCableTuneRequest;
1675    interface IBDAComparable;
1676};
1677
1678
1679[
1680    hidden,
1681    uuid(0955AC62-BF2E-4cba-A2B9-A63F772D46CF)
1682]
1683    coclass MPEG2TuneRequest
1684{
1685    [default] interface IMPEG2TuneRequest;
1686    interface IBDAComparable;
1687};
1688
1689[
1690    uuid(2C63E4EB-4CEA-41b8-919C-E947EA19A77C)
1691]
1692    coclass MPEG2TuneRequestFactory
1693{
1694        [default] interface IMPEG2TuneRequestFactory;
1695};
1696
1697
1698[
1699    noncreatable,
1700    hidden,
1701    uuid(0888C883-AC4F-4943-B516-2C38D9B34562)
1702]
1703    coclass Locator
1704{
1705        [default] interface ILocator;
1706    interface IBDAComparable;
1707};
1708[
1709    noncreatable,
1710    hidden,
1711    uuid(6E50CC0D-C19B-4BF6-810B-5BD60761F5CC)
1712]
1713    coclass DigitalLocator
1714{
1715    [default] interface IDigitalLocator;
1716    interface IBDAComparable;
1717};
1718
1719[
1720    uuid(49638B91-48AB-48B7-A47A-7D0E75A08EDE)
1721]
1722    coclass AnalogLocator
1723{
1724    [default] interface IAnalogLocator;
1725    interface IBDAComparable;
1726};
1727
1728[
1729    uuid(8872FF1B-98FA-4d7a-8D93-C9F1055F85BB)
1730]
1731    coclass ATSCLocator
1732{
1733    [default] interface IATSCLocator2;
1734    interface IATSCLocator;
1735    interface IBDAComparable;
1736};
1737
1738[
1739    uuid(03C06416-D127-407A-AB4C-FDD279ABBE5D)
1740]
1741    coclass DigitalCableLocator
1742{
1743    [default] interface IDigitalCableLocator;
1744    interface IBDAComparable;
1745};
1746
1747[
1748    uuid(9CD64701-BDF3-4d14-8E03-F12983D86664)
1749]
1750    coclass DVBTLocator
1751{
1752    [default] interface IDVBTLocator;
1753    interface IBDAComparable;
1754};
1755
1756[
1757    uuid(1DF7D126-4050-47f0-A7CF-4C4CA9241333)
1758]
1759    coclass DVBSLocator
1760{
1761    [default] interface IDVBSLocator;
1762    interface IBDAComparable;
1763};
1764
1765[
1766    uuid(C531D9FD-9685-4028-8B68-6E1232079F1E)
1767]
1768    coclass DVBCLocator
1769{
1770    [default] interface IDVBCLocator;
1771    interface IBDAComparable;
1772};
1773
1774[
1775    hidden,
1776    uuid(15D6504A-5494-499c-886C-973C9E53B9F1)
1777]
1778    coclass DVBTuneRequest
1779{
1780        [default] interface IDVBTuneRequest;
1781    interface IBDAComparable;
1782};
1783
1784
1785[
1786    hidden,
1787    uuid(8A674B49-1F63-11d3-B64C-00C04F79498E)
1788]
1789    coclass CreatePropBagOnRegKey
1790{
1791    interface ICreatePropBagOnRegKey;
1792};
1793
1794[
1795    hidden,
1796    uuid(0B3FFB92-0919-4934-9D5B-619C719D0202)
1797]
1798    coclass BroadcastEventService
1799{
1800    interface IBroadcastEvent;
1801};
1802
1803[
1804    hidden,
1805    uuid(6438570B-0C08-4a25-9504-8012BB4D50CF)
1806]
1807    coclass TunerMarshaler
1808{
1809    interface IRegisterTuner;
1810    interface ITuner;
1811};
1812
1813cpp_quote("#define SID_SBroadcastEventService CLSID_BroadcastEventService")
1814cpp_quote("#define SID_SContentTuneRequest IID_ITuner")
1815cpp_quote("#define SID_ScanningTuner IID_IScanningTuner")
1816cpp_quote("#define SID_ScanningTunerEx IID_IScanningTunerEx")
1817}
1818