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
20 #pragma makedep install
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
;
40 interface IAMOpenProgress
;
41 interface IAMOverlayFX
;
42 interface IAMPhysicalPinInfo
;
43 interface IAMPushSource
;
44 interface IAMStreamConfig
;
45 interface IAMTimecodeDisplay
;
46 interface IAMTimecodeGenerator
;
47 interface IAMTimecodeReader
;
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
;
74 interface IOverlayNotify
;
75 interface IOverlayNotify2
;
76 interface IQualityControl
;
77 interface ISeekingPassThru
;
87 uuid(56a868a4
-0ad4
-11ce
-b03a
-0020af0ba770
),
88 pointer_default(unique)
90 interface IEnumRegFilters
: IUnknown
93 ( [in] ULONG cFilters
,
94 [out] REGFILTER
** apRegFilter
,
95 [out] ULONG
* pcFetched
105 [out] IEnumRegFilters
**ppEnum
110 typedef IEnumRegFilters
*PENUMREGFILTERS
;
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
133 HRESULT RegisterFilterInstance
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
164 HRESULT UnregisterFilterInstance
169 HRESULT UnregisterPin
174 HRESULT EnumMatchingFilters
175 ( [out] IEnumRegFilters
**ppEnum
,
177 [in] BOOL bInputNeeded
,
181 [in] BOOL bOutputNeeded
,
182 [in] CLSID clsOutMaj
,
190 const CLSID
* clsMajorType
;
191 const CLSID
* clsMinorType
;
201 const CLSID
* clsConnectsToFilter
;
202 const WCHAR
* strConnectsToPin
;
204 const REGPINTYPES
* lpMediaType
;
216 REG_PINFLAG_B_ZERO
= 0x1,
217 REG_PINFLAG_B_RENDERER
= 0x2,
218 REG_PINFLAG_B_MANY
= 0x4,
219 REG_PINFLAG_B_OUTPUT
= 0x8
228 [size_is(nMediaTypes
)] const REGPINTYPES
* lpMediaType
;
230 [size_is(nMediums
)] const REGPINMEDIUM
*lpMedium
;
231 const CLSID
*clsPinCategory
;
238 [switch_is(dwVersion
)] [switch_type(DWORD
)] union
244 [size_is(cPins
)] const REGFILTERPINS
*rgPins
;
251 [size_is(cPins2
)] const REGFILTERPINS2
*rgPins2
;
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
,
280 HRESULT RegisterFilter
281 ( [in] REFCLSID clsidFilter
,
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
,
292 [in] BOOL bExactMatch
,
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
,
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
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
322 } QualityMessageType
;
324 typedef struct tagQuality
326 QualityMessageType Type
;
329 REFERENCE_TIME TimeStamp
;
332 typedef IQualityControl
*PQUALITYCONTROL
;
336 uuid(56a868a5
-0ad4
-11ce
-b03a
-0020af0ba770
),
337 pointer_default(unique)
339 interface IQualityControl
: IUnknown
342 ( [in] IBaseFilter
* pSelf
,
347 ( [in] IQualityControl
* piqc
358 typedef struct tagCOLORKEY
362 COLORREF LowColorValue
;
363 COLORREF HighColorValue
;
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 |
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
397 typedef struct _RGNDATA
403 cpp_quote
("#endif /* _WINGDI_ */")
408 uuid(56a868a0
-0ad4
-11ce
-b03a
-0020af0ba770
),
409 pointer_default(unique)
411 interface IOverlayNotify
: IUnknown
413 HRESULT OnPaletteChange
(
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
;
431 typedef HANDLE HMONITOR
;
432 cpp_quote
("#endif /* 0 */")
437 uuid(680EFA10
-D535
-11D1
-87C8
-00A0C9223196
),
438 pointer_default(unique)
440 interface IOverlayNotify2
: IOverlayNotify
442 HRESULT OnDisplayChange
(
446 typedef IOverlayNotify2
*POVERLAYNOTIFY2
;
451 uuid(56a868a1
-0ad4
-11ce
-b03a
-0020af0ba770
),
452 pointer_default(unique)
454 interface IOverlay
: IUnknown
457 [out] DWORD
*pdwColors
,
458 [out] PALETTEENTRY
**ppPalette
);
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
);
480 [in] IOverlayNotify
*pOverlayNotify
,
481 [in] DWORD dwInterests
);
486 typedef IOverlay
*POVERLAY
;
490 uuid(56a868a2
-0ad4
-11ce
-b03a
-0020af0ba770
),
491 pointer_default(unique)
493 interface IMediaEventSink
: IUnknown
497 [in] LONG_PTR EventParam1
,
498 [in] LONG_PTR EventParam2
502 typedef IMediaEventSink
*PMEDIAEVENTSINK
;
506 uuid(56a868a6
-0ad4
-11ce
-b03a
-0020af0ba770
),
507 pointer_default(unique)
509 interface IFileSourceFilter
: IUnknown
512 [in] LPCOLESTR pszFileName
,
513 [in, unique] const AM_MEDIA_TYPE
*pmt
517 [out] LPOLESTR
*ppszFileName
,
518 [out] AM_MEDIA_TYPE
*pmt
522 typedef IFileSourceFilter
*PFILTERFILESOURCE
;
526 uuid(a2104830
-7c70
-11cf
-8bce
-00aa00a3f1a6
),
527 pointer_default(unique)
529 interface IFileSinkFilter
: IUnknown
532 [in] LPCOLESTR pszFileName
,
533 [in, unique] const AM_MEDIA_TYPE
*pmt
537 [out] LPOLESTR
*ppszFileName
,
538 [out] AM_MEDIA_TYPE
*pmt
542 typedef IFileSinkFilter
*PFILTERFILESINK
;
546 uuid(00855B90
-CE1B
-11d0
-BD4F
-00A0C911CE86
),
547 pointer_default(unique)
549 interface IFileSinkFilter2
: IFileSinkFilter
556 [out] DWORD
*pdwFlags
560 typedef IFileSinkFilter2
*PFILESINKFILTER2
;
564 AM_FILE_OVERWRITE
= 0x00000001,
569 uuid(56a868a9
-0ad4
-11ce
-b03a
-0020af0ba770
),
570 pointer_default(unique)
572 interface IGraphBuilder
: IFilterGraph
575 ( [in] IPin
* ppinOut
,
580 ( [in] IPin
* ppinOut
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
595 ( [in] DWORD_PTR hFile
600 HRESULT ShouldOperationContinue
();
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
,
629 [call_as
(FindInterface
)] HRESULT RemoteFindInterface
(
630 [in, unique] const GUID
*pCategory
,
631 [in] IBaseFilter
*pf
,
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
);
662 uuid(670d1d20
-a068
-11d0
-b3f0
-00aa003761c5
),
663 pointer_default(unique)
665 interface IAMCopyCaptureFileProgress
: IUnknown
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
,
697 [call_as
(FindInterface
)] HRESULT RemoteFindInterface
(
698 [in] const GUID
*pCategory
,
699 [in] const GUID
*pType
,
700 [in] IBaseFilter
*pf
,
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
);
731 [in] IUnknown
*pSource
,
732 [in] PIN_DIRECTION pindir
,
733 [in] const GUID
*pCategory
,
734 [in] const GUID
*pType
,
735 [in] BOOL fUnconnected
,
743 uuid(5acd6aa0
-f482
-11ce
-8b67
-00aa00a3f1a6
),
744 pointer_default(unique)
746 interface IConfigAviMux
: IUnknown
748 HRESULT SetMasterStream
(
751 HRESULT GetMasterStream
(
752 [out] LONG *pStream
);
754 HRESULT SetOutputCompatibilityIndex
(
755 [in] BOOL fOldIndex
);
757 HRESULT GetOutputCompatibilityIndex
(
758 [out] BOOL
*pfOldIndex
);
764 uuid(bee3d220
-157b
-11d0
-bd23
-00a0c911ce86
),
765 pointer_default(unique)
767 interface IConfigInterleaving
: IUnknown
769 typedef enum InterleavingMode
{
773 INTERLEAVE_NONE_BUFFERED
777 [in] InterleavingMode 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
);
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
{
810 typedef struct _AMCOPPCommand
{
815 BYTE CommandData
[4056];
816 } AMCOPPCommand
, *LPAMCOPPCommand
;
818 typedef struct _AMCOPPStatusInput
{
820 GUID guidStatusRequestID
;
823 BYTE StatusData
[4056];
824 } AMCOPPStatusInput
, *LPAMCOPPStatusInput
;
826 typedef struct _AMCOPPStatusOutput
{
829 BYTE COPPStatus
[4076];
830 } AMCOPPStatusOutput
, *LPAMCOPPStatusOutput
;
835 uuid(6feded3e
-0ff1
-4901-a2f1
-43f7012c8515
),
836 pointer_default(unique)
838 interface IAMCertifiedOutputProtection
: IUnknown
840 HRESULT KeyExchange
(
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
863 uuid(36b73882
-c2c8
-11cf
-8b46
-00805f6cef60
),
864 pointer_default(unique)
866 interface IFilterGraph2
: IGraphBuilder
868 HRESULT AddSourceFilterForMoniker
(
869 [in] IMoniker
*pMoniker
,
871 [in, unique] LPCWSTR lpcwstrFilterName
,
872 [out] IBaseFilter
**ppFilter
877 [in, unique] const AM_MEDIA_TYPE
*pmt
880 HRESULT RenderEx
( [in] IPin
*pPinOut
,
882 [in, out] DWORD
*pvContext
889 uuid(56a868bf
-0ad4
-11ce
-b03a
-0020af0ba770
),
890 pointer_default(unique)
892 interface IStreamBuilder
: IUnknown
895 ( [in] IPin
* ppinOut
,
896 [in] IGraphBuilder
* pGraph
900 ( [in] IPin
* ppinOut
,
901 [in] IGraphBuilder
* pGraph
906 /*****************************************************************************
907 * IAMStreamConfig interface
911 uuid(c6e13340
-30ac
-11d0
-a18c
-00a0c9118956
),
912 pointer_default(unique)
914 interface IAMStreamConfig
: IUnknown
916 typedef struct _VIDEO_STREAM_CONFIG_CAPS
{
920 SIZE MinCroppingSize
;
921 SIZE MaxCroppingSize
;
922 int CropGranularityX
;
923 int CropGranularityY
;
928 int OutputGranularityX
;
929 int OutputGranularityY
;
934 LONGLONG MinFrameInterval
;
935 LONGLONG MaxFrameInterval
;
936 LONG MinBitsPerSecond
;
937 LONG MaxBitsPerSecond
;
938 } VIDEO_STREAM_CONFIG_CAPS
;
940 typedef struct _AUDIO_STREAM_CONFIG_CAPS
{
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
,
961 typedef enum tagVideoProcAmpProperty
963 VideoProcAmp_Brightness
,
964 VideoProcAmp_Contrast
,
966 VideoProcAmp_Saturation
,
967 VideoProcAmp_Sharpness
,
969 VideoProcAmp_ColorEnable
,
970 VideoProcAmp_WhiteBalance
,
971 VideoProcAmp_BacklightCompensation
,
973 } VideoProcAmpProperty
;
975 typedef enum tagVideoProcAmpFlags
977 VideoProcAmp_Flags_Auto
= 0x0001,
978 VideoProcAmp_Flags_Manual
= 0x0002,
981 /*****************************************************************************
982 * IAMVideoProcAmp interface
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
);
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
);
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
);
1024 [in] LONGLONG llPosition
,
1026 [out, size_is(lLength
)]
1030 [out] LONGLONG
* pTotal
,
1031 [out] LONGLONG
* pAvailable
);
1033 HRESULT BeginFlush
(void);
1035 HRESULT EndFlush
(void);
1041 uuid(56a868ab
-0ad4
-11ce
-b03a
-0020af0ba770
),
1042 pointer_default(unique)
1044 interface IGraphVersion
: IUnknown
1046 HRESULT QueryVersion
(LONG* pVersion
);
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
);
1066 uuid(56a868ac
-0ad4
-11ce
-b03a
-0020af0ba770
),
1067 pointer_default(unique)
1069 interface IResourceManager
: IUnknown
1073 [in] LONG cResource
,
1077 HRESULT RegisterGroup
(
1079 [in] LONG cResource
,
1080 [in, size_is(cResource
)]
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
,
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
);
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
;
1133 uuid(36b73881
-c2c8
-11cf
-8b46
-00805f6cef60
),
1134 pointer_default(unique)
1136 interface IAMStreamControl
: IUnknown
1139 [in] const REFERENCE_TIME
*ptStart
,
1140 [in] DWORD dwCookie
);
1143 [in] const REFERENCE_TIME
*ptStop
,
1144 [in] BOOL bSendExtra
,
1145 [in] DWORD dwCookie
);
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")
1158 uuid(31efac30
-515c
-11d0
-a9aa
-00aa0061be93
),
1159 pointer_default(unique),
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_ */")
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
);
1205 uuid(5738e040
-b67f
-11d0
-bd4d
-00a0c911ce86
),
1206 pointer_default(unique)
1208 interface IPersistMediaPropertyBag
: IPersist
1210 HRESULT InitNew
(void);
1213 [in] IMediaPropertyBag
*pPropBag
,
1214 [in] IErrorLog
*pErrorLog
);
1217 [in] IMediaPropertyBag
*pPropBag
,
1218 [in] BOOL fClearDirty
,
1219 [in] BOOL fSaveAllProperties
);
1221 typedef IPersistMediaPropertyBag
*LPPERSISTMEDIAPROPERTYBAG
;
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
1243 uuid(2dd74950
-a890
-11d1
-abe8
-00a0c905f375
),
1244 pointer_default(unique)
1246 interface IAMFilterMiscFlags
: IUnknown
1248 ULONG GetMiscFlags
();
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
);
1269 uuid(d8d715a0
-6e5e
-11d0
-b3f0
-00aa003761c5
),
1270 pointer_default(unique)
1272 interface IAMVfwCaptureDialogs
: IUnknown
1279 HRESULT SendDriverMessage
(