gdi32: Clip the computed region to the DIB rectangle in PolyPolygon().
[wine.git] / include / axextend.idl
blobae891c7a53968a256e8c2496e5124b6236b99c0b
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 #if 0
20 #pragma makedep install
21 #endif
23 interface IAMAnalogVideoDecoder;
24 interface IAMAnalogVideoEncoder;
25 interface IAMAudioInputMixer;
26 interface IAMAudioRendererStats;
27 interface IAMBufferNegotiation;
28 interface IAMCameraControl;
29 interface IAMCertifiedOutputProtection;
30 interface IAMClockSlave;
31 interface IAMCopyCaptureFileProgress;
32 interface IAMCrossbar;
33 interface IAMDevMemoryAllocator;
34 interface IAMDevMemoryControl;
35 interface IAMDroppedFrames;
36 interface IAMExtDevice;
37 interface IAMExtTransport;
38 interface IAMGraphStreams;
39 interface IAMLatency;
40 interface IAMOpenProgress;
41 interface IAMOverlayFX;
42 interface IAMPhysicalPinInfo;
43 interface IAMPushSource;
44 interface IAMStreamConfig;
45 interface IAMTimecodeDisplay;
46 interface IAMTimecodeGenerator;
47 interface IAMTimecodeReader;
48 interface IAMTVTuner;
49 interface IAMVfwCaptureDialogs;
50 interface IAMVfwCompressDialogs;
51 interface IAMVideoCompression;
52 interface IAMVideoDecimationProperties;
53 interface IAMVideoProcAmp;
54 interface IAMGraphBuilderCallback;
55 interface ICaptureGraphBuilder;
56 interface ICaptureGraphBuilder2;
57 interface IConfigAviMux;
58 interface IConfigInterleaving;
59 interface IDecimateVideoImage;
60 interface IDrawVideoImage;
61 interface IEnumRegFilters;
62 interface IEnumStreamIdMap;
63 interface IFileSourceFilter;
64 interface IFileSinkFilter;
65 interface IFileSinkFilter2;
66 interface IFilterMapper;
67 interface IFilterMapper2;
68 interface IGraphBuilder;
69 interface IKsPropertySet;
70 interface IMediaEventSink;
71 interface IMpeg2Demultiplexer;
72 interface IMPEG2StreamIdMap;
73 interface IOverlay;
74 interface IOverlayNotify;
75 interface IOverlayNotify2;
76 interface IQualityControl;
77 interface ISeekingPassThru;
79 typedef struct
81 CLSID Clsid;
82 LPWSTR Name;
83 } REGFILTER;
86 object,
87 uuid(56a868a4-0ad4-11ce-b03a-0020af0ba770),
88 pointer_default(unique)
90 interface IEnumRegFilters : IUnknown
92 HRESULT Next
93 ( [in] ULONG cFilters,
94 [out] REGFILTER ** apRegFilter,
95 [out] ULONG * pcFetched
98 HRESULT Skip(
99 [in] ULONG cFilters
102 HRESULT Reset(void);
104 HRESULT Clone(
105 [out] IEnumRegFilters **ppEnum
110 typedef IEnumRegFilters *PENUMREGFILTERS;
113 object,
114 uuid(56a868a3-0ad4-11ce-b03a-0020af0ba770),
115 pointer_default(unique)
117 interface IFilterMapper : IUnknown
119 enum { MERIT_PREFERRED = 0x800000,
120 MERIT_NORMAL = 0x600000,
121 MERIT_UNLIKELY = 0x400000,
122 MERIT_DO_NOT_USE = 0x200000,
123 MERIT_SW_COMPRESSOR = 0x100000,
124 MERIT_HW_COMPRESSOR = 0x100050
127 HRESULT RegisterFilter
128 ( [in] CLSID clsid,
129 [in] LPCWSTR Name,
130 [in] DWORD dwMerit
133 HRESULT RegisterFilterInstance
134 ( [in] CLSID clsid,
135 [in] LPCWSTR Name,
136 [out] CLSID *MRId
140 HRESULT RegisterPin
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
151 HRESULT RegisterPinType
152 ( [in] CLSID clsFilter,
153 [in] LPCWSTR strName,
154 [in] CLSID clsMajorType,
155 [in] CLSID clsSubType
159 HRESULT UnregisterFilter
160 ( [in] CLSID Filter
164 HRESULT UnregisterFilterInstance
165 ( [in] CLSID MRId
169 HRESULT UnregisterPin
170 ( [in] CLSID Filter,
171 [in] LPCWSTR Name
174 HRESULT EnumMatchingFilters
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
188 typedef struct
190 const CLSID * clsMajorType;
191 const CLSID * clsMinorType;
192 } REGPINTYPES;
194 typedef struct
196 LPWSTR strName;
197 BOOL bRendered;
198 BOOL bOutput;
199 BOOL bZero;
200 BOOL bMany;
201 const CLSID * clsConnectsToFilter;
202 const WCHAR * strConnectsToPin;
203 UINT nMediaTypes;
204 const REGPINTYPES * lpMediaType;
205 } REGFILTERPINS;
207 typedef struct
209 CLSID clsMedium;
210 DWORD dw1;
211 DWORD dw2;
212 } REGPINMEDIUM;
214 enum
216 REG_PINFLAG_B_ZERO = 0x1,
217 REG_PINFLAG_B_RENDERER = 0x2,
218 REG_PINFLAG_B_MANY = 0x4,
219 REG_PINFLAG_B_OUTPUT = 0x8
223 typedef struct
225 DWORD dwFlags;
226 UINT cInstances;
227 UINT nMediaTypes;
228 [size_is(nMediaTypes)] const REGPINTYPES * lpMediaType;
229 UINT nMediums;
230 [size_is(nMediums)] const REGPINMEDIUM *lpMedium;
231 const CLSID *clsPinCategory;
232 } REGFILTERPINS2;
234 typedef struct
236 DWORD dwVersion;
237 DWORD dwMerit;
238 [switch_is(dwVersion)] [switch_type(DWORD)] union
240 [case(1)]
241 struct
243 ULONG cPins;
244 [size_is(cPins)] const REGFILTERPINS *rgPins;
247 [case(2)]
248 struct
250 ULONG cPins2;
251 [size_is(cPins2)] const REGFILTERPINS2 *rgPins2;
254 [default]
258 } REGFILTER2;
262 object,
263 uuid(b79bb0b0-33c1-11d1-abe1-00a0c905f375),
264 pointer_default(unique)
266 interface IFilterMapper2 : IUnknown
268 HRESULT CreateCategory
269 ( [in] REFCLSID clsidCategory,
270 [in] DWORD dwCategoryMerit,
271 [in] LPCWSTR Description
274 HRESULT UnregisterFilter
275 ( [in] const CLSID *pclsidCategory,
276 [in] LPCOLESTR szInstance,
277 [in] REFCLSID Filter
280 HRESULT RegisterFilter
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
289 HRESULT EnumMatchingFilters
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
309 object,
310 uuid(b79bb0b1-33c1-11d1-abe1-00a0c905f375),
311 pointer_default(unique)
313 interface IFilterMapper3 : IFilterMapper2
315 HRESULT GetICreateDevEnum( [out] ICreateDevEnum **ppEnum );
318 typedef enum tagQualityMessageType
320 Famine,
321 Flood
322 } QualityMessageType;
324 typedef struct tagQuality
326 QualityMessageType Type;
327 LONG Proportion;
328 REFERENCE_TIME Late;
329 REFERENCE_TIME TimeStamp;
330 } Quality;
332 typedef IQualityControl *PQUALITYCONTROL;
335 object,
336 uuid(56a868a5-0ad4-11ce-b03a-0020af0ba770),
337 pointer_default(unique)
339 interface IQualityControl : IUnknown
341 HRESULT Notify
342 ( [in] IBaseFilter * pSelf,
343 [in] Quality q
346 HRESULT SetSink
347 ( [in] IQualityControl * piqc
351 enum
353 CK_NOCOLORKEY = 0x0,
354 CK_INDEX = 0x1,
355 CK_RGB = 0x2
358 typedef struct tagCOLORKEY
360 DWORD KeyType;
361 DWORD PaletteIndex;
362 COLORREF LowColorValue;
363 COLORREF HighColorValue;
364 } COLORKEY;
366 enum
368 ADVISE_NONE = 0x0,
369 ADVISE_CLIPPING = 0x1,
370 ADVISE_PALETTE = 0x2,
371 ADVISE_COLORKEY = 0x4,
372 ADVISE_POSITION = 0x8,
373 ADVISE_DISPLAY_CHANGE = 0x10
376 const DWORD ADVISE_ALL = ADVISE_CLIPPING |
377 ADVISE_PALETTE |
378 ADVISE_COLORKEY |
379 ADVISE_POSITION;
381 const DWORD ADVISE_ALL2 = ADVISE_ALL |
382 ADVISE_DISPLAY_CHANGE;
384 cpp_quote("#ifndef _WINGDI_")
386 /* already defined in wingdi.h, but needed for WIDL */
388 typedef struct _RGNDATAHEADER
390 DWORD dwSize;
391 DWORD iType;
392 DWORD nCount;
393 DWORD nRgnSize;
394 RECT rcBound;
395 } RGNDATAHEADER;
397 typedef struct _RGNDATA
399 RGNDATAHEADER rdh;
400 char Buffer[1];
401 } RGNDATA;
403 cpp_quote("#endif /* _WINGDI_ */")
406 object,
407 local,
408 uuid(56a868a0-0ad4-11ce-b03a-0020af0ba770),
409 pointer_default(unique)
411 interface IOverlayNotify : IUnknown
413 HRESULT OnPaletteChange(
414 [in] DWORD dwColors,
415 [in] const PALETTEENTRY *pPalette);
417 HRESULT OnClipChange(
418 [in] const RECT *pSourceRect,
419 [in] const RECT *pDestinationRect,
420 [in] const RGNDATA *pRgnData);
422 HRESULT OnColorKeyChange([in] const COLORKEY *pColorKey);
424 HRESULT OnPositionChange([in] const RECT *pSourceRect,
425 [in] const RECT *pDestinationRect);
428 typedef IOverlayNotify *POVERLAYNOTIFY;
430 cpp_quote("#if 0")
431 typedef HANDLE HMONITOR;
432 cpp_quote("#endif /* 0 */")
435 object,
436 local,
437 uuid(680EFA10-D535-11D1-87C8-00A0C9223196),
438 pointer_default(unique)
440 interface IOverlayNotify2 : IOverlayNotify
442 HRESULT OnDisplayChange(
443 HMONITOR hMonitor);
446 typedef IOverlayNotify2 *POVERLAYNOTIFY2;
449 object,
450 local,
451 uuid(56a868a1-0ad4-11ce-b03a-0020af0ba770),
452 pointer_default(unique)
454 interface IOverlay : IUnknown
456 HRESULT GetPalette(
457 [out] DWORD *pdwColors,
458 [out] PALETTEENTRY **ppPalette);
460 HRESULT SetPalette(
461 [in] DWORD dwColors,
462 [in] PALETTEENTRY *pPalette);
464 HRESULT GetDefaultColorKey([out] COLORKEY *pColorKey);
466 HRESULT GetColorKey([out] COLORKEY *pColorKey);
468 HRESULT SetColorKey([in,out] COLORKEY *pColorKey);
470 HRESULT GetWindowHandle([out] HWND *pHwnd);
472 HRESULT GetClipList([out] RECT *pSourceRect,
473 [out] RECT *pDestinationRect,
474 [out] RGNDATA **ppRgnData);
476 HRESULT GetVideoPosition([out] RECT *pSourceRect,
477 [out] RECT *pDestinationRect);
479 HRESULT Advise(
480 [in] IOverlayNotify *pOverlayNotify,
481 [in] DWORD dwInterests);
483 HRESULT Unadvise();
486 typedef IOverlay *POVERLAY;
489 object,
490 uuid(56a868a2-0ad4-11ce-b03a-0020af0ba770),
491 pointer_default(unique)
493 interface IMediaEventSink : IUnknown
495 HRESULT Notify(
496 [in] LONG EventCode,
497 [in] LONG_PTR EventParam1,
498 [in] LONG_PTR EventParam2
502 typedef IMediaEventSink *PMEDIAEVENTSINK;
505 object,
506 uuid(56a868a6-0ad4-11ce-b03a-0020af0ba770),
507 pointer_default(unique)
509 interface IFileSourceFilter : IUnknown
511 HRESULT Load(
512 [in] LPCOLESTR pszFileName,
513 [in, unique] const AM_MEDIA_TYPE *pmt
516 HRESULT GetCurFile(
517 [out] LPOLESTR *ppszFileName,
518 [out] AM_MEDIA_TYPE *pmt
522 typedef IFileSourceFilter *PFILTERFILESOURCE;
525 object,
526 uuid(a2104830-7c70-11cf-8bce-00aa00a3f1a6),
527 pointer_default(unique)
529 interface IFileSinkFilter : IUnknown
531 HRESULT SetFileName(
532 [in] LPCOLESTR pszFileName,
533 [in, unique] const AM_MEDIA_TYPE *pmt
536 HRESULT GetCurFile(
537 [out] LPOLESTR *ppszFileName,
538 [out] AM_MEDIA_TYPE *pmt
542 typedef IFileSinkFilter *PFILTERFILESINK;
545 object,
546 uuid(00855B90-CE1B-11d0-BD4F-00A0C911CE86),
547 pointer_default(unique)
549 interface IFileSinkFilter2 : IFileSinkFilter
551 HRESULT SetMode(
552 [in] DWORD dwFlags
555 HRESULT GetMode(
556 [out] DWORD *pdwFlags
560 typedef IFileSinkFilter2 *PFILESINKFILTER2;
562 typedef enum
564 AM_FILE_OVERWRITE = 0x00000001,
565 } AM_FILESINK_FLAGS;
568 object,
569 uuid(56a868a9-0ad4-11ce-b03a-0020af0ba770),
570 pointer_default(unique)
572 interface IGraphBuilder : IFilterGraph
574 HRESULT Connect
575 ( [in] IPin * ppinOut,
576 [in] IPin * ppinIn
579 HRESULT Render
580 ( [in] IPin * ppinOut
583 HRESULT RenderFile
584 ( [in] LPCWSTR lpcwstrFile,
585 [in, unique] LPCWSTR lpcwstrPlayList
588 HRESULT AddSourceFilter
589 ( [in] LPCWSTR lpcwstrFileName,
590 [in, unique] LPCWSTR lpcwstrFilterName,
591 [out] IBaseFilter* *ppFilter
594 HRESULT SetLogFile
595 ( [in] DWORD_PTR hFile
598 HRESULT Abort();
600 HRESULT ShouldOperationContinue();
605 object,
606 uuid(bf87b6e0-8c27-11d0-b3f0-00aa003761c5),
607 pointer_default(unique)
609 interface ICaptureGraphBuilder : IUnknown {
611 HRESULT SetFiltergraph(
612 [in] IGraphBuilder *pfg);
614 HRESULT GetFiltergraph(
615 [out] IGraphBuilder **ppfg);
617 HRESULT SetOutputFileName(
618 [in] const GUID *pType,
619 [in] LPCOLESTR lpstrFile,
620 [out] IBaseFilter **ppf,
621 [out] IFileSinkFilter **ppSink);
623 [local] HRESULT FindInterface(
624 [in, unique] const GUID *pCategory,
625 [in] IBaseFilter *pf,
626 [in] REFIID riid,
627 [out] void **ppint);
629 [call_as(FindInterface)] HRESULT RemoteFindInterface(
630 [in, unique] const GUID *pCategory,
631 [in] IBaseFilter *pf,
632 [in] REFIID riid,
633 [out] IUnknown **ppint);
635 HRESULT RenderStream(
636 [in] const GUID *pCategory,
637 [in] IUnknown *pSource,
638 [in] IBaseFilter *pfCompressor,
639 [in] IBaseFilter *pfRenderer);
641 HRESULT ControlStream(
642 [in] const GUID *pCategory,
643 [in] IBaseFilter *pFilter,
644 [in] REFERENCE_TIME *pstart,
645 [in] REFERENCE_TIME *pstop,
646 [in] WORD wStartCookie,
647 [in] WORD wStopCookie);
649 HRESULT AllocCapFile(
650 [in] LPCOLESTR lpstr,
651 [in] DWORDLONG dwlSize);
653 HRESULT CopyCaptureFile(
654 [in] LPOLESTR lpwstrOld,
655 [in] LPOLESTR lpwstrNew,
656 [in] int fAllowEscAbort,
657 [in] IAMCopyCaptureFileProgress *pCallback);
661 object,
662 uuid(670d1d20-a068-11d0-b3f0-00aa003761c5),
663 pointer_default(unique)
665 interface IAMCopyCaptureFileProgress : IUnknown
667 HRESULT Progress(
668 [in] int iProgress);
672 object,
673 uuid(93E5A4E0-2D50-11d2-ABFA-00A0C9C6E38D),
674 pointer_default(unique)
676 interface ICaptureGraphBuilder2 : IUnknown
678 HRESULT SetFiltergraph(
679 [in] IGraphBuilder *pfg);
681 HRESULT GetFiltergraph(
682 [out] IGraphBuilder **ppfg);
684 HRESULT SetOutputFileName(
685 [in] const GUID *pType,
686 [in] LPCOLESTR lpstrFile,
687 [out] IBaseFilter **ppf,
688 [out] IFileSinkFilter **ppSink);
690 [local] HRESULT FindInterface(
691 [in] const GUID *pCategory,
692 [in] const GUID *pType,
693 [in] IBaseFilter *pf,
694 [in] REFIID riid,
695 [out] void **ppint);
697 [call_as(FindInterface)] HRESULT RemoteFindInterface(
698 [in] const GUID *pCategory,
699 [in] const GUID *pType,
700 [in] IBaseFilter *pf,
701 [in] REFIID riid,
702 [out] IUnknown **ppint);
704 HRESULT RenderStream(
705 [in] const GUID *pCategory,
706 [in] const GUID *pType,
707 [in] IUnknown *pSource,
708 [in] IBaseFilter *pfCompressor,
709 [in] IBaseFilter *pfRenderer);
711 HRESULT ControlStream(
712 [in] const GUID *pCategory,
713 [in] const GUID *pType,
714 [in] IBaseFilter *pFilter,
715 [in] REFERENCE_TIME *pstart,
716 [in] REFERENCE_TIME *pstop,
717 [in] WORD wStartCookie,
718 [in] WORD wStopCookie);
720 HRESULT AllocCapFile(
721 [in] LPCOLESTR lpstr,
722 [in] DWORDLONG dwlSize);
724 HRESULT CopyCaptureFile(
725 [in] LPOLESTR lpwstrOld,
726 [in] LPOLESTR lpwstrNew,
727 [in] int fAllowEscAbort,
728 [in] IAMCopyCaptureFileProgress *pCallback);
730 HRESULT FindPin(
731 [in] IUnknown *pSource,
732 [in] PIN_DIRECTION pindir,
733 [in] const GUID *pCategory,
734 [in] const GUID *pType,
735 [in] BOOL fUnconnected,
736 [in] int num,
737 [out] IPin **ppPin);
741 local,
742 object,
743 uuid(5acd6aa0-f482-11ce-8b67-00aa00a3f1a6),
744 pointer_default(unique)
746 interface IConfigAviMux : IUnknown
748 HRESULT SetMasterStream(
749 [in] LONG iStream);
751 HRESULT GetMasterStream(
752 [out] LONG *pStream);
754 HRESULT SetOutputCompatibilityIndex(
755 [in] BOOL fOldIndex);
757 HRESULT GetOutputCompatibilityIndex(
758 [out] BOOL *pfOldIndex);
762 local,
763 object,
764 uuid(bee3d220-157b-11d0-bd23-00a0c911ce86),
765 pointer_default(unique)
767 interface IConfigInterleaving : IUnknown
769 typedef enum InterleavingMode {
770 INTERLEAVE_NONE,
771 INTERLEAVE_CAPTURE,
772 INTERLEAVE_FULL,
773 INTERLEAVE_NONE_BUFFERED
774 } InterleavingMode;
776 HRESULT put_Mode(
777 [in] InterleavingMode mode);
779 HRESULT get_Mode(
780 [out] InterleavingMode *pMode);
782 HRESULT put_Interleaving(
783 [in] const REFERENCE_TIME *prtInterleave,
784 [in] const REFERENCE_TIME *prtPreroll);
786 HRESULT get_Interleaving(
787 [out] REFERENCE_TIME *prtInterleave,
788 [out] REFERENCE_TIME *prtPreroll);
792 local,
793 object,
794 uuid(9fd52741-176d-4b36-8f51-ca8f933223be),
795 pointer_default(unique)
797 interface IAMClockSlave : IUnknown
799 HRESULT SetErrorTolerance(
800 [in] DWORD dwTolerance);
802 HRESULT GetErrorTolerance(
803 [out] DWORD *pdwTolerance);
806 typedef struct _AMCOPPSignature {
807 BYTE Signature[256];
808 } AMCOPPSignature;
810 typedef struct _AMCOPPCommand {
811 GUID macKDI;
812 GUID guidCommandID;
813 DWORD dwSequence;
814 DWORD bSizeData;
815 BYTE CommandData[4056];
816 } AMCOPPCommand, *LPAMCOPPCommand;
818 typedef struct _AMCOPPStatusInput {
819 GUID rApp;
820 GUID guidStatusRequestID;
821 DWORD dwSequence;
822 DWORD cbSizeData;
823 BYTE StatusData[4056];
824 } AMCOPPStatusInput, *LPAMCOPPStatusInput;
826 typedef struct _AMCOPPStatusOutput {
827 GUID macKDI;
828 DWORD cbSizeData;
829 BYTE COPPStatus[4076];
830 } AMCOPPStatusOutput, *LPAMCOPPStatusOutput;
833 local,
834 object,
835 uuid(6feded3e-0ff1-4901-a2f1-43f7012c8515),
836 pointer_default(unique)
838 interface IAMCertifiedOutputProtection : IUnknown
840 HRESULT KeyExchange (
841 [out] GUID* pRandom,
842 [out] BYTE** VarLenCertGH,
843 [out] DWORD* pdwLengthCertGH);
845 HRESULT SessionSequenceStart(
846 [in] AMCOPPSignature* pSig);
848 HRESULT ProtectionCommand(
849 [in] const AMCOPPCommand* cmd);
851 HRESULT ProtectionStatus(
852 [in] const AMCOPPStatusInput* pStatusInput,
853 [out] AMCOPPStatusOutput* pStatusOutput);
856 enum _AM_RENSDEREXFLAGS
858 AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x01
862 object,
863 uuid(36b73882-c2c8-11cf-8b46-00805f6cef60),
864 pointer_default(unique)
866 interface IFilterGraph2: IGraphBuilder
868 HRESULT AddSourceFilterForMoniker(
869 [in] IMoniker *pMoniker,
870 [in] IBindCtx *pCtx,
871 [in, unique] LPCWSTR lpcwstrFilterName,
872 [out] IBaseFilter **ppFilter
875 HRESULT ReconnectEx
876 ( [in] IPin * ppin,
877 [in, unique] const AM_MEDIA_TYPE *pmt
880 HRESULT RenderEx( [in] IPin *pPinOut,
881 [in] DWORD dwFlags,
882 [in, out] DWORD *pvContext
887 object,
888 local,
889 uuid(56a868bf-0ad4-11ce-b03a-0020af0ba770),
890 pointer_default(unique)
892 interface IStreamBuilder : IUnknown
894 HRESULT Render
895 ( [in] IPin * ppinOut,
896 [in] IGraphBuilder * pGraph
899 HRESULT Backout
900 ( [in] IPin * ppinOut,
901 [in] IGraphBuilder * pGraph
906 /*****************************************************************************
907 * IAMStreamConfig interface
910 object,
911 uuid(c6e13340-30ac-11d0-a18c-00a0c9118956),
912 pointer_default(unique)
914 interface IAMStreamConfig : IUnknown
916 typedef struct _VIDEO_STREAM_CONFIG_CAPS {
917 GUID guid;
918 ULONG VideoStandard;
919 SIZE InputSize;
920 SIZE MinCroppingSize;
921 SIZE MaxCroppingSize;
922 int CropGranularityX;
923 int CropGranularityY;
924 int CropAlignX;
925 int CropAlignY;
926 SIZE MinOutputSize;
927 SIZE MaxOutputSize;
928 int OutputGranularityX;
929 int OutputGranularityY;
930 int StretchTapsX;
931 int StretchTapsY;
932 int ShrinkTapsX;
933 int ShrinkTapsY;
934 LONGLONG MinFrameInterval;
935 LONGLONG MaxFrameInterval;
936 LONG MinBitsPerSecond;
937 LONG MaxBitsPerSecond;
938 } VIDEO_STREAM_CONFIG_CAPS;
940 typedef struct _AUDIO_STREAM_CONFIG_CAPS {
941 GUID guid;
942 ULONG MinimumChannels;
943 ULONG MaximumChannels;
944 ULONG ChannelsGranularity;
945 ULONG MinimumBitsPerSample;
946 ULONG MaximumBitsPerSample;
947 ULONG BitsPerSampleGranularity;
948 ULONG MinimumSampleFrequency;
949 ULONG MaximumSampleFrequency;
950 ULONG SampleFrequencyGranularity;
951 } AUDIO_STREAM_CONFIG_CAPS;
953 HRESULT SetFormat( [in] AM_MEDIA_TYPE *pmt);
954 HRESULT GetFormat( [in] AM_MEDIA_TYPE **pmt);
955 HRESULT GetNumberOfCapabilities( [out] int *piCount, [out] int *piSize);
956 HRESULT GetStreamCaps( [in] int iIndex, [out] AM_MEDIA_TYPE **pmt,
957 [out] BYTE *pSCC);
961 typedef enum tagVideoProcAmpProperty
963 VideoProcAmp_Brightness,
964 VideoProcAmp_Contrast,
965 VideoProcAmp_Hue,
966 VideoProcAmp_Saturation,
967 VideoProcAmp_Sharpness,
968 VideoProcAmp_Gamma,
969 VideoProcAmp_ColorEnable,
970 VideoProcAmp_WhiteBalance,
971 VideoProcAmp_BacklightCompensation,
972 VideoProcAmp_Gain
973 } VideoProcAmpProperty;
975 typedef enum tagVideoProcAmpFlags
977 VideoProcAmp_Flags_Auto = 0x0001,
978 VideoProcAmp_Flags_Manual = 0x0002,
979 } VideoProcAmpFlags;
981 /*****************************************************************************
982 * IAMVideoProcAmp interface
985 object,
986 uuid(c6e13360-30ac-11d0-a18c-00a0c9118956),
987 pointer_default(unique)
989 interface IAMVideoProcAmp : IUnknown
991 HRESULT GetRange( [in] LONG Property, [out] LONG *pMin, [out] LONG *pMax,
992 [out] LONG *pSteppingDelta, [out] LONG *pDefault,
993 [out] LONG *pCapsFlags);
994 HRESULT Set( [in] LONG Property, [in] LONG lValue, [in] LONG Flags);
995 HRESULT Get( [in] LONG Property, [out] LONG *lValue, [out] LONG *Flags);
1000 object,
1001 uuid(56a868aa-0ad4-11ce-b03a-0020af0ba770),
1002 pointer_default(unique)
1004 interface IAsyncReader : IUnknown
1006 HRESULT RequestAllocator(
1007 [in] IMemAllocator* pPreferred,
1008 [in] ALLOCATOR_PROPERTIES* pProps,
1009 [out] IMemAllocator ** ppActual);
1011 HRESULT Request(
1012 [in] IMediaSample* pSample,
1013 [in] DWORD_PTR dwUser);
1015 HRESULT WaitForNext(
1016 [in] DWORD dwTimeout,
1017 [out] IMediaSample** ppSample,
1018 [out] DWORD_PTR * pdwUser);
1020 HRESULT SyncReadAligned(
1021 [in] IMediaSample* pSample);
1023 HRESULT SyncRead(
1024 [in] LONGLONG llPosition,
1025 [in] LONG lLength,
1026 [out, size_is(lLength)]
1027 BYTE* pBuffer);
1029 HRESULT Length(
1030 [out] LONGLONG* pTotal,
1031 [out] LONGLONG* pAvailable);
1033 HRESULT BeginFlush(void);
1035 HRESULT EndFlush(void);
1040 object,
1041 uuid(56a868ab-0ad4-11ce-b03a-0020af0ba770),
1042 pointer_default(unique)
1044 interface IGraphVersion : IUnknown
1046 HRESULT QueryVersion(LONG* pVersion);
1050 object,
1051 uuid(56a868ad-0ad4-11ce-b03a-0020af0ba770),
1052 pointer_default(unique)
1054 interface IResourceConsumer : IUnknown
1056 HRESULT AcquireResource(
1057 [in] LONG idResource);
1059 HRESULT ReleaseResource(
1060 [in] LONG idResource);
1065 object,
1066 uuid(56a868ac-0ad4-11ce-b03a-0020af0ba770),
1067 pointer_default(unique)
1069 interface IResourceManager : IUnknown
1071 HRESULT Register(
1072 [in] LPCWSTR pName,
1073 [in] LONG cResource,
1074 [out] LONG* plToken
1077 HRESULT RegisterGroup(
1078 [in] LPCWSTR pName,
1079 [in] LONG cResource,
1080 [in, size_is(cResource)]
1081 LONG* palTokens,
1082 [out] LONG* plToken
1085 HRESULT RequestResource(
1086 [in] LONG idResource,
1087 [in] IUnknown* pFocusObject,
1088 [in] IResourceConsumer* pConsumer
1091 HRESULT NotifyAcquire(
1092 [in] LONG idResource,
1093 [in] IResourceConsumer* pConsumer,
1094 [in] HRESULT hr);
1096 HRESULT NotifyRelease(
1097 [in] LONG idResource,
1098 [in] IResourceConsumer* pConsumer,
1099 [in] BOOL bStillWant);
1101 HRESULT CancelRequest(
1102 [in] LONG idResource,
1103 [in] IResourceConsumer* pConsumer);
1105 HRESULT SetFocus(
1106 [in] IUnknown* pFocusObject);
1108 HRESULT ReleaseFocus(
1109 [in] IUnknown* pFocusObject);
1113 typedef enum AM_STREAM_INFO_FLAGS
1115 AM_STREAM_INFO_START_DEFINED = 0x01,
1116 AM_STREAM_INFO_STOP_DEFINED = 0x02,
1117 AM_STREAM_INFO_DISCARDING = 0x04,
1118 AM_STREAM_INFO_STOP_SEND_EXTRA = 0x10
1119 } AM_STREAM_INFO_FLAGS;
1121 typedef struct AM_STREAM_INFO
1123 REFERENCE_TIME tStart;
1124 REFERENCE_TIME tStop;
1125 DWORD dwStartCookie;
1126 DWORD dwStopCookie;
1127 DWORD dwFlags;
1128 } AM_STREAM_INFO;
1131 local,
1132 object,
1133 uuid(36b73881-c2c8-11cf-8b46-00805f6cef60),
1134 pointer_default(unique)
1136 interface IAMStreamControl : IUnknown
1138 HRESULT StartAt(
1139 [in] const REFERENCE_TIME *ptStart,
1140 [in] DWORD dwCookie);
1142 HRESULT StopAt(
1143 [in] const REFERENCE_TIME *ptStop,
1144 [in] BOOL bSendExtra,
1145 [in] DWORD dwCookie);
1147 HRESULT GetInfo(
1148 [out] AM_STREAM_INFO *pInfo);
1151 cpp_quote("#ifndef _IKsPropertySet_")
1152 cpp_quote("#define _IKsPropertySet_")
1153 cpp_quote("#define KSPROPERTY_SUPPORT_GET 1")
1154 cpp_quote("#define KSPROPERTY_SUPPORT_SET 2")
1157 object,
1158 uuid(31efac30-515c-11d0-a9aa-00aa0061be93),
1159 pointer_default(unique),
1160 local
1162 interface IKsPropertySet : IUnknown
1164 HRESULT Set( [in] REFGUID guidPropSet,
1165 [in] DWORD dwPropID,
1166 [in, size_is(cbInstanceData)] LPVOID pInstanceData,
1167 [in] DWORD cbInstanceData,
1168 [in, size_is(cbPropData)] LPVOID pPropData,
1169 [in] DWORD cbPropData );
1171 HRESULT Get( [in] REFGUID guidPropSet,
1172 [in] DWORD dwPropID,
1173 [in, size_is(cbInstanceData)] LPVOID pInstanceData,
1174 [in] DWORD cbInstanceData,
1175 [out, size_is(cbPropData)] LPVOID pPropData,
1176 [in] DWORD cbPropData,
1177 [out] DWORD *pcbReturned );
1179 HRESULT QuerySupported( [in] REFGUID guidPropSet,
1180 [in] DWORD dwPropID,
1181 [out] DWORD *pTypeSupport);
1183 cpp_quote("#endif /* _IKsPropertySet_ */")
1186 local,
1187 object,
1188 uuid(6025a880-c0d5-11d0-bd4e-00a0c911ce86),
1189 pointer_default(unique)
1191 interface IMediaPropertyBag : IPropertyBag
1193 typedef IMediaPropertyBag *LPMEDIAPROPERTYBAG;
1195 HRESULT EnumProperty(
1196 [in] ULONG iProperty,
1197 [in, out] VARIANT *pvarPropertyName,
1198 [in, out] VARIANT *pvarPropertyValue);
1203 local,
1204 object,
1205 uuid(5738e040-b67f-11d0-bd4d-00a0c911ce86),
1206 pointer_default(unique)
1208 interface IPersistMediaPropertyBag : IPersist
1210 HRESULT InitNew(void);
1212 HRESULT Load(
1213 [in] IMediaPropertyBag *pPropBag,
1214 [in] IErrorLog *pErrorLog);
1216 HRESULT Save(
1217 [in] IMediaPropertyBag *pPropBag,
1218 [in] BOOL fClearDirty,
1219 [in] BOOL fSaveAllProperties);
1221 typedef IPersistMediaPropertyBag *LPPERSISTMEDIAPROPERTYBAG;
1225 object,
1226 uuid(36b73883-c2c8-11cf-8b46-00805f6cef60),
1227 pointer_default(unique)
1229 interface ISeekingPassThru : IUnknown
1231 HRESULT Init( [in] BOOL bSupportRendering, [in] IPin *pPin);
1234 enum _AM_FILTER_MISC_FLAGS
1236 AM_FILTER_MISC_FLAGS_IS_RENDERER = 0x1,
1237 AM_FILTER_MISC_FLAGS_IS_SOURCE = 0x2
1241 local,
1242 object,
1243 uuid(2dd74950-a890-11d1-abe8-00a0c905f375),
1244 pointer_default(unique)
1246 interface IAMFilterMiscFlags : IUnknown
1248 ULONG GetMiscFlags();
1252 local,
1253 object,
1254 uuid(4995f511-9ddb-4f12-bd3b-f04611807b79),
1255 pointer_default(unique)
1257 interface IAMGraphBuilderCallback : IUnknown
1259 HRESULT SelectedFilter(
1260 [in] IMoniker *pMon);
1262 HRESULT CreatedFilter(
1263 [in] IBaseFilter *pFil);
1267 local,
1268 object,
1269 uuid(d8d715a0-6e5e-11d0-b3f0-00aa003761c5),
1270 pointer_default(unique)
1272 interface IAMVfwCaptureDialogs : IUnknown
1274 HRESULT HasDialog(
1275 [in] int dialog);
1276 HRESULT ShowDialog(
1277 [in] int dialog,
1278 [in] HWND hwnd);
1279 HRESULT SendDriverMessage(
1280 [in] int dialog,
1281 [in] int msg,
1282 [in] long data1,
1283 [in] long data2);