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
|