ReactOS 0.4.15-dev-7788-g1ad9096
axextend.idl
Go to the documentation of this file.
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
19#if 0
20#pragma makedep install
21#endif
22
23interface IAMAnalogVideoDecoder;
24interface IAMAnalogVideoEncoder;
25interface IAMAudioInputMixer;
26interface IAMAudioRendererStats;
27interface IAMBufferNegotiation;
28interface IAMCameraControl;
30interface IAMClockSlave;
32interface IAMCrossbar;
33interface IAMDevMemoryAllocator;
34interface IAMDevMemoryControl;
35interface IAMDroppedFrames;
36interface IAMExtDevice;
37interface IAMExtTransport;
38interface IAMGraphStreams;
39interface IAMLatency;
40interface IAMOpenProgress;
41interface IAMOverlayFX;
42interface IAMPhysicalPinInfo;
43interface IAMPushSource;
44interface IAMStreamConfig;
45interface IAMTimecodeDisplay;
46interface IAMTimecodeGenerator;
47interface IAMTimecodeReader;
48interface IAMTVTuner;
49interface IAMVfwCaptureDialogs;
50interface IAMVfwCompressDialogs;
51interface IAMVideoCompression;
52interface IAMVideoDecimationProperties;
53interface IAMVideoProcAmp;
55interface ICaptureGraphBuilder;
56interface ICaptureGraphBuilder2;
57interface IConfigAviMux;
58interface IConfigInterleaving;
59interface IDecimateVideoImage;
60interface IDrawVideoImage;
61interface IEnumRegFilters;
62interface IEnumStreamIdMap;
63interface IFileSourceFilter;
64interface IFileSinkFilter;
65interface IFileSinkFilter2;
66interface IFilterMapper;
67interface IFilterMapper2;
68interface IGraphBuilder;
69interface IKsPropertySet;
70interface IMediaEventSink;
71interface IMpeg2Demultiplexer;
72interface IMPEG2StreamIdMap;
73interface IOverlay;
74interface IOverlayNotify;
75interface IOverlayNotify2;
76interface IQualityControl;
77interface ISeekingPassThru;
78
79typedef struct
80{
83} REGFILTER;
84
85[
86object,
87uuid(56a868a4-0ad4-11ce-b03a-0020af0ba770),
89]
91{
93 ( [in] ULONG cFilters,
94 [out] REGFILTER ** apRegFilter,
95 [out] ULONG * pcFetched
96 );
97
99 [in] ULONG cFilters
100 );
101
103
105 [out] IEnumRegFilters **ppEnum
106 );
107}
108
109
110typedef IEnumRegFilters *PENUMREGFILTERS;
111
112[
113object,
114uuid(56a868a3-0ad4-11ce-b03a-0020af0ba770),
116]
117interface IFilterMapper : IUnknown
118{
119 enum { MERIT_PREFERRED = 0x800000,
120 MERIT_NORMAL = 0x600000,
121 MERIT_UNLIKELY = 0x400000,
123 MERIT_SW_COMPRESSOR = 0x100000,
124 MERIT_HW_COMPRESSOR = 0x100050
125 };
126
128 ( [in] CLSID clsid,
129 [in] LPCWSTR Name,
130 [in] DWORD dwMerit
131 );
132
134 ( [in] CLSID clsid,
135 [in] LPCWSTR Name,
136 [out] CLSID *MRId
137 );
138
139
141 ( [in] CLSID Filter,
142 [in] LPCWSTR Name,
143 [in] BOOL bRendered,
144 [in] BOOL bOutput,
145 [in] BOOL bZero,
146 [in] BOOL bMany,
147 [in] CLSID ConnectsToFilter,
148 [in] LPCWSTR ConnectsToPin
149 );
150
152 ( [in] CLSID clsFilter,
153 [in] LPCWSTR strName,
154 [in] CLSID clsMajorType,
155 [in] CLSID clsSubType
156 );
157
158
160 ( [in] CLSID Filter
161 );
162
163
165 ( [in] CLSID MRId
166 );
167
168
170 ( [in] CLSID Filter,
171 [in] LPCWSTR Name
172 );
173
175 ( [out] IEnumRegFilters **ppEnum,
176 [in] DWORD dwMerit,
177 [in] BOOL bInputNeeded,
178 [in] CLSID clsInMaj,
179 [in] CLSID clsInSub,
180 [in] BOOL bRender,
181 [in] BOOL bOutputNeeded,
182 [in] CLSID clsOutMaj,
183 [in] CLSID clsOutSub
184 );
185
186}
187
188typedef struct
189{
190 const CLSID * clsMajorType;
193
194typedef struct
195{
206
207typedef struct
208{
213
214enum
215{
221
222
223typedef struct
224{
228 [size_is(nMediaTypes)] const REGPINTYPES * lpMediaType;
230 [size_is(nMediums)] const REGPINMEDIUM *lpMedium;
233
234typedef struct
235{
238 [switch_is(dwVersion)] [switch_type(DWORD)] union
239 {
240 [case(1)]
241 struct
242 {
244 [size_is(cPins)] const REGFILTERPINS *rgPins;
246
247 [case(2)]
248 struct
249 {
251 [size_is(cPins2)] const REGFILTERPINS2 *rgPins2;
253
254 [default]
255 ;
257
258} REGFILTER2;
259
260
261[
262object,
263uuid(b79bb0b0-33c1-11d1-abe1-00a0c905f375),
265]
267{
269 ( [in] REFCLSID clsidCategory,
270 [in] DWORD dwCategoryMerit,
272 );
273
275 ( [in] const CLSID *pclsidCategory,
276 [in] LPCOLESTR szInstance,
278 );
279
281 ( [in] REFCLSID clsidFilter,
282 [in] LPCWSTR Name,
283 [in, out] IMoniker **ppMoniker,
284 [in] const CLSID *pclsidCategory,
285 [in] LPCOLESTR szInstance,
286 [in] const REGFILTER2 *prf2
287 );
288
290 ( [out] IEnumMoniker **ppEnum,
291 [in] DWORD dwFlags,
292 [in] BOOL bExactMatch,
293 [in] DWORD dwMerit,
294 [in] BOOL bInputNeeded,
295 [in] DWORD cInputTypes,
296 [size_is(cInputTypes*2)] const GUID *pInputTypes,
297 [in] const REGPINMEDIUM *pMedIn,
298 [in] const CLSID *pPinCategoryIn,
299 [in] BOOL bRender,
300 [in] BOOL bOutputNeeded,
301 [in] DWORD cOutputTypes,
302 [size_is(cOutputTypes*2)] const GUID *pOutputTypes,
303 [in] const REGPINMEDIUM *pMedOut,
304 [in] const CLSID *pPinCategoryOut
305 );
306}
307
308[
309object,
310uuid(b79bb0b1-33c1-11d1-abe1-00a0c905f375),
312]
313interface IFilterMapper3 : IFilterMapper2
314{
316}
317
318typedef enum tagQualityMessageType
319{
320 Famine,
321 Flood
323
324typedef struct tagQuality
325{
331
333
334[
335object,
336uuid(56a868a5-0ad4-11ce-b03a-0020af0ba770),
338]
340{
342 ( [in] IBaseFilter * pSelf,
343 [in] Quality q
344 );
345
347 ( [in] IQualityControl * piqc
348 );
349}
350
351enum
352{
354 CK_INDEX = 0x1,
355 CK_RGB = 0x2
357
358typedef struct tagCOLORKEY
359{
365
366enum
367{
375
380
383
384cpp_quote("#ifndef _WINGDI_")
385
386/* already defined in wingdi.h, but needed for WIDL */
387
389{
396
397typedef struct _RGNDATA
398{
400 char Buffer[1];
402
403cpp_quote("#endif /* _WINGDI_ */")
404
405[
406object,
407local,
408uuid(56a868a0-0ad4-11ce-b03a-0020af0ba770),
410]
412{
414 [in] DWORD dwColors,
415 [in] const PALETTEENTRY *pPalette);
416
418 [in] const RECT *pSourceRect,
419 [in] const RECT *pDestinationRect,
420 [in] const RGNDATA *pRgnData);
421
422 HRESULT OnColorKeyChange([in] const COLORKEY *pColorKey);
423
424 HRESULT OnPositionChange([in] const RECT *pSourceRect,
425 [in] const RECT *pDestinationRect);
426}
427
428typedef IOverlayNotify *POVERLAYNOTIFY;
429
430cpp_quote("#if 0")
432cpp_quote("#endif /* 0 */")
433
434[
435object,
436local,
437uuid(680EFA10-D535-11D1-87C8-00A0C9223196),
438pointer_default(unique)
439]
440interface IOverlayNotify2 : IOverlayNotify
441{
442 HRESULT OnDisplayChange(
443 HMONITOR hMonitor);
444}
445
446typedef IOverlayNotify2 *POVERLAYNOTIFY2;
447
448[
449object,
450local,
451uuid(56a868a1-0ad4-11ce-b03a-0020af0ba770),
452pointer_default(unique)
453]
454interface IOverlay : IUnknown
455{
456 HRESULT GetPalette(
457 [out] DWORD *pdwColors,
458 [out] PALETTEENTRY **ppPalette);
459
460 HRESULT SetPalette(
461 [in] DWORD dwColors,
462 [in] PALETTEENTRY *pPalette);
463
464 HRESULT GetDefaultColorKey([out] COLORKEY *pColorKey);
465
466 HRESULT GetColorKey([out] COLORKEY *pColorKey);
467
468 HRESULT SetColorKey([in,out] COLORKEY *pColorKey);
469
470 HRESULT GetWindowHandle([out] HWND *pHwnd);
471
472 HRESULT GetClipList([out] RECT *pSourceRect,
473 [out] RECT *pDestinationRect,
474 [out] RGNDATA **ppRgnData);
475
476 HRESULT GetVideoPosition([out] RECT *pSourceRect,
477 [out] RECT *pDestinationRect);
478
479 HRESULT Advise(
480 [in] IOverlayNotify *pOverlayNotify,
481 [in] DWORD dwInterests);
482
483 HRESULT Unadvise();
484}
485
486typedef IOverlay *POVERLAY;
487
488[
489object,
490uuid(56a868a2-0ad4-11ce-b03a-0020af0ba770),
491pointer_default(unique)
492]
493interface IMediaEventSink : IUnknown
494{
495 HRESULT Notify(
496 [in] LONG EventCode,
497 [in] LONG_PTR EventParam1,
498 [in] LONG_PTR EventParam2
499 );
500}
501
502typedef IMediaEventSink *PMEDIAEVENTSINK;
503
504[
505object,
506uuid(56a868a6-0ad4-11ce-b03a-0020af0ba770),
507pointer_default(unique)
508]
509interface IFileSourceFilter : IUnknown
510{
511 HRESULT Load(
512 [in] LPCOLESTR pszFileName,
513 [in, unique] const AM_MEDIA_TYPE *pmt
514 );
515
516 HRESULT GetCurFile(
517 [out] LPOLESTR *ppszFileName,
518 [out] AM_MEDIA_TYPE *pmt
519 );
520}
521
522typedef IFileSourceFilter *PFILTERFILESOURCE;
523
524[
525object,
526uuid(a2104830-7c70-11cf-8bce-00aa00a3f1a6),
527pointer_default(unique)
528]
529interface IFileSinkFilter : IUnknown
530{
531 HRESULT SetFileName(
532 [in] LPCOLESTR pszFileName,
533 [in, unique] const AM_MEDIA_TYPE *pmt
534 );
535
536 HRESULT GetCurFile(
537 [out] LPOLESTR *ppszFileName,
538 [out] AM_MEDIA_TYPE *pmt
539 );
540}
541
542typedef IFileSinkFilter *PFILTERFILESINK;
543
544[
545 object,
546 uuid(00855B90-CE1B-11d0-BD4F-00A0C911CE86),
547 pointer_default(unique)
548]
549interface IFileSinkFilter2 : IFileSinkFilter
550{
551 HRESULT SetMode(
552 [in] DWORD dwFlags
553 );
554
555 HRESULT GetMode(
556 [out] DWORD *pdwFlags
557 );
558}
559
560typedef IFileSinkFilter2 *PFILESINKFILTER2;
561
562[
563 object,
564 uuid(f90a6130-b658-11d2-ae49-0000f8754b99),
565 pointer_default(unique)
566]
567interface IAMDeviceRemoval : IUnknown
568{
569 HRESULT DeviceInfo(
570 [out] CLSID *pclsidInterfaceClass,
571 [out] LPWSTR *pwszSymbolicLink);
572 HRESULT Reassociate();
573 HRESULT Disassociate();
574}
575
576
577typedef enum
578{
579 AM_FILE_OVERWRITE = 0x00000001,
580} AM_FILESINK_FLAGS;
581
582[
583object,
584uuid(56a868a9-0ad4-11ce-b03a-0020af0ba770),
585pointer_default(unique)
586]
587interface IGraphBuilder : IFilterGraph
588{
589 HRESULT Connect
590 ( [in] IPin * ppinOut,
591 [in] IPin * ppinIn
592 );
593
594 HRESULT Render
595 ( [in] IPin * ppinOut
596 );
597
598 HRESULT RenderFile
599 ( [in] LPCWSTR lpcwstrFile,
600 [in, unique] LPCWSTR lpcwstrPlayList
601 );
602
603 HRESULT AddSourceFilter
604 ( [in] LPCWSTR lpcwstrFileName,
605 [in, unique] LPCWSTR lpcwstrFilterName,
606 [out] IBaseFilter* *ppFilter
607 );
608
609 HRESULT SetLogFile
610 ( [in] DWORD_PTR hFile
611 );
612
613 HRESULT Abort();
614
615 HRESULT ShouldOperationContinue();
616}
617
618
619[
620 object,
621 uuid(bf87b6e0-8c27-11d0-b3f0-00aa003761c5),
622 pointer_default(unique)
623]
624interface ICaptureGraphBuilder : IUnknown {
625
626 HRESULT SetFiltergraph(
627 [in] IGraphBuilder *pfg);
628
629 HRESULT GetFiltergraph(
630 [out] IGraphBuilder **ppfg);
631
632 HRESULT SetOutputFileName(
633 [in] const GUID *pType,
634 [in] LPCOLESTR lpstrFile,
635 [out] IBaseFilter **ppf,
636 [out] IFileSinkFilter **ppSink);
637
638 [local] HRESULT FindInterface(
639 [in, unique] const GUID *pCategory,
640 [in] IBaseFilter *pf,
641 [in] REFIID riid,
642 [out] void **ppint);
643
644 [call_as(FindInterface)] HRESULT RemoteFindInterface(
645 [in, unique] const GUID *pCategory,
646 [in] IBaseFilter *pf,
647 [in] REFIID riid,
648 [out] IUnknown **ppint);
649
650 HRESULT RenderStream(
651 [in] const GUID *pCategory,
652 [in] IUnknown *pSource,
653 [in] IBaseFilter *pfCompressor,
654 [in] IBaseFilter *pfRenderer);
655
656 HRESULT ControlStream(
657 [in] const GUID *pCategory,
658 [in] IBaseFilter *pFilter,
659 [in] REFERENCE_TIME *pstart,
660 [in] REFERENCE_TIME *pstop,
661 [in] WORD wStartCookie,
662 [in] WORD wStopCookie);
663
664 HRESULT AllocCapFile(
665 [in] LPCOLESTR lpstr,
666 [in] DWORDLONG dwlSize);
667
668 HRESULT CopyCaptureFile(
669 [in] LPOLESTR lpwstrOld,
670 [in] LPOLESTR lpwstrNew,
671 [in] int fAllowEscAbort,
672 [in] IAMCopyCaptureFileProgress *pCallback);
673}
674
675[
676object,
677uuid(670d1d20-a068-11d0-b3f0-00aa003761c5),
678pointer_default(unique)
679]
680interface IAMCopyCaptureFileProgress : IUnknown
681{
682 HRESULT Progress(
683 [in] int iProgress);
684}
685
686[
687 object,
688 uuid(93E5A4E0-2D50-11d2-ABFA-00A0C9C6E38D),
689 pointer_default(unique)
690]
691interface ICaptureGraphBuilder2 : IUnknown
692{
693 HRESULT SetFiltergraph(
694 [in] IGraphBuilder *pfg);
695
696 HRESULT GetFiltergraph(
697 [out] IGraphBuilder **ppfg);
698
699 HRESULT SetOutputFileName(
700 [in] const GUID *pType,
701 [in] LPCOLESTR lpstrFile,
702 [out] IBaseFilter **ppf,
703 [out] IFileSinkFilter **ppSink);
704
705 [local] HRESULT FindInterface(
706 [in] const GUID *pCategory,
707 [in] const GUID *pType,
708 [in] IBaseFilter *pf,
709 [in] REFIID riid,
710 [out] void **ppint);
711
712 [call_as(FindInterface)] HRESULT RemoteFindInterface(
713 [in] const GUID *pCategory,
714 [in] const GUID *pType,
715 [in] IBaseFilter *pf,
716 [in] REFIID riid,
717 [out] IUnknown **ppint);
718
719 HRESULT RenderStream(
720 [in] const GUID *pCategory,
721 [in] const GUID *pType,
722 [in] IUnknown *pSource,
723 [in] IBaseFilter *pfCompressor,
724 [in] IBaseFilter *pfRenderer);
725
726 HRESULT ControlStream(
727 [in] const GUID *pCategory,
728 [in] const GUID *pType,
729 [in] IBaseFilter *pFilter,
730 [in] REFERENCE_TIME *pstart,
731 [in] REFERENCE_TIME *pstop,
732 [in] WORD wStartCookie,
733 [in] WORD wStopCookie);
734
735 HRESULT AllocCapFile(
736 [in] LPCOLESTR lpstr,
737 [in] DWORDLONG dwlSize);
738
739 HRESULT CopyCaptureFile(
740 [in] LPOLESTR lpwstrOld,
741 [in] LPOLESTR lpwstrNew,
742 [in] int fAllowEscAbort,
743 [in] IAMCopyCaptureFileProgress *pCallback);
744
745 HRESULT FindPin(
746 [in] IUnknown *pSource,
747 [in] PIN_DIRECTION pindir,
748 [in] const GUID *pCategory,
749 [in] const GUID *pType,
750 [in] BOOL fUnconnected,
751 [in] int num,
752 [out] IPin **ppPin);
753}
754
755[
756 local,
757 object,
758 uuid(5acd6aa0-f482-11ce-8b67-00aa00a3f1a6),
759 pointer_default(unique)
760]
761interface IConfigAviMux : IUnknown
762{
763 HRESULT SetMasterStream(
764 [in] LONG iStream);
765
766 HRESULT GetMasterStream(
767 [out] LONG *pStream);
768
769 HRESULT SetOutputCompatibilityIndex(
770 [in] BOOL fOldIndex);
771
772 HRESULT GetOutputCompatibilityIndex(
773 [out] BOOL *pfOldIndex);
774}
775
776[
777 local,
778 object,
779 uuid(bee3d220-157b-11d0-bd23-00a0c911ce86),
780 pointer_default(unique)
781]
782interface IConfigInterleaving : IUnknown
783{
784 typedef enum InterleavingMode {
785 INTERLEAVE_NONE,
786 INTERLEAVE_CAPTURE,
787 INTERLEAVE_FULL,
788 INTERLEAVE_NONE_BUFFERED
789 } InterleavingMode;
790
791 HRESULT put_Mode(
792 [in] InterleavingMode mode);
793
794 HRESULT get_Mode(
795 [out] InterleavingMode *pMode);
796
797 HRESULT put_Interleaving(
798 [in] const REFERENCE_TIME *prtInterleave,
799 [in] const REFERENCE_TIME *prtPreroll);
800
801 HRESULT get_Interleaving(
802 [out] REFERENCE_TIME *prtInterleave,
803 [out] REFERENCE_TIME *prtPreroll);
804}
805
806[
807 local,
808 object,
809 uuid(4d5466b0-a49c-11d1-abe8-00a0c905f375),
810 pointer_default(unique)
811
812]
813interface IAMClockAdjust : IUnknown
814{
815 HRESULT SetClockDelta([in] REFERENCE_TIME rtDelta);
816};
817
818[
819 local,
820 object,
821 uuid(9fd52741-176d-4b36-8f51-ca8f933223be),
822 pointer_default(unique)
823]
824interface IAMClockSlave : IUnknown
825{
826 HRESULT SetErrorTolerance(
827 [in] DWORD dwTolerance);
828
829 HRESULT GetErrorTolerance(
830 [out] DWORD *pdwTolerance);
831}
832
833typedef struct _AMCOPPSignature {
834 BYTE Signature[256];
835} AMCOPPSignature;
836
837typedef struct _AMCOPPCommand {
838 GUID macKDI;
839 GUID guidCommandID;
840 DWORD dwSequence;
841 DWORD bSizeData;
842 BYTE CommandData[4056];
843} AMCOPPCommand, *LPAMCOPPCommand;
844
845typedef struct _AMCOPPStatusInput {
846 GUID rApp;
847 GUID guidStatusRequestID;
848 DWORD dwSequence;
849 DWORD cbSizeData;
850 BYTE StatusData[4056];
851} AMCOPPStatusInput, *LPAMCOPPStatusInput;
852
853typedef struct _AMCOPPStatusOutput {
854 GUID macKDI;
855 DWORD cbSizeData;
856 BYTE COPPStatus[4076];
857} AMCOPPStatusOutput, *LPAMCOPPStatusOutput;
858
859[
860 local,
861 object,
862 uuid(6feded3e-0ff1-4901-a2f1-43f7012c8515),
863 pointer_default(unique)
864]
865interface IAMCertifiedOutputProtection : IUnknown
866{
867 HRESULT KeyExchange (
868 [out] GUID* pRandom,
869 [out] BYTE** VarLenCertGH,
870 [out] DWORD* pdwLengthCertGH);
871
872 HRESULT SessionSequenceStart(
873 [in] AMCOPPSignature* pSig);
874
875 HRESULT ProtectionCommand(
876 [in] const AMCOPPCommand* cmd);
877
878 HRESULT ProtectionStatus(
879 [in] const AMCOPPStatusInput* pStatusInput,
880 [out] AMCOPPStatusOutput* pStatusOutput);
881};
882
883enum _AM_RENSDEREXFLAGS
884{
885 AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x01
887
888[
889 object,
890 uuid(36b73882-c2c8-11cf-8b46-00805f6cef60),
891 pointer_default(unique)
892]
893interface IFilterGraph2: IGraphBuilder
894{
895 HRESULT AddSourceFilterForMoniker(
896 [in] IMoniker *pMoniker,
897 [in] IBindCtx *pCtx,
898 [in, unique] LPCWSTR lpcwstrFilterName,
899 [out] IBaseFilter **ppFilter
900 );
901
902 HRESULT ReconnectEx
903 ( [in] IPin * ppin,
904 [in, unique] const AM_MEDIA_TYPE *pmt
905 );
906
907 HRESULT RenderEx( [in] IPin *pPinOut,
908 [in] DWORD dwFlags,
909 [in, out] DWORD *pvContext
910 );
911}
912
913[
914 object,
915 local,
916 uuid(56a868bf-0ad4-11ce-b03a-0020af0ba770),
917 pointer_default(unique)
918]
919interface IStreamBuilder : IUnknown
920{
921 HRESULT Render
922 ( [in] IPin * ppinOut,
923 [in] IGraphBuilder * pGraph
924 );
925
926 HRESULT Backout
927 ( [in] IPin * ppinOut,
928 [in] IGraphBuilder * pGraph
929 );
930}
931
932[
933 object,
934 uuid(56a868af-0ad4-11ce-b03a-0020af0ba770),
935 pointer_default(unique)
936]
937interface IDistributorNotify : IUnknown
938{
939 HRESULT Stop(void);
940 HRESULT Pause(void);
941 HRESULT Run(REFERENCE_TIME tStart);
942 HRESULT SetSyncSource([in] IReferenceClock * pClock);
943 HRESULT NotifyGraphChange(void);
944}
945
946
947/*****************************************************************************
948 * IAMStreamConfig interface
949 */
950[
951 object,
952 uuid(c6e13340-30ac-11d0-a18c-00a0c9118956),
953 pointer_default(unique)
954]
955interface IAMStreamConfig : IUnknown
956{
957 typedef struct _VIDEO_STREAM_CONFIG_CAPS {
958 GUID guid;
959 ULONG VideoStandard;
960 SIZE InputSize;
961 SIZE MinCroppingSize;
962 SIZE MaxCroppingSize;
963 int CropGranularityX;
964 int CropGranularityY;
965 int CropAlignX;
966 int CropAlignY;
967 SIZE MinOutputSize;
968 SIZE MaxOutputSize;
969 int OutputGranularityX;
970 int OutputGranularityY;
971 int StretchTapsX;
972 int StretchTapsY;
973 int ShrinkTapsX;
974 int ShrinkTapsY;
975 LONGLONG MinFrameInterval;
976 LONGLONG MaxFrameInterval;
977 LONG MinBitsPerSecond;
978 LONG MaxBitsPerSecond;
979 } VIDEO_STREAM_CONFIG_CAPS;
980
981 typedef struct _AUDIO_STREAM_CONFIG_CAPS {
982 GUID guid;
983 ULONG MinimumChannels;
984 ULONG MaximumChannels;
985 ULONG ChannelsGranularity;
986 ULONG MinimumBitsPerSample;
987 ULONG MaximumBitsPerSample;
988 ULONG BitsPerSampleGranularity;
989 ULONG MinimumSampleFrequency;
990 ULONG MaximumSampleFrequency;
991 ULONG SampleFrequencyGranularity;
992 } AUDIO_STREAM_CONFIG_CAPS;
993
994 HRESULT SetFormat( [in] AM_MEDIA_TYPE *pmt);
995 HRESULT GetFormat( [in] AM_MEDIA_TYPE **pmt);
996 HRESULT GetNumberOfCapabilities( [out] int *piCount, [out] int *piSize);
997 HRESULT GetStreamCaps( [in] int iIndex, [out] AM_MEDIA_TYPE **pmt,
998 [out] BYTE *pSCC);
999}
1000
1001
1002typedef enum tagVideoProcAmpProperty
1003{
1004 VideoProcAmp_Brightness,
1005 VideoProcAmp_Contrast,
1006 VideoProcAmp_Hue,
1007 VideoProcAmp_Saturation,
1008 VideoProcAmp_Sharpness,
1009 VideoProcAmp_Gamma,
1010 VideoProcAmp_ColorEnable,
1011 VideoProcAmp_WhiteBalance,
1012 VideoProcAmp_BacklightCompensation,
1013 VideoProcAmp_Gain
1014} VideoProcAmpProperty;
1015
1016typedef enum tagVideoProcAmpFlags
1017{
1018 VideoProcAmp_Flags_Auto = 0x0001,
1019 VideoProcAmp_Flags_Manual = 0x0002,
1020} VideoProcAmpFlags;
1021
1022/*****************************************************************************
1023 * IAMVideoProcAmp interface
1024 */
1025[
1026 object,
1027 uuid(c6e13360-30ac-11d0-a18c-00a0c9118956),
1028 pointer_default(unique)
1029]
1030interface IAMVideoProcAmp : IUnknown
1031{
1032 HRESULT GetRange( [in] LONG Property, [out] LONG *pMin, [out] LONG *pMax,
1033 [out] LONG *pSteppingDelta, [out] LONG *pDefault,
1034 [out] LONG *pCapsFlags);
1035 HRESULT Set( [in] LONG Property, [in] LONG lValue, [in] LONG Flags);
1036 HRESULT Get( [in] LONG Property, [out] LONG *lValue, [out] LONG *Flags);
1037}
1038
1039
1040[
1041 object,
1042 uuid(56a868aa-0ad4-11ce-b03a-0020af0ba770),
1043 pointer_default(unique)
1044]
1045interface IAsyncReader : IUnknown
1046{
1047 HRESULT RequestAllocator(
1048 [in] IMemAllocator* pPreferred,
1049 [in] ALLOCATOR_PROPERTIES* pProps,
1050 [out] IMemAllocator ** ppActual);
1051
1052 HRESULT Request(
1053 [in] IMediaSample* pSample,
1054 [in] DWORD_PTR dwUser);
1055
1056 HRESULT WaitForNext(
1057 [in] DWORD dwTimeout,
1058 [out] IMediaSample** ppSample,
1059 [out] DWORD_PTR * pdwUser);
1060
1061 HRESULT SyncReadAligned(
1062 [in] IMediaSample* pSample);
1063
1064 HRESULT SyncRead(
1065 [in] LONGLONG llPosition,
1066 [in] LONG lLength,
1067 [out, size_is(lLength)]
1068 BYTE* pBuffer);
1069
1070 HRESULT Length(
1071 [out] LONGLONG* pTotal,
1072 [out] LONGLONG* pAvailable);
1073
1074 HRESULT BeginFlush(void);
1075
1076 HRESULT EndFlush(void);
1077}
1078
1079
1080[
1081 object,
1082 uuid(56a868ab-0ad4-11ce-b03a-0020af0ba770),
1083 pointer_default(unique)
1084]
1085interface IGraphVersion : IUnknown
1086{
1087 HRESULT QueryVersion(LONG* pVersion);
1088}
1089
1090[
1091 object,
1092 uuid(56a868ad-0ad4-11ce-b03a-0020af0ba770),
1093 pointer_default(unique)
1094]
1095interface IResourceConsumer : IUnknown
1096{
1097 HRESULT AcquireResource(
1098 [in] LONG idResource);
1099
1100 HRESULT ReleaseResource(
1101 [in] LONG idResource);
1102}
1103
1104
1105[
1106 object,
1107 uuid(56a868ac-0ad4-11ce-b03a-0020af0ba770),
1108 pointer_default(unique)
1109]
1110interface IResourceManager : IUnknown
1111{
1112 HRESULT Register(
1113 [in] LPCWSTR pName,
1114 [in] LONG cResource,
1115 [out] LONG* plToken
1116 );
1117
1118 HRESULT RegisterGroup(
1119 [in] LPCWSTR pName,
1120 [in] LONG cResource,
1121 [in, size_is(cResource)]
1122 LONG* palTokens,
1123 [out] LONG* plToken
1124 );
1125
1126 HRESULT RequestResource(
1127 [in] LONG idResource,
1128 [in] IUnknown* pFocusObject,
1129 [in] IResourceConsumer* pConsumer
1130 );
1131
1132 HRESULT NotifyAcquire(
1133 [in] LONG idResource,
1134 [in] IResourceConsumer* pConsumer,
1135 [in] HRESULT hr);
1136
1137 HRESULT NotifyRelease(
1138 [in] LONG idResource,
1139 [in] IResourceConsumer* pConsumer,
1140 [in] BOOL bStillWant);
1141
1142 HRESULT CancelRequest(
1143 [in] LONG idResource,
1144 [in] IResourceConsumer* pConsumer);
1145
1146 HRESULT SetFocus(
1147 [in] IUnknown* pFocusObject);
1148
1149 HRESULT ReleaseFocus(
1150 [in] IUnknown* pFocusObject);
1151
1152}
1153
1154cpp_quote("#ifndef _IKsPropertySet_")
1155cpp_quote("#define _IKsPropertySet_")
1156cpp_quote("#define KSPROPERTY_SUPPORT_GET 1")
1157cpp_quote("#define KSPROPERTY_SUPPORT_SET 2")
1158
1159[
1160 object,
1161 uuid(31efac30-515c-11d0-a9aa-00aa0061be93),
1162 pointer_default(unique),
1163 local
1164]
1165interface IKsPropertySet : IUnknown
1166{
1167 HRESULT Set( [in] REFGUID guidPropSet,
1168 [in] DWORD dwPropID,
1169 [in, size_is(cbInstanceData)] LPVOID pInstanceData,
1170 [in] DWORD cbInstanceData,
1171 [in, size_is(cbPropData)] LPVOID pPropData,
1172 [in] DWORD cbPropData );
1173
1174 HRESULT Get( [in] REFGUID guidPropSet,
1175 [in] DWORD dwPropID,
1176 [in, size_is(cbInstanceData)] LPVOID pInstanceData,
1177 [in] DWORD cbInstanceData,
1178 [out, size_is(cbPropData)] LPVOID pPropData,
1179 [in] DWORD cbPropData,
1180 [out] DWORD *pcbReturned );
1181
1182 HRESULT QuerySupported( [in] REFGUID guidPropSet,
1183 [in] DWORD dwPropID,
1184 [out] DWORD *pTypeSupport);
1185}
1186cpp_quote("#endif /* _IKsPropertySet_ */")
1187
1188[
1189 local,
1190 object,
1191 uuid(6025a880-c0d5-11d0-bd4e-00a0c911ce86),
1192 pointer_default(unique)
1193]
1194interface IMediaPropertyBag : IPropertyBag
1195{
1196 typedef IMediaPropertyBag *LPMEDIAPROPERTYBAG;
1197
1198 HRESULT EnumProperty(
1199 [in] ULONG iProperty,
1200 [in, out] VARIANT *pvarPropertyName,
1201 [in, out] VARIANT *pvarPropertyValue);
1202}
1203
1204
1205[
1206 local,
1207 object,
1208 uuid(5738e040-b67f-11d0-bd4d-00a0c911ce86),
1209 pointer_default(unique)
1210]
1211interface IPersistMediaPropertyBag : IPersist
1212{
1213 HRESULT InitNew(void);
1214
1215 HRESULT Load(
1216 [in] IMediaPropertyBag *pPropBag,
1217 [in] IErrorLog *pErrorLog);
1218
1219 HRESULT Save(
1220 [in] IMediaPropertyBag *pPropBag,
1221 [in] BOOL fClearDirty,
1222 [in] BOOL fSaveAllProperties);
1223
1224 typedef IPersistMediaPropertyBag *LPPERSISTMEDIAPROPERTYBAG;
1225}
1226
1227[
1228 object,
1229 uuid(36b73883-c2c8-11cf-8b46-00805f6cef60),
1230 pointer_default(unique)
1231]
1232interface ISeekingPassThru : IUnknown
1233{
1234 HRESULT Init( [in] BOOL bSupportRendering, [in] IPin *pPin);
1235}
1236
1237enum _AM_FILTER_MISC_FLAGS
1238{
1239 AM_FILTER_MISC_FLAGS_IS_RENDERER = 0x1,
1240 AM_FILTER_MISC_FLAGS_IS_SOURCE = 0x2
1242
1243[
1244 local,
1245 object,
1246 uuid(2dd74950-a890-11d1-abe8-00a0c905f375),
1247 pointer_default(unique)
1248]
1249interface IAMFilterMiscFlags : IUnknown
1250{
1251 ULONG GetMiscFlags();
1252};
1253
1254[
1255 local,
1256 object,
1257 uuid(4995f511-9ddb-4f12-bd3b-f04611807b79),
1258 pointer_default(unique)
1259]
1260interface IAMGraphBuilderCallback : IUnknown
1261{
1262 HRESULT SelectedFilter(
1263 [in] IMoniker *pMon);
1264
1265 HRESULT CreatedFilter(
1266 [in] IBaseFilter *pFil);
1267};
1268
1269[
1270 local,
1271 object,
1272 uuid(56ED71A0-AF5F-11D0-B3F0-00AA003761C5),
1273 pointer_default(unique)
1274]
1275interface IAMBufferNegotiation : IUnknown
1276{
1277 HRESULT SuggestAllocatorProperties (
1278 [in] const ALLOCATOR_PROPERTIES *pprop);
1279
1280 HRESULT GetAllocatorProperties (
1281 [out] ALLOCATOR_PROPERTIES *pprop);
1282
1283}
1284
1285[
1286 local,
1287 object,
1288 uuid(d8d715a0-6e5e-11d0-b3f0-00aa003761c5),
1289 pointer_default(unique)
1290]
1291interface IAMVfwCaptureDialogs : IUnknown
1292{
1293 HRESULT HasDialog(
1294 [in] int dialog);
1295 HRESULT ShowDialog(
1296 [in] int dialog,
1297 [in] HWND hwnd);
1298 HRESULT SendDriverMessage(
1299 [in] int dialog,
1300 [in] int msg,
1301 [in] long data1,
1302 [in] long data2);
1303}
1304
1305#include <axextendenums.h>
1306
1307typedef enum
1308{
1309 AM_STREAM_INFO_START_DEFINED = 0x01,
1310 AM_STREAM_INFO_STOP_DEFINED = 0x02,
1311 AM_STREAM_INFO_DISCARDING = 0x04,
1312 AM_STREAM_INFO_STOP_SEND_EXTRA = 0x10
1313} AM_STREAM_INFO_FLAGS;
1314
1315typedef struct
1316{
1317 REFERENCE_TIME tStart;
1318 REFERENCE_TIME tStop;
1319 DWORD dwStartCookie;
1320 DWORD dwStopCookie;
1321 DWORD dwFlags;
1322}AM_STREAM_INFO;
1323
1324[
1325 local,
1326 object,
1327 uuid(36b73881-c2c8-11cf-8b46-00805f6cef60),
1328 pointer_default(unique)
1329]
1330interface IAMStreamControl : IUnknown
1331{
1332 HRESULT StartAt(
1333 [in] const REFERENCE_TIME *ptStart,
1334 [in] DWORD dwCookie);
1335
1336 HRESULT StopAt(
1337 [in] const REFERENCE_TIME *ptStop,
1338 [in] BOOL bSendExtra,
1339 [in] DWORD dwCookie);
1340
1341 HRESULT GetInfo(
1342 [out] AM_STREAM_INFO *pInfo);
1343}
1344
1345typedef enum tagTVAudioMode
1346{
1347 AMTVAUDIO_MODE_MONO = 0x0001,
1348 AMTVAUDIO_MODE_STEREO = 0x0002,
1349 AMTVAUDIO_MODE_LANG_A = 0x0010,
1350 AMTVAUDIO_MODE_LANG_B = 0x0020,
1351 AMTVAUDIO_MODE_LANG_C = 0x0040,
1352 AMTVAUDIO_PRESET_STEREO = 0x0200,
1353 AMTVAUDIO_PRESET_LANG_A = 0x1000,
1354 AMTVAUDIO_PRESET_LANG_B = 0x2000,
1355 AMTVAUDIO_PRESET_LANG_C = 0x4000,
1356}TVAudioMode;
const DWORD ADVISE_ALL
Definition: axextend.idl:376
const DWORD ADVISE_ALL2
Definition: axextend.idl:381
@ ADVISE_CLIPPING
Definition: axextend.idl:369
@ ADVISE_PALETTE
Definition: axextend.idl:370
@ ADVISE_DISPLAY_CHANGE
Definition: axextend.idl:373
@ ADVISE_POSITION
Definition: axextend.idl:372
@ ADVISE_NONE
Definition: axextend.idl:368
@ ADVISE_COLORKEY
Definition: axextend.idl:371
REGPINTYPES
Definition: axextend.idl:192
@ REG_PINFLAG_B_MANY
Definition: axextend.idl:218
@ REG_PINFLAG_B_RENDERER
Definition: axextend.idl:217
@ REG_PINFLAG_B_OUTPUT
Definition: axextend.idl:219
@ REG_PINFLAG_B_ZERO
Definition: axextend.idl:216
@ CK_RGB
Definition: axextend.idl:355
@ CK_NOCOLORKEY
Definition: axextend.idl:353
@ CK_INDEX
Definition: axextend.idl:354
const CLSID * clsMinorType
Definition: axextend.idl:191
enum QualityMessageType
struct tagQuality Quality
IQualityControl * PQUALITYCONTROL
Definition: axextend.idl:332
struct tagCOLORKEY COLORKEY
struct _RGNDATAHEADER RGNDATAHEADER
struct _RGNDATA RGNDATA
Definition: bufpool.h:45
CD3D10_BUFFER_DESC D3D10_BUFFER_DESC cpp_quote(" ~CD3D10_BUFFER_DESC() {}") operator const D3D10_BUFFER_DESC &() const
Definition: d3d10.idl:491
coclass PSFactoryBuffer pointer_default(unique)] interface ObjectRpcBaseTypes
Definition: dcom.idl:35
static const WCHAR Description[]
Definition: oid.c:1266
LONGLONG REFERENCE_TIME
Definition: dmusicks.h:9
#define MERIT_DO_NOT_USE
Definition: precomp.h:18
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
Definition: fltkernel.h:1801
#define local
Definition: zutil.h:30
GLdouble GLdouble GLdouble GLdouble q
Definition: gl.h:2063
GLuint in
Definition: glext.h:9616
HRESULT Skip([in] ULONG cFilters)
HRESULT Clone([out] IEnumRegFilters **ppEnum)
HRESULT Next([in] ULONG cFilters, [out] REGFILTER **apRegFilter, [out] ULONG *pcFetched)
HRESULT Reset(void)
HRESULT EnumMatchingFilters([out] IEnumMoniker **ppEnum, [in] DWORD dwFlags, [in] BOOL bExactMatch, [in] DWORD dwMerit, [in] BOOL bInputNeeded, [in] DWORD cInputTypes, [size_is(cInputTypes *2)] const GUID *pInputTypes, [in] const REGPINMEDIUM *pMedIn, [in] const CLSID *pPinCategoryIn, [in] BOOL bRender, [in] BOOL bOutputNeeded, [in] DWORD cOutputTypes, [size_is(cOutputTypes *2)] const GUID *pOutputTypes, [in] const REGPINMEDIUM *pMedOut, [in] const CLSID *pPinCategoryOut)
HRESULT RegisterFilter([in] REFCLSID clsidFilter, [in] LPCWSTR Name, [in, out] IMoniker **ppMoniker, [in] const CLSID *pclsidCategory, [in] LPCOLESTR szInstance, [in] const REGFILTER2 *prf2)
HRESULT UnregisterFilter([in] const CLSID *pclsidCategory, [in] LPCOLESTR szInstance, [in] REFCLSID Filter)
HRESULT CreateCategory([in] REFCLSID clsidCategory, [in] DWORD dwCategoryMerit, [in] LPCWSTR Description)
HRESULT OnClipChange([in] const RECT *pSourceRect, [in] const RECT *pDestinationRect, [in] const RGNDATA *pRgnData)
HRESULT OnColorKeyChange([in] const COLORKEY *pColorKey)
HRESULT OnPaletteChange([in] DWORD dwColors, [in] const PALETTEENTRY *pPalette)
HRESULT OnPositionChange([in] const RECT *pSourceRect, [in] const RECT *pDestinationRect)
HRESULT Notify([in] IBaseFilter *pSelf, [in] Quality q)
HRESULT SetSink([in] IQualityControl *piqc)
HRESULT GetICreateDevEnum([out] ICreateDevEnum **ppEnum)
HRESULT UnregisterFilter([in] CLSID Filter)
HRESULT RegisterPin([in] CLSID Filter, [in] LPCWSTR Name, [in] BOOL bRendered, [in] BOOL bOutput, [in] BOOL bZero, [in] BOOL bMany, [in] CLSID ConnectsToFilter, [in] LPCWSTR ConnectsToPin)
HRESULT UnregisterFilterInstance([in] CLSID MRId)
HRESULT RegisterPinType([in] CLSID clsFilter, [in] LPCWSTR strName, [in] CLSID clsMajorType, [in] CLSID clsSubType)
HRESULT EnumMatchingFilters([out] IEnumRegFilters **ppEnum, [in] DWORD dwMerit, [in] BOOL bInputNeeded, [in] CLSID clsInMaj, [in] CLSID clsInSub, [in] BOOL bRender, [in] BOOL bOutputNeeded, [in] CLSID clsOutMaj, [in] CLSID clsOutSub)
HRESULT RegisterFilterInstance([in] CLSID clsid, [in] LPCWSTR Name, [out] CLSID *MRId)
HRESULT RegisterFilter([in] CLSID clsid, [in] LPCWSTR Name, [in] DWORD dwMerit)
HRESULT UnregisterPin([in] CLSID Filter, [in] LPCWSTR Name)
Definition: msctf.idl:550
REFCLSID clsid
Definition: msctf.c:82
unsigned int UINT
Definition: ndis.h:50
#define DUMMYSTRUCTNAME2
Definition: ntbasedef.h:60
#define DUMMYSTRUCTNAME1
Definition: ntbasedef.h:59
#define DUMMYUNIONNAME
Definition: ntbasedef.h:32
long LONG
Definition: pedump.c:60
#define REFCLSID
Definition: guiddef.h:117
static FILE * out
Definition: regtests2xml.c:44
DWORD dwVersion
Definition: axextend.idl:236
const REGFILTERPINS * rgPins
Definition: axextend.idl:244
ULONG cPins
Definition: axextend.idl:243
DWORD dwMerit
Definition: axextend.idl:237
const REGFILTERPINS2 * rgPins2
Definition: axextend.idl:251
ULONG cPins2
Definition: axextend.idl:250
const CLSID * clsPinCategory
Definition: axextend.idl:231
const REGPINMEDIUM * lpMedium
Definition: axextend.idl:230
const REGPINTYPES * lpMediaType
Definition: axextend.idl:228
LPWSTR strName
Definition: axextend.idl:196
const CLSID * clsConnectsToFilter
Definition: axextend.idl:201
const REGPINTYPES * lpMediaType
Definition: axextend.idl:204
const WCHAR * strConnectsToPin
Definition: axextend.idl:202
UINT nMediaTypes
Definition: axextend.idl:203
CLSID Clsid
Definition: axextend.idl:81
LPWSTR Name
Definition: axextend.idl:82
CLSID clsMedium
Definition: axextend.idl:209
RGNDATAHEADER rdh
Definition: axextend.idl:399
DWORD KeyType
Definition: axextend.idl:360
COLORREF HighColorValue
Definition: axextend.idl:363
COLORREF LowColorValue
Definition: axextend.idl:362
DWORD PaletteIndex
Definition: axextend.idl:361
QualityMessageType Type
Definition: axextend.idl:326
REFERENCE_TIME Late
Definition: axextend.idl:328
LONG Proportion
Definition: axextend.idl:327
REFERENCE_TIME TimeStamp
Definition: axextend.idl:329
uint32_t ULONG
Definition: typedefs.h:59
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1176
DWORD COLORREF
Definition: windef.h:300
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185