opengl32: Add a mechanism for managing different types of OpenGL handles.
[wine/multimedia.git] / include / axextend.idl
blobacc66a5236a0e41f396657eb32ead3c3e57e2801
1 /*
2 * Copyright (C) 2002 Robert Shearman
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.
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.
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
19 interface IAMAnalogVideoDecoder;
20 interface IAMAnalogVideoEncoder;
21 interface IAMAudioInputMixer;
22 interface IAMAudioRendererStats;
23 interface IAMBufferNegotiation;
24 interface IAMCameraControl;
25 interface IAMCopyCaptureFileProgress;
26 interface IAMCrossbar;
27 interface IAMDevMemoryAllocator;
28 interface IAMDevMemoryControl;
29 interface IAMDroppedFrames;
30 interface IAMExtDevice;
31 interface IAMExtTransport;
32 interface IAMGraphStreams;
33 interface IAMLatency;
34 interface IAMOpenProgress;
35 interface IAMOverlayFX;
36 interface IAMPhysicalPinInfo;
37 interface IAMPushSource;
38 interface IAMStreamConfig;
39 interface IAMTimecodeDisplay;
40 interface IAMTimecodeGenerator;
41 interface IAMTimecodeReader;
42 interface IAMTVTuner;
43 interface IAMVfwCaptureDialogs;
44 interface IAMVfwCompressDialogs;
45 interface IAMVideoCompression;
46 interface IAMVideoDecimationProperties;
47 interface IAMVideoProcAmp;
48 interface IAMGraphBuilderCallback;
49 interface ICaptureGraphBuilder;
50 interface ICaptureGraphBuilder2;
51 interface IConfigAviMux;
52 interface IConfigInterleaving;
53 interface IDecimateVideoImage;
54 interface IDrawVideoImage;
55 interface IEnumRegFilters;
56 interface IEnumStreamIdMap;
57 interface IFileSourceFilter;
58 interface IFileSinkFilter;
59 interface IFileSinkFilter2;
60 interface IFilterMapper;
61 interface IFilterMapper2;
62 interface IGraphBuilder;
63 interface IKsPropertySet;
64 interface IMediaEventSink;
65 interface IMpeg2Demultiplexer;
66 interface IMPEG2StreamIdMap;
67 interface IOverlay;
68 interface IOverlayNotify;
69 interface IOverlayNotify2;
70 interface IQualityControl;
71 interface ISeekingPassThru;
73 typedef struct
75 CLSID Clsid;
76 LPWSTR Name;
77 } REGFILTER;
80 object,
81 uuid(56a868a4-0ad4-11ce-b03a-0020af0ba770),
82 pointer_default(unique)
84 interface IEnumRegFilters : IUnknown
86 HRESULT Next
87 ( [in] ULONG cFilters,
88 [out] REGFILTER ** apRegFilter,
89 [out] ULONG * pcFetched
92 HRESULT Skip(
93 [in] ULONG cFilters
96 HRESULT Reset(void);
98 HRESULT Clone(
99 [out] IEnumRegFilters **ppEnum
104 typedef IEnumRegFilters *PENUMREGFILTERS;
107 object,
108 uuid(56a868a3-0ad4-11ce-b03a-0020af0ba770),
109 pointer_default(unique)
111 interface IFilterMapper : IUnknown
113 enum { MERIT_PREFERRED = 0x800000,
114 MERIT_NORMAL = 0x600000,
115 MERIT_UNLIKELY = 0x400000,
116 MERIT_DO_NOT_USE = 0x200000,
117 MERIT_SW_COMPRESSOR = 0x100000,
118 MERIT_HW_COMPRESSOR = 0x100050
121 HRESULT RegisterFilter
122 ( [in] CLSID clsid,
123 [in] LPCWSTR Name,
124 [in] DWORD dwMerit
127 HRESULT RegisterFilterInstance
128 ( [in] CLSID clsid,
129 [in] LPCWSTR Name,
130 [out] CLSID *MRId
134 HRESULT RegisterPin
135 ( [in] CLSID Filter,
136 [in] LPCWSTR Name,
137 [in] BOOL bRendered,
138 [in] BOOL bOutput,
139 [in] BOOL bZero,
140 [in] BOOL bMany,
141 [in] CLSID ConnectsToFilter,
142 [in] LPCWSTR ConnectsToPin
145 HRESULT RegisterPinType
146 ( [in] CLSID clsFilter,
147 [in] LPCWSTR strName,
148 [in] CLSID clsMajorType,
149 [in] CLSID clsSubType
153 HRESULT UnregisterFilter
154 ( [in] CLSID Filter
158 HRESULT UnregisterFilterInstance
159 ( [in] CLSID MRId
163 HRESULT UnregisterPin
164 ( [in] CLSID Filter,
165 [in] LPCWSTR Name
168 HRESULT EnumMatchingFilters
169 ( [out] IEnumRegFilters **ppEnum,
170 [in] DWORD dwMerit,
171 [in] BOOL bInputNeeded,
172 [in] CLSID clsInMaj,
173 [in] CLSID clsInSub,
174 [in] BOOL bRender,
175 [in] BOOL bOututNeeded,
176 [in] CLSID clsOutMaj,
177 [in] CLSID clsOutSub
182 typedef struct
184 const CLSID * clsMajorType;
185 const CLSID * clsMinorType;
186 } REGPINTYPES;
188 typedef struct
190 LPWSTR strName;
191 BOOL bRendered;
192 BOOL bOutput;
193 BOOL bZero;
194 BOOL bMany;
195 const CLSID * clsConnectsToFilter;
196 const WCHAR * strConnectsToPin;
197 UINT nMediaTypes;
198 const REGPINTYPES * lpMediaType;
199 } REGFILTERPINS;
201 typedef struct
203 CLSID clsMedium;
204 DWORD dw1;
205 DWORD dw2;
206 } REGPINMEDIUM;
208 enum
210 REG_PINFLAG_B_ZERO = 0x1,
211 REG_PINFLAG_B_RENDERER = 0x2,
212 REG_PINFLAG_B_MANY = 0x4,
213 REG_PINFLAG_B_OUTPUT = 0x8
217 typedef struct
219 DWORD dwFlags;
220 UINT cInstances;
221 UINT nMediaTypes;
222 [size_is(nMediaTypes)] const REGPINTYPES * lpMediaType;
223 UINT nMediums;
224 [size_is(nMediums)] const REGPINMEDIUM *lpMedium;
225 const CLSID *clsPinCategory;
226 } REGFILTERPINS2;
228 typedef struct
230 DWORD dwVersion;
231 DWORD dwMerit;
232 [switch_is(dwVersion)] [switch_type(DWORD)] union
234 [case(1)]
235 struct
237 ULONG cPins;
238 [size_is(cPins)] const REGFILTERPINS *rgPins;
241 [case(2)]
242 struct
244 ULONG cPins2;
245 [size_is(cPins2)] const REGFILTERPINS2 *rgPins2;
248 [default]
252 } REGFILTER2;
256 object,
257 uuid(b79bb0b0-33c1-11d1-abe1-00a0c905f375),
258 pointer_default(unique)
260 interface IFilterMapper2 : IUnknown
262 HRESULT CreateCategory
263 ( [in] REFCLSID clsidCategory,
264 [in] DWORD dwCategoryMerit,
265 [in] LPCWSTR Description
268 HRESULT UnregisterFilter
269 ( [in] const CLSID *pclsidCategory,
270 [in] LPCOLESTR szInstance,
271 [in] REFCLSID Filter
274 HRESULT RegisterFilter
275 ( [in] REFCLSID clsidFilter,
276 [in] LPCWSTR Name,
277 [in, out] IMoniker **ppMoniker,
278 [in] const CLSID *pclsidCategory,
279 [in] LPCOLESTR szInstance,
280 [in] const REGFILTER2 *prf2
283 HRESULT EnumMatchingFilters
284 ( [out] IEnumMoniker **ppEnum,
285 [in] DWORD dwFlags,
286 [in] BOOL bExactMatch,
287 [in] DWORD dwMerit,
288 [in] BOOL bInputNeeded,
289 [in] DWORD cInputTypes,
290 [size_is(cInputTypes*2)] const GUID *pInputTypes,
291 [in] const REGPINMEDIUM *pMedIn,
292 [in] const CLSID *pPinCategoryIn,
293 [in] BOOL bRender,
294 [in] BOOL bOutputNeeded,
295 [in] DWORD cOutputTypes,
296 [size_is(cOutputTypes*2)] const GUID *pOutputTypes,
297 [in] const REGPINMEDIUM *pMedOut,
298 [in] const CLSID *pPinCategoryOut
303 object,
304 uuid(b79bb0b1-33c1-11d1-abe1-00a0c905f375),
305 pointer_default(unique)
307 interface IFilterMapper3 : IFilterMapper2
309 HRESULT GetICreateDevEnum( [out] ICreateDevEnum **ppEnum );
312 typedef enum tagQualityMessageType
314 Famine,
315 Flood
316 } QualityMessageType;
318 typedef struct tagQuality
320 QualityMessageType Type;
321 LONG Proportion;
322 REFERENCE_TIME Late;
323 REFERENCE_TIME TimeStamp;
324 } Quality;
326 typedef IQualityControl *PQUALITYCONTROL;
329 object,
330 uuid(56a868a5-0ad4-11ce-b03a-0020af0ba770),
331 pointer_default(unique)
333 interface IQualityControl : IUnknown
335 HRESULT Notify
336 ( [in] IBaseFilter * pSelf,
337 [in] Quality q
340 HRESULT SetSink
341 ( [in] IQualityControl * piqc
345 enum
347 CK_NOCOLORKEY = 0x0,
348 CK_INDEX = 0x1,
349 CK_RGB = 0x2
352 typedef struct tagCOLORKEY
354 DWORD KeyType;
355 DWORD PaletteIndex;
356 COLORREF LowColorValue;
357 COLORREF HighColorValue;
358 } COLORKEY;
360 enum
362 ADVISE_NONE = 0x0,
363 ADVISE_CLIPPING = 0x1,
364 ADVISE_PALETTE = 0x2,
365 ADVISE_COLORKEY = 0x4,
366 ADVISE_POSITION = 0x8,
367 ADVISE_DISPLAY_CHANGE = 0x10
370 const DWORD ADVISE_ALL = ADVISE_CLIPPING |
371 ADVISE_PALETTE |
372 ADVISE_COLORKEY |
373 ADVISE_POSITION;
375 const DWORD ADVISE_ALL2 = ADVISE_ALL |
376 ADVISE_DISPLAY_CHANGE;
378 cpp_quote("#ifndef _WINGDI_")
380 /* already defined in wingdi.h, but needed for WIDL */
382 typedef struct _RGNDATAHEADER
384 DWORD dwSize;
385 DWORD iType;
386 DWORD nCount;
387 DWORD nRgnSize;
388 RECT rcBound;
389 } RGNDATAHEADER;
391 typedef struct _RGNDATA
393 RGNDATAHEADER rdh;
394 char Buffer[1];
395 } RGNDATA;
397 cpp_quote("#endif /* _WINGDI_ */")
400 object,
401 local,
402 uuid(56a868a0-0ad4-11ce-b03a-0020af0ba770),
403 pointer_default(unique)
405 interface IOverlayNotify : IUnknown
407 HRESULT OnPaletteChange(
408 [in] DWORD dwColors,
409 [in] const PALETTEENTRY *pPalette);
411 HRESULT OnClipChange(
412 [in] const RECT *pSourceRect,
413 [in] const RECT *pDestinationRect,
414 [in] const RGNDATA *pRgnData);
416 HRESULT OnColorKeyChange([in] const COLORKEY *pColorKey);
418 HRESULT OnPositionChange([in] const RECT *pSourceRect,
419 [in] const RECT *pDestinationRect);
422 typedef IOverlayNotify *POVERLAYNOTIFY;
424 cpp_quote("#if 0")
425 typedef HANDLE HMONITOR;
426 cpp_quote("#endif /* 0 */")
429 object,
430 local,
431 uuid(680EFA10-D535-11D1-87C8-00A0C9223196),
432 pointer_default(unique)
434 interface IOverlayNotify2 : IOverlayNotify
436 HRESULT OnDisplayChange(
437 HMONITOR hMonitor);
440 typedef IOverlayNotify2 *POVERLAYNOTIFY2;
443 object,
444 local,
445 uuid(56a868a1-0ad4-11ce-b03a-0020af0ba770),
446 pointer_default(unique)
448 interface IOverlay : IUnknown
450 HRESULT GetPalette(
451 [out] DWORD *pdwColors,
452 [out] PALETTEENTRY **ppPalette);
454 HRESULT SetPalette(
455 [in] DWORD dwColors,
456 [in] PALETTEENTRY *pPalette);
458 HRESULT GetDefaultColorKey([out] COLORKEY *pColorKey);
460 HRESULT GetColorKey([out] COLORKEY *pColorKey);
462 HRESULT SetColorKey([in,out] COLORKEY *pColorKey);
464 HRESULT GetWindowHandle([out] HWND *pHwnd);
466 HRESULT GetClipList([out] RECT *pSourceRect,
467 [out] RECT *pDestinationRect,
468 [out] RGNDATA **ppRgnData);
470 HRESULT GetVideoPosition([out] RECT *pSourceRect,
471 [out] RECT *pDestinationRect);
473 HRESULT Advise(
474 [in] IOverlayNotify *pOverlayNotify,
475 [in] DWORD dwInterests);
477 HRESULT Unadvise();
480 typedef IOverlay *POVERLAY;
483 object,
484 uuid(56a868a2-0ad4-11ce-b03a-0020af0ba770),
485 pointer_default(unique)
487 interface IMediaEventSink : IUnknown
489 HRESULT Notify(
490 [in] LONG EventCode,
491 [in] LONG_PTR EventParam1,
492 [in] LONG_PTR EventParam2
496 typedef IMediaEventSink *PMEDIAEVENTSINK;
499 object,
500 uuid(56a868a6-0ad4-11ce-b03a-0020af0ba770),
501 pointer_default(unique)
503 interface IFileSourceFilter : IUnknown
505 HRESULT Load(
506 [in] LPCOLESTR pszFileName,
507 [in, unique] const AM_MEDIA_TYPE *pmt
510 HRESULT GetCurFile(
511 [out] LPOLESTR *ppszFileName,
512 [out] AM_MEDIA_TYPE *pmt
516 typedef IFileSourceFilter *PFILTERFILESOURCE;
519 object,
520 uuid(a2104830-7c70-11cf-8bce-00aa00a3f1a6),
521 pointer_default(unique)
523 interface IFileSinkFilter : IUnknown
525 HRESULT SetFileName(
526 [in] LPCOLESTR pszFileName,
527 [in, unique] const AM_MEDIA_TYPE *pmt
530 HRESULT GetCurFile(
531 [out] LPOLESTR *ppszFileName,
532 [out] AM_MEDIA_TYPE *pmt
536 typedef IFileSinkFilter *PFILTERFILESINK;
539 object,
540 uuid(00855B90-CE1B-11d0-BD4F-00A0C911CE86),
541 pointer_default(unique)
543 interface IFileSinkFilter2 : IFileSinkFilter
545 HRESULT SetMode(
546 [in] DWORD dwFlags
549 HRESULT GetMode(
550 [out] DWORD *pdwFlags
554 typedef IFileSinkFilter2 *PFILESINKFILTER2;
556 typedef enum
558 AM_FILE_OVERWRITE = 0x00000001,
559 } AM_FILESINK_FLAGS;
562 object,
563 uuid(56a868a9-0ad4-11ce-b03a-0020af0ba770),
564 pointer_default(unique)
566 interface IGraphBuilder : IFilterGraph
568 HRESULT Connect
569 ( [in] IPin * ppinOut,
570 [in] IPin * ppinIn
573 HRESULT Render
574 ( [in] IPin * ppinOut
577 HRESULT RenderFile
578 ( [in] LPCWSTR lpcwstrFile,
579 [in, unique] LPCWSTR lpcwstrPlayList
582 HRESULT AddSourceFilter
583 ( [in] LPCWSTR lpcwstrFileName,
584 [in, unique] LPCWSTR lpcwstrFilterName,
585 [out] IBaseFilter* *ppFilter
588 HRESULT SetLogFile
589 ( [in] DWORD_PTR hFile
592 HRESULT Abort();
594 HRESULT ShouldOperationContinue();
599 object,
600 uuid(bf87b6e0-8c27-11d0-b3f0-00aa003761c5),
601 pointer_default(unique)
603 interface ICaptureGraphBuilder : IUnknown {
605 HRESULT SetFiltergraph(
606 [in] IGraphBuilder *pfg);
608 HRESULT GetFiltergraph(
609 [out] IGraphBuilder **ppfg);
611 HRESULT SetOutputFileName(
612 [in] const GUID *pType,
613 [in] LPCOLESTR lpstrFile,
614 [out] IBaseFilter **ppf,
615 [out] IFileSinkFilter **ppSink);
617 [local] HRESULT FindInterface(
618 [in, unique] const GUID *pCategory,
619 [in] IBaseFilter *pf,
620 [in] REFIID riid,
621 [out] void **ppint);
623 [call_as(FindInterface)] HRESULT RemoteFindInterface(
624 [in, unique] const GUID *pCategory,
625 [in] IBaseFilter *pf,
626 [in] REFIID riid,
627 [out] IUnknown **ppint);
629 HRESULT RenderStream(
630 [in] const GUID *pCategory,
631 [in] IUnknown *pSource,
632 [in] IBaseFilter *pfCompressor,
633 [in] IBaseFilter *pfRenderer);
635 HRESULT ControlStream(
636 [in] const GUID *pCategory,
637 [in] IBaseFilter *pFilter,
638 [in] REFERENCE_TIME *pstart,
639 [in] REFERENCE_TIME *pstop,
640 [in] WORD wStartCookie,
641 [in] WORD wStopCookie);
643 HRESULT AllocCapFile(
644 [in] LPCOLESTR lpstr,
645 [in] DWORDLONG dwlSize);
647 HRESULT CopyCaptureFile(
648 [in] LPOLESTR lpwstrOld,
649 [in] LPOLESTR lpwstrNew,
650 [in] int fAllowEscAbort,
651 [in] IAMCopyCaptureFileProgress *pCallback);
655 object,
656 uuid(670d1d20-a068-11d0-b3f0-00aa003761c5),
657 pointer_default(unique)
659 interface IAMCopyCaptureFileProgress : IUnknown
661 HRESULT Progress(
662 [in] int iProgress);
666 object,
667 uuid(93E5A4E0-2D50-11d2-ABFA-00A0C9C6E38D),
668 pointer_default(unique)
670 interface ICaptureGraphBuilder2 : IUnknown
672 HRESULT SetFiltergraph(
673 [in] IGraphBuilder *pfg);
675 HRESULT GetFiltergraph(
676 [out] IGraphBuilder **ppfg);
678 HRESULT SetOutputFileName(
679 [in] const GUID *pType,
680 [in] LPCOLESTR lpstrFile,
681 [out] IBaseFilter **ppf,
682 [out] IFileSinkFilter **ppSink);
684 [local] HRESULT FindInterface(
685 [in] const GUID *pCategory,
686 [in] const GUID *pType,
687 [in] IBaseFilter *pf,
688 [in] REFIID riid,
689 [out] void **ppint);
691 [call_as(FindInterface)] HRESULT RemoteFindInterface(
692 [in] const GUID *pCategory,
693 [in] const GUID *pType,
694 [in] IBaseFilter *pf,
695 [in] REFIID riid,
696 [out] IUnknown **ppint);
698 HRESULT RenderStream(
699 [in] const GUID *pCategory,
700 [in] const GUID *pType,
701 [in] IUnknown *pSource,
702 [in] IBaseFilter *pfCompressor,
703 [in] IBaseFilter *pfRenderer);
705 HRESULT ControlStream(
706 [in] const GUID *pCategory,
707 [in] const GUID *pType,
708 [in] IBaseFilter *pFilter,
709 [in] REFERENCE_TIME *pstart,
710 [in] REFERENCE_TIME *pstop,
711 [in] WORD wStartCookie,
712 [in] WORD wStopCookie);
714 HRESULT AllocCapFile(
715 [in] LPCOLESTR lpstr,
716 [in] DWORDLONG dwlSize);
718 HRESULT CopyCaptureFile(
719 [in] LPOLESTR lpwstrOld,
720 [in] LPOLESTR lpwstrNew,
721 [in] int fAllowEscAbort,
722 [in] IAMCopyCaptureFileProgress *pCallback);
724 HRESULT FindPin(
725 [in] IUnknown *pSource,
726 [in] PIN_DIRECTION pindir,
727 [in] const GUID *pCategory,
728 [in] const GUID *pType,
729 [in] BOOL fUnconnected,
730 [in] int num,
731 [out] IPin **ppPin);
734 enum _AM_RENSDEREXFLAGS
736 AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x01
740 object,
741 uuid(36b73882-c2c8-11cf-8b46-00805f6cef60),
742 pointer_default(unique)
744 interface IFilterGraph2: IGraphBuilder
746 HRESULT AddSourceFilterForMoniker(
747 [in] IMoniker *pMoniker,
748 [in] IBindCtx *pCtx,
749 [in, unique] LPCWSTR lpcwstrFilterName,
750 [out] IBaseFilter **ppFilter
753 HRESULT ReconnectEx
754 ( [in] IPin * ppin,
755 [in, unique] const AM_MEDIA_TYPE *pmt
758 HRESULT RenderEx( [in] IPin *pPinOut,
759 [in] DWORD dwFlags,
760 [in, out] DWORD *pvContext
765 object,
766 local,
767 uuid(56a868bf-0ad4-11ce-b03a-0020af0ba770),
768 pointer_default(unique)
770 interface IStreamBuilder : IUnknown
772 HRESULT Render
773 ( [in] IPin * ppinOut,
774 [in] IGraphBuilder * pGraph
777 HRESULT Backout
778 ( [in] IPin * ppinOut,
779 [in] IGraphBuilder * pGraph
784 /*****************************************************************************
785 * IAMStreamConfig interface
788 object,
789 uuid(c6e13340-30ac-11d0-a18c-00a0c9118956),
790 pointer_default(unique)
792 interface IAMStreamConfig : IUnknown
794 typedef struct _VIDEO_STREAM_CONFIG_CAPS {
795 GUID guid;
796 ULONG VideoStandard;
797 SIZE InputSize;
798 SIZE MinCroppingSize;
799 SIZE MaxCroppingSize;
800 int CropGranularityX;
801 int CropGranularityY;
802 int CropAlignX;
803 int CropAlignY;
804 SIZE MinOutputSize;
805 SIZE MaxOutputSize;
806 int OutputGranularityX;
807 int OutputGranularityY;
808 int StretchTapsX;
809 int StretchTapsY;
810 int ShrinkTapsX;
811 int ShrinkTapsY;
812 LONGLONG MinFrameInterval;
813 LONGLONG MaxFrameInterval;
814 LONG MinBitsPerSecond;
815 LONG MaxBitsPerSecond;
816 } VIDEO_STREAM_CONFIG_CAPS;
818 typedef struct _AUDIO_STREAM_CONFIG_CAPS {
819 GUID guid;
820 ULONG MinimumChannels;
821 ULONG MaximumChannels;
822 ULONG ChannelsGranularity;
823 ULONG MinimumBitsPerSample;
824 ULONG MaximumBitsPerSample;
825 ULONG BitsPerSampleGranularity;
826 ULONG MinimumSampleFrequency;
827 ULONG MaximumSampleFrequency;
828 ULONG SampleFrequencyGranularity;
829 } AUDIO_STREAM_CONFIG_CAPS;
831 HRESULT SetFormat( [in] AM_MEDIA_TYPE *pmt);
832 HRESULT GetFormat( [in] AM_MEDIA_TYPE **pmt);
833 HRESULT GetNumberOfCapabilities( [out] int *piCount, [out] int *piSize);
834 HRESULT GetStreamCaps( [in] int iIndex, [out] AM_MEDIA_TYPE **pmt,
835 [out] BYTE *pSCC);
839 typedef enum tagVideoProcAmpProperty
841 VideoProcAmp_Brightness,
842 VideoProcAmp_Contrast,
843 VideoProcAmp_Hue,
844 VideoProcAmp_Saturation,
845 VideoProcAmp_Sharpness,
846 VideoProcAmp_Gamma,
847 VideoProcAmp_ColorEnable,
848 VideoProcAmp_WhiteBalance,
849 VideoProcAmp_BacklightCompensation,
850 VideoProcAmp_Gain
851 } VideoProcAmpProperty;
853 typedef enum tagVideoProcAmpFlags
855 VideoProcAmp_Flags_Auto = 0x0001,
856 VideoProcAmp_Flags_Manual = 0x0002,
857 } VideoProcAmpFlags;
859 /*****************************************************************************
860 * IAMVideoProcAmp interface
863 object,
864 uuid(c6e13360-30ac-11d0-a18c-00a0c9118956),
865 pointer_default(unique)
867 interface IAMVideoProcAmp : IUnknown
869 HRESULT GetRange( [in] LONG Property, [out] LONG *pMin, [out] LONG *pMax,
870 [out] LONG *pSteppingDelta, [out] LONG *pDefault,
871 [out] LONG *pCapsFlags);
872 HRESULT Set( [in] LONG Property, [in] LONG lValue, [in] LONG Flags);
873 HRESULT Get( [in] LONG Property, [out] LONG *lValue, [out] LONG *Flags);
878 object,
879 uuid(56a868aa-0ad4-11ce-b03a-0020af0ba770),
880 pointer_default(unique)
882 interface IAsyncReader : IUnknown
884 HRESULT RequestAllocator(
885 [in] IMemAllocator* pPreferred,
886 [in] ALLOCATOR_PROPERTIES* pProps,
887 [out] IMemAllocator ** ppActual);
889 HRESULT Request(
890 [in] IMediaSample* pSample,
891 [in] DWORD_PTR dwUser);
893 HRESULT WaitForNext(
894 [in] DWORD dwTimeout,
895 [out] IMediaSample** ppSample,
896 [out] DWORD_PTR * pdwUser);
898 HRESULT SyncReadAligned(
899 [in] IMediaSample* pSample);
901 HRESULT SyncRead(
902 [in] LONGLONG llPosition,
903 [in] LONG lLength,
904 [out, size_is(lLength)]
905 BYTE* pBuffer);
907 HRESULT Length(
908 [out] LONGLONG* pTotal,
909 [out] LONGLONG* pAvailable);
911 HRESULT BeginFlush(void);
913 HRESULT EndFlush(void);
918 object,
919 uuid(56a868ab-0ad4-11ce-b03a-0020af0ba770),
920 pointer_default(unique)
922 interface IGraphVersion : IUnknown
924 HRESULT QueryVersion(LONG* pVersion);
928 object,
929 uuid(56a868ad-0ad4-11ce-b03a-0020af0ba770),
930 pointer_default(unique)
932 interface IResourceConsumer : IUnknown
934 HRESULT AcquireResource(
935 [in] LONG idResource);
937 HRESULT ReleaseResource(
938 [in] LONG idResource);
943 object,
944 uuid(56a868ac-0ad4-11ce-b03a-0020af0ba770),
945 pointer_default(unique)
947 interface IResourceManager : IUnknown
949 HRESULT Register(
950 [in] LPCWSTR pName,
951 [in] LONG cResource,
952 [out] LONG* plToken
955 HRESULT RegisterGroup(
956 [in] LPCWSTR pName,
957 [in] LONG cResource,
958 [in, size_is(cResource)]
959 LONG* palTokens,
960 [out] LONG* plToken
963 HRESULT RequestResource(
964 [in] LONG idResource,
965 [in] IUnknown* pFocusObject,
966 [in] IResourceConsumer* pConsumer
969 HRESULT NotifyAcquire(
970 [in] LONG idResource,
971 [in] IResourceConsumer* pConsumer,
972 [in] HRESULT hr);
974 HRESULT NotifyRelease(
975 [in] LONG idResource,
976 [in] IResourceConsumer* pConsumer,
977 [in] BOOL bStillWant);
979 HRESULT CancelRequest(
980 [in] LONG idResource,
981 [in] IResourceConsumer* pConsumer);
983 HRESULT SetFocus(
984 [in] IUnknown* pFocusObject);
986 HRESULT ReleaseFocus(
987 [in] IUnknown* pFocusObject);
991 cpp_quote("#ifndef _IKsPropertySet_")
992 cpp_quote("#define _IKsPropertySet_")
993 cpp_quote("#define KSPROPERTY_SUPPORT_GET 1")
994 cpp_quote("#define KSPROPERTY_SUPPORT_SET 2")
997 object,
998 uuid(31efac30-515c-11d0-a9aa-00aa0061be93),
999 pointer_default(unique),
1000 local
1002 interface IKsPropertySet : IUnknown
1004 HRESULT Set( [in] REFGUID guidPropSet,
1005 [in] DWORD dwPropID,
1006 [in, size_is(cbInstanceData)] LPVOID pInstanceData,
1007 [in] DWORD cbInstanceData,
1008 [in, size_is(cbPropData)] LPVOID pPropData,
1009 [in] DWORD cbPropData );
1011 HRESULT Get( [in] REFGUID guidPropSet,
1012 [in] DWORD dwPropID,
1013 [in, size_is(cbInstanceData)] LPVOID pInstanceData,
1014 [in] DWORD cbInstanceData,
1015 [out, size_is(cbPropData)] LPVOID pPropData,
1016 [in] DWORD cbPropData,
1017 [out] DWORD *pcbReturned );
1019 HRESULT QuerySupported( [in] REFGUID guidPropSet,
1020 [in] DWORD dwPropID,
1021 [out] DWORD *pTypeSupport);
1023 cpp_quote("#endif /* _IKsPropertySet_ */")
1026 object,
1027 uuid(36b73883-c2c8-11cf-8b46-00805f6cef60),
1028 pointer_default(unique)
1030 interface ISeekingPassThru : IUnknown
1032 HRESULT Init( [in] BOOL bSupportRendering, [in] IPin *pPin);
1035 enum _AM_FILTER_MISC_FLAGS
1037 AM_FILTER_MISC_FLAGS_IS_RENDERER = 0x1,
1038 AM_FILTER_MISC_FLAGS_IS_SOURCE = 0x2
1042 local,
1043 object,
1044 uuid(2dd74950-a890-11d1-abe8-00a0c905f375),
1045 pointer_default(unique)
1047 interface IAMFilterMiscFlags : IUnknown
1049 ULONG GetMiscFlags();
1053 local,
1054 object,
1055 uuid(4995f511-9ddb-4f12-bd3b-f04611807b79),
1056 pointer_default(unique)
1058 interface IAMGraphBuilderCallback : IUnknown
1060 HRESULT SelectedFilter(
1061 [in] IMoniker *pMon);
1063 HRESULT CreatedFilter(
1064 [in] IBaseFilter *pFil);