source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/axextend.idl@ 1186

Last change on this file since 1186 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 36.9 KB
Line 
1/*
2 * Copyright (C) 2002 Robert Shearman
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19interface IAMAnalogVideoDecoder;
20interface IAMAnalogVideoEncoder;
21interface IAMAudioInputMixer;
22interface IAMAudioRendererStats;
23interface IAMBufferNegotiation;
24interface IAMCameraControl;
25interface IAMCertifiedOutputProtection;
26interface IAMClockSlave;
27interface IAMCopyCaptureFileProgress;
28interface IAMCrossbar;
29interface IAMDevMemoryAllocator;
30interface IAMDevMemoryControl;
31interface IAMDroppedFrames;
32interface IAMExtDevice;
33interface IAMExtTransport;
34interface IAMGraphStreams;
35interface IAMLatency;
36interface IAMOpenProgress;
37interface IAMOverlayFX;
38interface IAMPhysicalPinInfo;
39interface IAMPushSource;
40interface IAMStreamConfig;
41interface IAMTimecodeDisplay;
42interface IAMTimecodeGenerator;
43interface IAMTimecodeReader;
44interface IAMTVTuner;
45interface IAMVfwCaptureDialogs;
46interface IAMVfwCompressDialogs;
47interface IAMVideoCompression;
48interface IAMVideoDecimationProperties;
49interface IAMVideoProcAmp;
50interface IAMGraphBuilderCallback;
51interface ICaptureGraphBuilder;
52interface ICaptureGraphBuilder2;
53interface IConfigAviMux;
54interface IConfigInterleaving;
55interface IDecimateVideoImage;
56interface IDrawVideoImage;
57interface IEnumRegFilters;
58interface IEnumStreamIdMap;
59interface IFileSourceFilter;
60interface IFileSinkFilter;
61interface IFileSinkFilter2;
62interface IFilterMapper;
63interface IFilterMapper2;
64interface IGraphBuilder;
65interface IKsPropertySet;
66interface IMediaEventSink;
67interface IMpeg2Demultiplexer;
68interface IMPEG2StreamIdMap;
69interface IOverlay;
70interface IOverlayNotify;
71interface IOverlayNotify2;
72interface IQualityControl;
73interface ISeekingPassThru;
74
75#include <axextendenums.h>
76
77typedef struct
78{
79 CLSID Clsid;
80 LPWSTR Name;
81} REGFILTER;
82
83typedef enum tagTVAudioMode {
84 AMTVAUDIO_MODE_MONO = 0x0001,
85 AMTVAUDIO_MODE_STEREO = 0x0002,
86 AMTVAUDIO_MODE_LANG_A = 0x0010,
87 AMTVAUDIO_MODE_LANG_B = 0x0020,
88 AMTVAUDIO_MODE_LANG_C = 0x0040,
89 AMTVAUDIO_PRESET_STEREO = 0x0200,
90 AMTVAUDIO_PRESET_LANG_A = 0x1000,
91 AMTVAUDIO_PRESET_LANG_B = 0x2000,
92 AMTVAUDIO_PRESET_LANG_C = 0x4000
93} TVAudioMode;
94
95[
96object,
97uuid(56a868a4-0ad4-11ce-b03a-0020af0ba770),
98pointer_default(unique)
99]
100interface IEnumRegFilters : IUnknown
101{
102 HRESULT Next
103 ( [in] ULONG cFilters,
104 [out] REGFILTER ** apRegFilter,
105 [out] ULONG * pcFetched
106 );
107
108 HRESULT Skip(
109 [in] ULONG cFilters
110 );
111
112 HRESULT Reset(void);
113
114 HRESULT Clone(
115 [out] IEnumRegFilters **ppEnum
116 );
117}
118
119
120typedef IEnumRegFilters *PENUMREGFILTERS;
121
122[
123object,
124uuid(56a868a3-0ad4-11ce-b03a-0020af0ba770),
125pointer_default(unique)
126]
127interface IFilterMapper : IUnknown
128{
129 enum { MERIT_PREFERRED = 0x800000,
130 MERIT_NORMAL = 0x600000,
131 MERIT_UNLIKELY = 0x400000,
132 MERIT_DO_NOT_USE = 0x200000,
133 MERIT_SW_COMPRESSOR = 0x100000,
134 MERIT_HW_COMPRESSOR = 0x100050
135 };
136
137 HRESULT RegisterFilter
138 ( [in] CLSID clsid,
139 [in] LPCWSTR Name,
140 [in] DWORD dwMerit
141 );
142
143 HRESULT RegisterFilterInstance
144 ( [in] CLSID clsid,
145 [in] LPCWSTR Name,
146 [out] CLSID *MRId
147 );
148
149
150 HRESULT RegisterPin
151 ( [in] CLSID Filter,
152 [in] LPCWSTR Name,
153 [in] BOOL bRendered,
154 [in] BOOL bOutput,
155 [in] BOOL bZero,
156 [in] BOOL bMany,
157 [in] CLSID ConnectsToFilter,
158 [in] LPCWSTR ConnectsToPin
159 );
160
161 HRESULT RegisterPinType
162 ( [in] CLSID clsFilter,
163 [in] LPCWSTR strName,
164 [in] CLSID clsMajorType,
165 [in] CLSID clsSubType
166 );
167
168
169 HRESULT UnregisterFilter
170 ( [in] CLSID Filter
171 );
172
173
174 HRESULT UnregisterFilterInstance
175 ( [in] CLSID MRId
176 );
177
178
179 HRESULT UnregisterPin
180 ( [in] CLSID Filter,
181 [in] LPCWSTR Name
182 );
183
184 HRESULT EnumMatchingFilters
185 ( [out] IEnumRegFilters **ppEnum,
186 [in] DWORD dwMerit,
187 [in] BOOL bInputNeeded,
188 [in] CLSID clsInMaj,
189 [in] CLSID clsInSub,
190 [in] BOOL bRender,
191 [in] BOOL bOutputNeeded,
192 [in] CLSID clsOutMaj,
193 [in] CLSID clsOutSub
194 );
195
196}
197
198typedef struct
199{
200 const CLSID * clsMajorType;
201 const CLSID * clsMinorType;
202} REGPINTYPES;
203
204typedef struct
205{
206 LPWSTR strName;
207 BOOL bRendered;
208 BOOL bOutput;
209 BOOL bZero;
210 BOOL bMany;
211 const CLSID * clsConnectsToFilter;
212 const WCHAR * strConnectsToPin;
213 UINT nMediaTypes;
214 const REGPINTYPES * lpMediaType;
215} REGFILTERPINS;
216
217typedef struct
218{
219 CLSID clsMedium;
220 DWORD dw1;
221 DWORD dw2;
222} REGPINMEDIUM;
223
224enum
225{
226 REG_PINFLAG_B_ZERO = 0x1,
227 REG_PINFLAG_B_RENDERER = 0x2,
228 REG_PINFLAG_B_MANY = 0x4,
229 REG_PINFLAG_B_OUTPUT = 0x8
230};
231
232
233typedef struct
234{
235 DWORD dwFlags;
236 UINT cInstances;
237 UINT nMediaTypes;
238 [size_is(nMediaTypes)] const REGPINTYPES * lpMediaType;
239 UINT nMediums;
240 [size_is(nMediums)] const REGPINMEDIUM *lpMedium;
241 const CLSID *clsPinCategory;
242} REGFILTERPINS2;
243
244typedef struct
245{
246 DWORD dwVersion;
247 DWORD dwMerit;
248 [switch_is(dwVersion)] [switch_type(DWORD)] union
249 {
250 [case(1)]
251 struct
252 {
253 ULONG cPins;
254 [size_is(cPins)] const REGFILTERPINS *rgPins;
255 };
256
257 [case(2)]
258 struct
259 {
260 ULONG cPins2;
261 [size_is(cPins2)] const REGFILTERPINS2 *rgPins2;
262 };
263
264 [default]
265 ;
266 };
267
268} REGFILTER2;
269
270
271[
272object,
273uuid(b79bb0b0-33c1-11d1-abe1-00a0c905f375),
274pointer_default(unique)
275]
276interface IFilterMapper2 : IUnknown
277{
278 HRESULT CreateCategory
279 ( [in] REFCLSID clsidCategory,
280 [in] DWORD dwCategoryMerit,
281 [in] LPCWSTR Description
282 );
283
284 HRESULT UnregisterFilter
285 ( [in] const CLSID *pclsidCategory,
286 [in] LPCOLESTR szInstance,
287 [in] REFCLSID Filter
288 );
289
290 HRESULT RegisterFilter
291 ( [in] REFCLSID clsidFilter,
292 [in] LPCWSTR Name,
293 [in, out] IMoniker **ppMoniker,
294 [in] const CLSID *pclsidCategory,
295 [in] LPCOLESTR szInstance,
296 [in] const REGFILTER2 *prf2
297 );
298
299 HRESULT EnumMatchingFilters
300 ( [out] IEnumMoniker **ppEnum,
301 [in] DWORD dwFlags,
302 [in] BOOL bExactMatch,
303 [in] DWORD dwMerit,
304 [in] BOOL bInputNeeded,
305 [in] DWORD cInputTypes,
306 [size_is(cInputTypes*2)] const GUID *pInputTypes,
307 [in] const REGPINMEDIUM *pMedIn,
308 [in] const CLSID *pPinCategoryIn,
309 [in] BOOL bRender,
310 [in] BOOL bOutputNeeded,
311 [in] DWORD cOutputTypes,
312 [size_is(cOutputTypes*2)] const GUID *pOutputTypes,
313 [in] const REGPINMEDIUM *pMedOut,
314 [in] const CLSID *pPinCategoryOut
315 );
316}
317
318[
319object,
320uuid(b79bb0b1-33c1-11d1-abe1-00a0c905f375),
321pointer_default(unique)
322]
323interface IFilterMapper3 : IFilterMapper2
324{
325 HRESULT GetICreateDevEnum( [out] ICreateDevEnum **ppEnum );
326}
327
328typedef enum tagQualityMessageType
329{
330 Famine,
331 Flood
332} QualityMessageType;
333
334typedef struct tagQuality
335{
336 QualityMessageType Type;
337 LONG Proportion;
338 REFERENCE_TIME Late;
339 REFERENCE_TIME TimeStamp;
340} Quality;
341
342typedef IQualityControl *PQUALITYCONTROL;
343
344[
345object,
346uuid(56a868a5-0ad4-11ce-b03a-0020af0ba770),
347pointer_default(unique)
348]
349interface IQualityControl : IUnknown
350{
351 HRESULT Notify
352 ( [in] IBaseFilter * pSelf,
353 [in] Quality q
354 );
355
356 HRESULT SetSink
357 ( [in] IQualityControl * piqc
358 );
359}
360
361enum
362{
363 CK_NOCOLORKEY = 0x0,
364 CK_INDEX = 0x1,
365 CK_RGB = 0x2
366};
367
368typedef struct tagCOLORKEY
369{
370 DWORD KeyType;
371 DWORD PaletteIndex;
372 COLORREF LowColorValue;
373 COLORREF HighColorValue;
374} COLORKEY;
375
376enum
377{
378 ADVISE_NONE = 0x0,
379 ADVISE_CLIPPING = 0x1,
380 ADVISE_PALETTE = 0x2,
381 ADVISE_COLORKEY = 0x4,
382 ADVISE_POSITION = 0x8,
383 ADVISE_DISPLAY_CHANGE = 0x10
384};
385
386const DWORD ADVISE_ALL = ADVISE_CLIPPING |
387 ADVISE_PALETTE |
388 ADVISE_COLORKEY |
389 ADVISE_POSITION;
390
391const DWORD ADVISE_ALL2 = ADVISE_ALL |
392 ADVISE_DISPLAY_CHANGE;
393
394cpp_quote("#ifndef _WINGDI_")
395
396/* already defined in wingdi.h, but needed for WIDL */
397
398typedef struct _RGNDATAHEADER
399{
400 DWORD dwSize;
401 DWORD iType;
402 DWORD nCount;
403 DWORD nRgnSize;
404 RECT rcBound;
405} RGNDATAHEADER;
406
407typedef struct _RGNDATA
408{
409 RGNDATAHEADER rdh;
410 char Buffer[1];
411} RGNDATA;
412
413cpp_quote("#endif /* _WINGDI_ */")
414
415[
416object,
417local,
418uuid(56a868a0-0ad4-11ce-b03a-0020af0ba770),
419pointer_default(unique)
420]
421interface IOverlayNotify : IUnknown
422{
423 HRESULT OnPaletteChange(
424 [in] DWORD dwColors,
425 [in] const PALETTEENTRY *pPalette);
426
427 HRESULT OnClipChange(
428 [in] const RECT *pSourceRect,
429 [in] const RECT *pDestinationRect,
430 [in] const RGNDATA *pRgnData);
431
432 HRESULT OnColorKeyChange([in] const COLORKEY *pColorKey);
433
434 HRESULT OnPositionChange([in] const RECT *pSourceRect,
435 [in] const RECT *pDestinationRect);
436}
437
438typedef IOverlayNotify *POVERLAYNOTIFY;
439
440cpp_quote("#if 0")
441typedef HANDLE HMONITOR;
442cpp_quote("#endif /* 0 */")
443
444[
445object,
446local,
447uuid(680EFA10-D535-11D1-87C8-00A0C9223196),
448pointer_default(unique)
449]
450interface IOverlayNotify2 : IOverlayNotify
451{
452 HRESULT OnDisplayChange(
453 HMONITOR hMonitor);
454}
455
456typedef IOverlayNotify2 *POVERLAYNOTIFY2;
457
458[
459object,
460local,
461uuid(56a868a1-0ad4-11ce-b03a-0020af0ba770),
462pointer_default(unique)
463]
464interface IOverlay : IUnknown
465{
466 HRESULT GetPalette(
467 [out] DWORD *pdwColors,
468 [out] PALETTEENTRY **ppPalette);
469
470 HRESULT SetPalette(
471 [in] DWORD dwColors,
472 [in] PALETTEENTRY *pPalette);
473
474 HRESULT GetDefaultColorKey([out] COLORKEY *pColorKey);
475
476 HRESULT GetColorKey([out] COLORKEY *pColorKey);
477
478 HRESULT SetColorKey([in,out] COLORKEY *pColorKey);
479
480 HRESULT GetWindowHandle([out] HWND *pHwnd);
481
482 HRESULT GetClipList([out] RECT *pSourceRect,
483 [out] RECT *pDestinationRect,
484 [out] RGNDATA **ppRgnData);
485
486 HRESULT GetVideoPosition([out] RECT *pSourceRect,
487 [out] RECT *pDestinationRect);
488
489 HRESULT Advise(
490 [in] IOverlayNotify *pOverlayNotify,
491 [in] DWORD dwInterests);
492
493 HRESULT Unadvise();
494}
495
496typedef IOverlay *POVERLAY;
497
498[
499object,
500uuid(56a868a2-0ad4-11ce-b03a-0020af0ba770),
501pointer_default(unique)
502]
503interface IMediaEventSink : IUnknown
504{
505 HRESULT Notify(
506 [in] LONG EventCode,
507 [in] LONG_PTR EventParam1,
508 [in] LONG_PTR EventParam2
509 );
510}
511
512typedef IMediaEventSink *PMEDIAEVENTSINK;
513
514[
515object,
516uuid(56a868a6-0ad4-11ce-b03a-0020af0ba770),
517pointer_default(unique)
518]
519interface IFileSourceFilter : IUnknown
520{
521 HRESULT Load(
522 [in] LPCOLESTR pszFileName,
523 [in, unique] const AM_MEDIA_TYPE *pmt
524 );
525
526 HRESULT GetCurFile(
527 [out] LPOLESTR *ppszFileName,
528 [out] AM_MEDIA_TYPE *pmt
529 );
530}
531
532typedef IFileSourceFilter *PFILTERFILESOURCE;
533
534[
535object,
536uuid(a2104830-7c70-11cf-8bce-00aa00a3f1a6),
537pointer_default(unique)
538]
539interface IFileSinkFilter : IUnknown
540{
541 HRESULT SetFileName(
542 [in] LPCOLESTR pszFileName,
543 [in, unique] const AM_MEDIA_TYPE *pmt
544 );
545
546 HRESULT GetCurFile(
547 [out] LPOLESTR *ppszFileName,
548 [out] AM_MEDIA_TYPE *pmt
549 );
550}
551
552typedef IFileSinkFilter *PFILTERFILESINK;
553
554[
555 object,
556 uuid(00855B90-CE1B-11d0-BD4F-00A0C911CE86),
557 pointer_default(unique)
558]
559interface IFileSinkFilter2 : IFileSinkFilter
560{
561 HRESULT SetMode(
562 [in] DWORD dwFlags
563 );
564
565 HRESULT GetMode(
566 [out] DWORD *pdwFlags
567 );
568}
569
570typedef IFileSinkFilter2 *PFILESINKFILTER2;
571
572typedef enum
573{
574 AM_FILE_OVERWRITE = 0x00000001,
575} AM_FILESINK_FLAGS;
576
577[
578object,
579uuid(56a868a9-0ad4-11ce-b03a-0020af0ba770),
580pointer_default(unique)
581]
582interface IGraphBuilder : IFilterGraph
583{
584 HRESULT Connect
585 ( [in] IPin * ppinOut,
586 [in] IPin * ppinIn
587 );
588
589 HRESULT Render
590 ( [in] IPin * ppinOut
591 );
592
593 HRESULT RenderFile
594 ( [in] LPCWSTR lpcwstrFile,
595 [in, unique] LPCWSTR lpcwstrPlayList
596 );
597
598 HRESULT AddSourceFilter
599 ( [in] LPCWSTR lpcwstrFileName,
600 [in, unique] LPCWSTR lpcwstrFilterName,
601 [out] IBaseFilter* *ppFilter
602 );
603
604 HRESULT SetLogFile
605 ( [in] DWORD_PTR hFile
606 );
607
608 HRESULT Abort();
609
610 HRESULT ShouldOperationContinue();
611}
612
613
614[
615 object,
616 uuid(bf87b6e0-8c27-11d0-b3f0-00aa003761c5),
617 pointer_default(unique)
618]
619interface ICaptureGraphBuilder : IUnknown {
620
621 HRESULT SetFiltergraph(
622 [in] IGraphBuilder *pfg);
623
624 HRESULT GetFiltergraph(
625 [out] IGraphBuilder **ppfg);
626
627 HRESULT SetOutputFileName(
628 [in] const GUID *pType,
629 [in] LPCOLESTR lpstrFile,
630 [out] IBaseFilter **ppf,
631 [out] IFileSinkFilter **ppSink);
632
633 [local] HRESULT FindInterface(
634 [in, unique] const GUID *pCategory,
635 [in] IBaseFilter *pf,
636 [in] REFIID riid,
637 [out] void **ppint);
638
639 [call_as(FindInterface)] HRESULT RemoteFindInterface(
640 [in, unique] const GUID *pCategory,
641 [in] IBaseFilter *pf,
642 [in] REFIID riid,
643 [out] IUnknown **ppint);
644
645 HRESULT RenderStream(
646 [in] const GUID *pCategory,
647 [in] IUnknown *pSource,
648 [in] IBaseFilter *pfCompressor,
649 [in] IBaseFilter *pfRenderer);
650
651 HRESULT ControlStream(
652 [in] const GUID *pCategory,
653 [in] IBaseFilter *pFilter,
654 [in] REFERENCE_TIME *pstart,
655 [in] REFERENCE_TIME *pstop,
656 [in] WORD wStartCookie,
657 [in] WORD wStopCookie);
658
659 HRESULT AllocCapFile(
660 [in] LPCOLESTR lpstr,
661 [in] DWORDLONG dwlSize);
662
663 HRESULT CopyCaptureFile(
664 [in] LPOLESTR lpwstrOld,
665 [in] LPOLESTR lpwstrNew,
666 [in] int fAllowEscAbort,
667 [in] IAMCopyCaptureFileProgress *pCallback);
668}
669
670[
671object,
672uuid(670d1d20-a068-11d0-b3f0-00aa003761c5),
673pointer_default(unique)
674]
675interface IAMCopyCaptureFileProgress : IUnknown
676{
677 HRESULT Progress(
678 [in] int iProgress);
679}
680
681[
682 object,
683 uuid(93E5A4E0-2D50-11d2-ABFA-00A0C9C6E38D),
684 pointer_default(unique)
685]
686interface ICaptureGraphBuilder2 : IUnknown
687{
688 HRESULT SetFiltergraph(
689 [in] IGraphBuilder *pfg);
690
691 HRESULT GetFiltergraph(
692 [out] IGraphBuilder **ppfg);
693
694 HRESULT SetOutputFileName(
695 [in] const GUID *pType,
696 [in] LPCOLESTR lpstrFile,
697 [out] IBaseFilter **ppf,
698 [out] IFileSinkFilter **ppSink);
699
700 [local] HRESULT FindInterface(
701 [in] const GUID *pCategory,
702 [in] const GUID *pType,
703 [in] IBaseFilter *pf,
704 [in] REFIID riid,
705 [out] void **ppint);
706
707 [call_as(FindInterface)] HRESULT RemoteFindInterface(
708 [in] const GUID *pCategory,
709 [in] const GUID *pType,
710 [in] IBaseFilter *pf,
711 [in] REFIID riid,
712 [out] IUnknown **ppint);
713
714 HRESULT RenderStream(
715 [in] const GUID *pCategory,
716 [in] const GUID *pType,
717 [in] IUnknown *pSource,
718 [in] IBaseFilter *pfCompressor,
719 [in] IBaseFilter *pfRenderer);
720
721 HRESULT ControlStream(
722 [in] const GUID *pCategory,
723 [in] const GUID *pType,
724 [in] IBaseFilter *pFilter,
725 [in] REFERENCE_TIME *pstart,
726 [in] REFERENCE_TIME *pstop,
727 [in] WORD wStartCookie,
728 [in] WORD wStopCookie);
729
730 HRESULT AllocCapFile(
731 [in] LPCOLESTR lpstr,
732 [in] DWORDLONG dwlSize);
733
734 HRESULT CopyCaptureFile(
735 [in] LPOLESTR lpwstrOld,
736 [in] LPOLESTR lpwstrNew,
737 [in] int fAllowEscAbort,
738 [in] IAMCopyCaptureFileProgress *pCallback);
739
740 HRESULT FindPin(
741 [in] IUnknown *pSource,
742 [in] PIN_DIRECTION pindir,
743 [in] const GUID *pCategory,
744 [in] const GUID *pType,
745 [in] BOOL fUnconnected,
746 [in] int num,
747 [out] IPin **ppPin);
748}
749
750[
751 local,
752 object,
753 uuid(5acd6aa0-f482-11ce-8b67-00aa00a3f1a6),
754 pointer_default(unique)
755]
756interface IConfigAviMux : IUnknown
757{
758 HRESULT SetMasterStream(
759 [in] LONG iStream);
760
761 HRESULT GetMasterStream(
762 [out] LONG *pStream);
763
764 HRESULT SetOutputCompatibilityIndex(
765 [in] BOOL fOldIndex);
766
767 HRESULT GetOutputCompatibilityIndex(
768 [out] BOOL *pfOldIndex);
769}
770
771[
772 local,
773 object,
774 uuid(bee3d220-157b-11d0-bd23-00a0c911ce86),
775 pointer_default(unique)
776]
777interface IConfigInterleaving : IUnknown
778{
779 typedef enum InterleavingMode {
780 INTERLEAVE_NONE,
781 INTERLEAVE_CAPTURE,
782 INTERLEAVE_FULL,
783 INTERLEAVE_NONE_BUFFERED
784 } InterleavingMode;
785
786 HRESULT put_Mode(
787 [in] InterleavingMode mode);
788
789 HRESULT get_Mode(
790 [out] InterleavingMode *pMode);
791
792 HRESULT put_Interleaving(
793 [in] const REFERENCE_TIME *prtInterleave,
794 [in] const REFERENCE_TIME *prtPreroll);
795
796 HRESULT get_Interleaving(
797 [out] REFERENCE_TIME *prtInterleave,
798 [out] REFERENCE_TIME *prtPreroll);
799}
800
801[
802 local,
803 object,
804 uuid(9fd52741-176d-4b36-8f51-ca8f933223be),
805 pointer_default(unique)
806]
807interface IAMClockSlave : IUnknown
808{
809 HRESULT SetErrorTolerance(
810 [in] DWORD dwTolerance);
811
812 HRESULT GetErrorTolerance(
813 [out] DWORD *pdwTolerance);
814}
815
816typedef struct _AMCOPPSignature {
817 BYTE Signature[256];
818} AMCOPPSignature;
819
820typedef struct _AMCOPPCommand {
821 GUID macKDI;
822 GUID guidCommandID;
823 DWORD dwSequence;
824 DWORD bSizeData;
825 BYTE CommandData[4056];
826} AMCOPPCommand, *LPAMCOPPCommand;
827
828typedef struct _AMCOPPStatusInput {
829 GUID rApp;
830 GUID guidStatusRequestID;
831 DWORD dwSequence;
832 DWORD cbSizeData;
833 BYTE StatusData[4056];
834} AMCOPPStatusInput, *LPAMCOPPStatusInput;
835
836typedef struct _AMCOPPStatusOutput {
837 GUID macKDI;
838 DWORD cbSizeData;
839 BYTE COPPStatus[4076];
840} AMCOPPStatusOutput, *LPAMCOPPStatusOutput;
841
842[
843 local,
844 object,
845 uuid(6feded3e-0ff1-4901-a2f1-43f7012c8515),
846 pointer_default(unique)
847]
848interface IAMCertifiedOutputProtection : IUnknown
849{
850 HRESULT KeyExchange (
851 [out] GUID* pRandom,
852 [out] BYTE** VarLenCertGH,
853 [out] DWORD* pdwLengthCertGH);
854
855 HRESULT SessionSequenceStart(
856 [in] AMCOPPSignature* pSig);
857
858 HRESULT ProtectionCommand(
859 [in] const AMCOPPCommand* cmd);
860
861 HRESULT ProtectionStatus(
862 [in] const AMCOPPStatusInput* pStatusInput,
863 [out] AMCOPPStatusOutput* pStatusOutput);
864};
865
866enum _AM_RENSDEREXFLAGS
867{
868 AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x01
869};
870
871[
872 object,
873 uuid(36b73882-c2c8-11cf-8b46-00805f6cef60),
874 pointer_default(unique)
875]
876interface IFilterGraph2: IGraphBuilder
877{
878 HRESULT AddSourceFilterForMoniker(
879 [in] IMoniker *pMoniker,
880 [in] IBindCtx *pCtx,
881 [in, unique] LPCWSTR lpcwstrFilterName,
882 [out] IBaseFilter **ppFilter
883 );
884
885 HRESULT ReconnectEx
886 ( [in] IPin * ppin,
887 [in, unique] const AM_MEDIA_TYPE *pmt
888 );
889
890 HRESULT RenderEx( [in] IPin *pPinOut,
891 [in] DWORD dwFlags,
892 [in, out] DWORD *pvContext
893 );
894}
895
896[
897 object,
898 local,
899 uuid(56a868bf-0ad4-11ce-b03a-0020af0ba770),
900 pointer_default(unique)
901]
902interface IStreamBuilder : IUnknown
903{
904 HRESULT Render
905 ( [in] IPin * ppinOut,
906 [in] IGraphBuilder * pGraph
907 );
908
909 HRESULT Backout
910 ( [in] IPin * ppinOut,
911 [in] IGraphBuilder * pGraph
912 );
913}
914
915
916/*****************************************************************************
917 * IAMStreamConfig interface
918 */
919[
920 object,
921 uuid(c6e13340-30ac-11d0-a18c-00a0c9118956),
922 pointer_default(unique)
923]
924interface IAMStreamConfig : IUnknown
925{
926 typedef struct _VIDEO_STREAM_CONFIG_CAPS {
927 GUID guid;
928 ULONG VideoStandard;
929 SIZE InputSize;
930 SIZE MinCroppingSize;
931 SIZE MaxCroppingSize;
932 int CropGranularityX;
933 int CropGranularityY;
934 int CropAlignX;
935 int CropAlignY;
936 SIZE MinOutputSize;
937 SIZE MaxOutputSize;
938 int OutputGranularityX;
939 int OutputGranularityY;
940 int StretchTapsX;
941 int StretchTapsY;
942 int ShrinkTapsX;
943 int ShrinkTapsY;
944 LONGLONG MinFrameInterval;
945 LONGLONG MaxFrameInterval;
946 LONG MinBitsPerSecond;
947 LONG MaxBitsPerSecond;
948 } VIDEO_STREAM_CONFIG_CAPS;
949
950 typedef struct _AUDIO_STREAM_CONFIG_CAPS {
951 GUID guid;
952 ULONG MinimumChannels;
953 ULONG MaximumChannels;
954 ULONG ChannelsGranularity;
955 ULONG MinimumBitsPerSample;
956 ULONG MaximumBitsPerSample;
957 ULONG BitsPerSampleGranularity;
958 ULONG MinimumSampleFrequency;
959 ULONG MaximumSampleFrequency;
960 ULONG SampleFrequencyGranularity;
961 } AUDIO_STREAM_CONFIG_CAPS;
962
963 HRESULT SetFormat( [in] AM_MEDIA_TYPE *pmt);
964 HRESULT GetFormat( [in] AM_MEDIA_TYPE **pmt);
965 HRESULT GetNumberOfCapabilities( [out] int *piCount, [out] int *piSize);
966 HRESULT GetStreamCaps( [in] int iIndex, [out] AM_MEDIA_TYPE **pmt,
967 [out] BYTE *pSCC);
968}
969
970
971typedef enum tagVideoProcAmpProperty
972{
973 VideoProcAmp_Brightness,
974 VideoProcAmp_Contrast,
975 VideoProcAmp_Hue,
976 VideoProcAmp_Saturation,
977 VideoProcAmp_Sharpness,
978 VideoProcAmp_Gamma,
979 VideoProcAmp_ColorEnable,
980 VideoProcAmp_WhiteBalance,
981 VideoProcAmp_BacklightCompensation,
982 VideoProcAmp_Gain
983} VideoProcAmpProperty;
984
985typedef enum tagVideoProcAmpFlags
986{
987 VideoProcAmp_Flags_Auto = 0x0001,
988 VideoProcAmp_Flags_Manual = 0x0002,
989} VideoProcAmpFlags;
990
991/*****************************************************************************
992 * IAMVideoProcAmp interface
993 */
994[
995 object,
996 uuid(c6e13360-30ac-11d0-a18c-00a0c9118956),
997 pointer_default(unique)
998]
999interface IAMVideoProcAmp : IUnknown
1000{
1001 HRESULT GetRange( [in] LONG Property, [out] LONG *pMin, [out] LONG *pMax,
1002 [out] LONG *pSteppingDelta, [out] LONG *pDefault,
1003 [out] LONG *pCapsFlags);
1004 HRESULT Set( [in] LONG Property, [in] LONG lValue, [in] LONG Flags);
1005 HRESULT Get( [in] LONG Property, [out] LONG *lValue, [out] LONG *Flags);
1006}
1007
1008
1009[
1010 object,
1011 uuid(56a868aa-0ad4-11ce-b03a-0020af0ba770),
1012 pointer_default(unique)
1013]
1014interface IAsyncReader : IUnknown
1015{
1016 HRESULT RequestAllocator(
1017 [in] IMemAllocator* pPreferred,
1018 [in] ALLOCATOR_PROPERTIES* pProps,
1019 [out] IMemAllocator ** ppActual);
1020
1021 HRESULT Request(
1022 [in] IMediaSample* pSample,
1023 [in] DWORD_PTR dwUser);
1024
1025 HRESULT WaitForNext(
1026 [in] DWORD dwTimeout,
1027 [out] IMediaSample** ppSample,
1028 [out] DWORD_PTR * pdwUser);
1029
1030 HRESULT SyncReadAligned(
1031 [in] IMediaSample* pSample);
1032
1033 HRESULT SyncRead(
1034 [in] LONGLONG llPosition,
1035 [in] LONG lLength,
1036 [out, size_is(lLength)]
1037 BYTE* pBuffer);
1038
1039 HRESULT Length(
1040 [out] LONGLONG* pTotal,
1041 [out] LONGLONG* pAvailable);
1042
1043 HRESULT BeginFlush(void);
1044
1045 HRESULT EndFlush(void);
1046}
1047
1048
1049[
1050 object,
1051 uuid(56a868ab-0ad4-11ce-b03a-0020af0ba770),
1052 pointer_default(unique)
1053]
1054interface IGraphVersion : IUnknown
1055{
1056 HRESULT QueryVersion(LONG* pVersion);
1057}
1058
1059[
1060 object,
1061 uuid(56a868ad-0ad4-11ce-b03a-0020af0ba770),
1062 pointer_default(unique)
1063]
1064interface IResourceConsumer : IUnknown
1065{
1066 HRESULT AcquireResource(
1067 [in] LONG idResource);
1068
1069 HRESULT ReleaseResource(
1070 [in] LONG idResource);
1071}
1072
1073
1074[
1075 object,
1076 uuid(56a868ac-0ad4-11ce-b03a-0020af0ba770),
1077 pointer_default(unique)
1078]
1079interface IResourceManager : IUnknown
1080{
1081 HRESULT Register(
1082 [in] LPCWSTR pName,
1083 [in] LONG cResource,
1084 [out] LONG* plToken
1085 );
1086
1087 HRESULT RegisterGroup(
1088 [in] LPCWSTR pName,
1089 [in] LONG cResource,
1090 [in, size_is(cResource)]
1091 LONG* palTokens,
1092 [out] LONG* plToken
1093 );
1094
1095 HRESULT RequestResource(
1096 [in] LONG idResource,
1097 [in] IUnknown* pFocusObject,
1098 [in] IResourceConsumer* pConsumer
1099 );
1100
1101 HRESULT NotifyAcquire(
1102 [in] LONG idResource,
1103 [in] IResourceConsumer* pConsumer,
1104 [in] HRESULT hr);
1105
1106 HRESULT NotifyRelease(
1107 [in] LONG idResource,
1108 [in] IResourceConsumer* pConsumer,
1109 [in] BOOL bStillWant);
1110
1111 HRESULT CancelRequest(
1112 [in] LONG idResource,
1113 [in] IResourceConsumer* pConsumer);
1114
1115 HRESULT SetFocus(
1116 [in] IUnknown* pFocusObject);
1117
1118 HRESULT ReleaseFocus(
1119 [in] IUnknown* pFocusObject);
1120
1121}
1122
1123typedef enum AM_STREAM_INFO_FLAGS
1124{
1125 AM_STREAM_INFO_START_DEFINED = 0x01,
1126 AM_STREAM_INFO_STOP_DEFINED = 0x02,
1127 AM_STREAM_INFO_DISCARDING = 0x04,
1128 AM_STREAM_INFO_STOP_SEND_EXTRA = 0x10
1129} AM_STREAM_INFO_FLAGS;
1130
1131typedef struct AM_STREAM_INFO
1132{
1133 REFERENCE_TIME tStart;
1134 REFERENCE_TIME tStop;
1135 DWORD dwStartCookie;
1136 DWORD dwStopCookie;
1137 DWORD dwFlags;
1138} AM_STREAM_INFO;
1139
1140[
1141 local,
1142 object,
1143 uuid(36b73881-c2c8-11cf-8b46-00805f6cef60),
1144 pointer_default(unique)
1145]
1146interface IAMStreamControl : IUnknown
1147{
1148 HRESULT StartAt(
1149 [in] const REFERENCE_TIME *ptStart,
1150 [in] DWORD dwCookie);
1151
1152 HRESULT StopAt(
1153 [in] const REFERENCE_TIME *ptStop,
1154 [in] BOOL bSendExtra,
1155 [in] DWORD dwCookie);
1156
1157 HRESULT GetInfo(
1158 [out] AM_STREAM_INFO *pInfo);
1159}
1160
1161cpp_quote("#ifndef _IKsPropertySet_")
1162cpp_quote("#define _IKsPropertySet_")
1163cpp_quote("#define KSPROPERTY_SUPPORT_GET 1")
1164cpp_quote("#define KSPROPERTY_SUPPORT_SET 2")
1165
1166typedef enum AMPROPERTY_PIN
1167{
1168 AMPROPERTY_PIN_CATEGORY,
1169 AMPROPERTY_PIN_MEDIUM,
1170} AMPROPERTY_PIN;
1171
1172[
1173 object,
1174 uuid(31efac30-515c-11d0-a9aa-00aa0061be93),
1175 pointer_default(unique),
1176 local
1177]
1178interface IKsPropertySet : IUnknown
1179{
1180 HRESULT Set( [in] REFGUID guidPropSet,
1181 [in] DWORD dwPropID,
1182 [in, size_is(cbInstanceData)] LPVOID pInstanceData,
1183 [in] DWORD cbInstanceData,
1184 [in, size_is(cbPropData)] LPVOID pPropData,
1185 [in] DWORD cbPropData );
1186
1187 HRESULT Get( [in] REFGUID guidPropSet,
1188 [in] DWORD dwPropID,
1189 [in, size_is(cbInstanceData)] LPVOID pInstanceData,
1190 [in] DWORD cbInstanceData,
1191 [out, size_is(cbPropData)] LPVOID pPropData,
1192 [in] DWORD cbPropData,
1193 [out] DWORD *pcbReturned );
1194
1195 HRESULT QuerySupported( [in] REFGUID guidPropSet,
1196 [in] DWORD dwPropID,
1197 [out] DWORD *pTypeSupport);
1198}
1199cpp_quote("#endif /* _IKsPropertySet_ */")
1200
1201[
1202 local,
1203 object,
1204 uuid(6025a880-c0d5-11d0-bd4e-00a0c911ce86),
1205 pointer_default(unique)
1206]
1207interface IMediaPropertyBag : IPropertyBag
1208{
1209 typedef IMediaPropertyBag *LPMEDIAPROPERTYBAG;
1210
1211 HRESULT EnumProperty(
1212 [in] ULONG iProperty,
1213 [in, out] VARIANT *pvarPropertyName,
1214 [in, out] VARIANT *pvarPropertyValue);
1215}
1216
1217
1218[
1219 local,
1220 object,
1221 uuid(5738e040-b67f-11d0-bd4d-00a0c911ce86),
1222 pointer_default(unique)
1223]
1224interface IPersistMediaPropertyBag : IPersist
1225{
1226 HRESULT InitNew(void);
1227
1228 HRESULT Load(
1229 [in] IMediaPropertyBag *pPropBag,
1230 [in] IErrorLog *pErrorLog);
1231
1232 HRESULT Save(
1233 [in] IMediaPropertyBag *pPropBag,
1234 [in] BOOL fClearDirty,
1235 [in] BOOL fSaveAllProperties);
1236
1237 typedef IPersistMediaPropertyBag *LPPERSISTMEDIAPROPERTYBAG;
1238}
1239
1240[
1241 object,
1242 uuid(36b73883-c2c8-11cf-8b46-00805f6cef60),
1243 pointer_default(unique)
1244]
1245interface ISeekingPassThru : IUnknown
1246{
1247 HRESULT Init( [in] BOOL bSupportRendering, [in] IPin *pPin);
1248}
1249
1250enum _AM_FILTER_MISC_FLAGS
1251{
1252 AM_FILTER_MISC_FLAGS_IS_RENDERER = 0x1,
1253 AM_FILTER_MISC_FLAGS_IS_SOURCE = 0x2
1254};
1255
1256[
1257 local,
1258 object,
1259 uuid(2dd74950-a890-11d1-abe8-00a0c905f375),
1260 pointer_default(unique)
1261]
1262interface IAMFilterMiscFlags : IUnknown
1263{
1264 ULONG GetMiscFlags();
1265}
1266
1267[
1268 local,
1269 object,
1270 uuid(4995f511-9ddb-4f12-bd3b-f04611807b79),
1271 pointer_default(unique)
1272]
1273interface IAMGraphBuilderCallback : IUnknown
1274{
1275 HRESULT SelectedFilter(
1276 [in] IMoniker *pMon);
1277
1278 HRESULT CreatedFilter(
1279 [in] IBaseFilter *pFil);
1280}
1281
1282[
1283 local,
1284 object,
1285 uuid(d8d715a0-6e5e-11d0-b3f0-00aa003761c5),
1286 pointer_default(unique)
1287]
1288interface IAMVfwCaptureDialogs : IUnknown
1289{
1290 HRESULT HasDialog(
1291 [in] int dialog);
1292 HRESULT ShowDialog(
1293 [in] int dialog,
1294 [in] HWND hwnd);
1295 HRESULT SendDriverMessage(
1296 [in] int dialog,
1297 [in] int msg,
1298 [in] long data1,
1299 [in] long data2);
1300}
1301
1302[
1303 local,
1304 object,
1305 uuid(c6e13370-30ac-11d0-a18c-00a0c9118956),
1306 pointer_default(unique)
1307]
1308interface IAMCameraControl : IUnknown
1309{
1310 HRESULT GetRange([in] long property, [out] long *min, [out] long *max,
1311 [out] long *stepping_delta, [out] long *default_value, [out] long *flags);
1312 HRESULT Set([in] long property, [in] long property_value, [in] long flags);
1313 HRESULT Get([in] long property, [out] long *property_value, [out] long *flags);
1314}
1315
1316[
1317 local,
1318 object,
1319 uuid(6a2e0670-28e4-11d0-a18c-00a0c9118956),
1320 pointer_default(unique)
1321]
1322interface IAMVideoControl : IUnknown
1323{
1324 HRESULT GetCaps([in] IPin *pin, [out] long *flags);
1325 HRESULT SetMode([in] IPin *pin, long mode);
1326 HRESULT GetMode([in] IPin *pin, [out] long *mode);
1327 HRESULT GetCurrentActualFrameRate([in] IPin *pin, [out] LONGLONG *frame_rate);
1328 HRESULT GetMaxAvailableFrameRate([in] IPin *pin, [in] long index,
1329 [in] SIZE dimensions, [out] LONGLONG *frame_rate);
1330 HRESULT GetFrameRateList([in] IPin *pin, [in] long index, [in] SIZE dimensions,
1331 [out] long *list_size, [out] LONGLONG **frame_rate);
1332}
1333
1334[
1335 local,
1336 object,
1337 uuid(56ed71a0-af5f-11d0-b3f0-00aa003761c5),
1338 pointer_default(unique)
1339]
1340interface IAMBufferNegotiation : IUnknown
1341{
1342 HRESULT SuggestAllocatorProperties([in] const ALLOCATOR_PROPERTIES *prop);
1343 HRESULT GetAllocatorProperties([out] ALLOCATOR_PROPERTIES *prop);
1344}
1345
1346[
1347 local,
1348 object,
1349 uuid(c6e13344-30ac-11d0-a18c-00a0c9118956),
1350 pointer_default(unique)
1351]
1352interface IAMDroppedFrames : IUnknown
1353{
1354 HRESULT GetNumDropped([out] long *number);
1355 HRESULT GetNumNotDropped([out] long *number);
1356 HRESULT GetDroppedInfo([in] long size, [out] long *array, [out] long *copied);
1357 HRESULT GetAverageFrameSize([out] long *size);
1358}
1359
1360[
1361 local,
1362 object,
1363 uuid(62ea93ba-ec62-11d2-b770-00c04fb6bd3d),
1364 pointer_default(unique)
1365]
1366interface IAMLatency : IUnknown
1367{
1368 HRESULT GetLatency([in, out] REFERENCE_TIME *latency);
1369}
1370
1371[
1372 local,
1373 object,
1374 uuid(f185fe76-e64e-11d2-b76e-00c04fb6bd3d),
1375 pointer_default(unique)
1376]
1377interface IAMPushSource : IAMLatency
1378{
1379 HRESULT GetPushSourceFlags([out] ULONG *flags);
1380 HRESULT SetPushSourceFlags([in] ULONG flags);
1381 HRESULT SetStreamOffset([in] REFERENCE_TIME offset);
1382 HRESULT GetStreamOffset([out] REFERENCE_TIME *offset);
1383 HRESULT GetMaxStreamOffset([out] REFERENCE_TIME *offset);
1384 HRESULT SetMaxStreamOffset([in] REFERENCE_TIME offset);
1385}
1386
1387[
1388 local,
1389 object,
1390 uuid(c6e13343-30ac-11d0-a18c-00a0c9118956),
1391 pointer_default(unique)
1392]
1393interface IAMVideoCompression : IUnknown
1394{
1395 HRESULT put_KeyFrameRate([in] long frame_rate);
1396 HRESULT get_KeyFrameRate([out] long *frame_rate);
1397 HRESULT put_PFramesPerKeyFrame([in] long frame);
1398 HRESULT get_PFramesPerKeyFrame([out] long *frame);
1399 HRESULT put_Quality([in] double quality);
1400 HRESULT get_Quality([out] double *quality);
1401 HRESULT put_WindowSize([in] DWORDLONG size);
1402 HRESULT get_WindowSize([out] DWORDLONG *size);
1403 HRESULT GetInfo([out, size_is(*version_size)] LPWSTR version, [in, out] int *version_size,
1404 [out, size_is(*description_size)] LPWSTR description, [in, out] int *description_size,
1405 [out] long *frame_rate, [out] long *key, [out] double *quality, [out] long *capabilities);
1406 HRESULT OverrideKeyFrame([in] long number);
1407 HRESULT OverrideFrameSize([in] long number, [in] long size);
1408}
1409
1410[
1411 local,
1412 object,
1413 uuid(c6e13380-30ac-11d0-a18c-00a0c9118956),
1414 pointer_default(unique)
1415]
1416interface IAMCrossbar : IUnknown
1417{
1418 HRESULT get_PinCounts([out] long *output, [out] long *intput);
1419 HRESULT CanRoute([in] long output, [in] long input);
1420 HRESULT Route([in] long output, [in] long input);
1421 HRESULT get_IsRoutedTo([in] long output, [out] long *input);
1422 HRESULT get_CrossbarPinInfo([in] BOOL is_input, [in] long index,
1423 [out] long *related, [out] long *type);
1424}
1425
1426typedef enum tagAMTunerEventType
1427{
1428 AMTUNER_EVENT_CHANGED = 0x0001,
1429} AMTunerEventType;
1430
1431[
1432 local,
1433 object,
1434 uuid(211a8760-03ac-11d1-8d13-00aa00bd8339),
1435 pointer_default(unique)
1436]
1437interface IAMTunerNotification : IUnknown
1438{
1439 HRESULT OnEvent([in] AMTunerEventType event);
1440}
1441
1442typedef enum tagAMTunerModeType
1443{
1444 AMTUNER_MODE_DEFAULT = 0x0000,
1445 AMTUNER_MODE_TV = 0x0001,
1446 AMTUNER_MODE_FM_RADIO = 0x0002,
1447 AMTUNER_MODE_AM_RADIO = 0x0004,
1448 AMTUNER_MODE_DSS = 0x0008,
1449} AMTunerModeType;
1450
1451[
1452 local,
1453 object,
1454 uuid(211a8761-03ac-11d1-8d13-00aa00bd8339),
1455 pointer_default(unique)
1456]
1457interface IAMTuner : IUnknown
1458{
1459 HRESULT put_Channel([in] long channel, [in] long video, [in] long audio);
1460 HRESULT get_Channel([out] long *channel, [out] long *video, [out] long *audio);
1461 HRESULT ChannelMinMax([out] long *min, [out] long *max);
1462 HRESULT put_CountryCode([in] long country);
1463 HRESULT get_CountryCode([out] long *country);
1464 HRESULT put_TuningSpace([in] long tuning_space);
1465 HRESULT get_TuningSpace([out] long *tuning_space);
1466 [local] HRESULT Logon([in] HANDLE user);
1467 HRESULT Logout();
1468 HRESULT SignalPresent([out] long *signal_strength);
1469 HRESULT put_Mode([in] AMTunerModeType mode);
1470 HRESULT get_Mode([out] AMTunerModeType *mode);
1471 HRESULT GetAvailableModes([out] long *modes);
1472 HRESULT RegisterNotificationCallBack([in] IAMTunerNotification *notify, [in] long events);
1473 HRESULT UnRegisterNotificationCallBack([in] IAMTunerNotification *notify);
1474}
1475
1476[
1477 local,
1478 object,
1479 uuid(211a8766-03ac-11d1-8d13-00aa00bd8339),
1480 pointer_default(unique)
1481]
1482interface IAMTVTuner : IAMTuner
1483{
1484 HRESULT get_AvailableTVFormats([out] long *standard);
1485 HRESULT get_TVFormat([out] long *standard);
1486 HRESULT AutoTune([in] long channel, [out] long *signal);
1487 HRESULT StoreAutoTune();
1488 HRESULT get_NumInputConnections([out] long *number);
1489 HRESULT put_InputType([in] long index, [in] TunerInputType type);
1490 HRESULT get_InputType([in] long index, [out] TunerInputType *type);
1491 HRESULT put_ConnectInput([in] long index);
1492 HRESULT get_ConnectInput([out] long *index);
1493 HRESULT get_VideoFrequency([out] long *freq);
1494 HRESULT get_AudioFrequency([out] long *freq);
1495}
1496
1497[
1498 local,
1499 object,
1500 uuid(e46a9787-2b71-444d-a4b5-1fab7b708d6a),
1501 pointer_default(unique),
1502]
1503interface IVideoFrameStep : IUnknown
1504{
1505 HRESULT Step(DWORD frame_count, [in] IUnknown *filter);
1506 HRESULT CanStep(long multiple, [in] IUnknown *filter);
1507 HRESULT CancelStep();
1508}
1509
1510cpp_quote("#if (_WIN32_WINNT >= 0x0601)")
1511[
1512 local,
1513 object,
1514 uuid(cf7b26fc-9a00-485b-8147-3e789d5e8f67),
1515 pointer_default(unique)
1516]
1517interface IAMAsyncReaderTimestampScaling : IUnknown
1518{
1519 HRESULT GetTimestampMode(
1520 [out] BOOL *pfRaw);
1521 HRESULT SetTimestampMode(
1522 [in] BOOL fRaw);
1523}
1524
1525[
1526 local,
1527 object,
1528 uuid(0e26a181-f40c-4635-8786-976284b52981),
1529 pointer_default(unique)
1530]
1531interface IAMPluginControl : IUnknown
1532{
1533 HRESULT GetPreferredClsid(
1534 [in] REFGUID subType,
1535 [out] CLSID *clsid);
1536 HRESULT GetPreferredClsidByIndex(
1537 [in] DWORD index,
1538 [out] GUID *subType,
1539 [out] CLSID *clsid);
1540 HRESULT SetPreferredClsid(
1541 [in] REFGUID subType,
1542 [in] const CLSID *clsid);
1543 HRESULT IsDisabled(
1544 [in] REFCLSID clsid);
1545 HRESULT GetDisabledByIndex(
1546 [in] DWORD index,
1547 [out] CLSID *clsid);
1548 HRESULT SetDisabled(
1549 [in] REFCLSID clsid,
1550 [in] BOOL disabled);
1551 HRESULT IsLegacyDisabled(
1552 [in] LPCWSTR dllName);
1553}
1554cpp_quote("#endif /*(_WIN32_WINNT >= 0x0601)*/")
Note: See TracBrowser for help on using the repository browser.