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 IAMCertifiedOutputProtection
;
26 interface IAMClockSlave
;
27 interface IAMCopyCaptureFileProgress
;
28 interface IAMCrossbar
;
29 interface IAMDevMemoryAllocator
;
30 interface IAMDevMemoryControl
;
31 interface IAMDroppedFrames
;
32 interface IAMExtDevice
;
33 interface IAMExtTransport
;
34 interface IAMGraphStreams
;
36 interface IAMOpenProgress
;
37 interface IAMOverlayFX
;
38 interface IAMPhysicalPinInfo
;
39 interface IAMPushSource
;
40 interface IAMStreamConfig
;
41 interface IAMTimecodeDisplay
;
42 interface IAMTimecodeGenerator
;
43 interface IAMTimecodeReader
;
45 interface IAMVfwCaptureDialogs
;
46 interface IAMVfwCompressDialogs
;
47 interface IAMVideoCompression
;
48 interface IAMVideoDecimationProperties
;
49 interface IAMVideoProcAmp
;
50 interface IAMGraphBuilderCallback
;
51 interface ICaptureGraphBuilder
;
52 interface ICaptureGraphBuilder2
;
53 interface IConfigAviMux
;
54 interface IConfigInterleaving
;
55 interface IDecimateVideoImage
;
56 interface IDrawVideoImage
;
57 interface IEnumRegFilters
;
58 interface IEnumStreamIdMap
;
59 interface IFileSourceFilter
;
60 interface IFileSinkFilter
;
61 interface IFileSinkFilter2
;
62 interface IFilterMapper
;
63 interface IFilterMapper2
;
64 interface IGraphBuilder
;
65 interface IKsPropertySet
;
66 interface IMediaEventSink
;
67 interface IMpeg2Demultiplexer
;
68 interface IMPEG2StreamIdMap
;
70 interface IOverlayNotify
;
71 interface IOverlayNotify2
;
72 interface IQualityControl
;
73 interface ISeekingPassThru
;
83 uuid(56a868a4
-0ad4
-11ce
-b03a
-0020af0ba770
),
84 pointer_default(unique)
86 interface IEnumRegFilters
: IUnknown
89 ( [in] ULONG cFilters
,
90 [out] REGFILTER
** apRegFilter
,
91 [out] ULONG
* pcFetched
101 [out] IEnumRegFilters
**ppEnum
106 typedef IEnumRegFilters
*PENUMREGFILTERS
;
110 uuid(56a868a3
-0ad4
-11ce
-b03a
-0020af0ba770
),
111 pointer_default(unique)
113 interface IFilterMapper
: IUnknown
115 enum { MERIT_PREFERRED
= 0x800000,
116 MERIT_NORMAL
= 0x600000,
117 MERIT_UNLIKELY
= 0x400000,
118 MERIT_DO_NOT_USE
= 0x200000,
119 MERIT_SW_COMPRESSOR
= 0x100000,
120 MERIT_HW_COMPRESSOR
= 0x100050
123 HRESULT RegisterFilter
129 HRESULT RegisterFilterInstance
143 [in] CLSID ConnectsToFilter
,
144 [in] LPCWSTR ConnectsToPin
147 HRESULT RegisterPinType
148 ( [in] CLSID clsFilter
,
149 [in] LPCWSTR strName
,
150 [in] CLSID clsMajorType
,
151 [in] CLSID clsSubType
155 HRESULT UnregisterFilter
160 HRESULT UnregisterFilterInstance
165 HRESULT UnregisterPin
170 HRESULT EnumMatchingFilters
171 ( [out] IEnumRegFilters
**ppEnum
,
173 [in] BOOL bInputNeeded
,
177 [in] BOOL bOututNeeded
,
178 [in] CLSID clsOutMaj
,
186 const CLSID
* clsMajorType
;
187 const CLSID
* clsMinorType
;
197 const CLSID
* clsConnectsToFilter
;
198 const WCHAR
* strConnectsToPin
;
200 const REGPINTYPES
* lpMediaType
;
212 REG_PINFLAG_B_ZERO
= 0x1,
213 REG_PINFLAG_B_RENDERER
= 0x2,
214 REG_PINFLAG_B_MANY
= 0x4,
215 REG_PINFLAG_B_OUTPUT
= 0x8
224 [size_is(nMediaTypes
)] const REGPINTYPES
* lpMediaType
;
226 [size_is(nMediums
)] const REGPINMEDIUM
*lpMedium
;
227 const CLSID
*clsPinCategory
;
234 [switch_is(dwVersion
)] [switch_type(DWORD
)] union
240 [size_is(cPins
)] const REGFILTERPINS
*rgPins
;
247 [size_is(cPins2
)] const REGFILTERPINS2
*rgPins2
;
259 uuid(b79bb0b0
-33c1
-11d1
-abe1
-00a0c905f375
),
260 pointer_default(unique)
262 interface IFilterMapper2
: IUnknown
264 HRESULT CreateCategory
265 ( [in] REFCLSID clsidCategory
,
266 [in] DWORD dwCategoryMerit
,
267 [in] LPCWSTR Description
270 HRESULT UnregisterFilter
271 ( [in] const CLSID
*pclsidCategory
,
272 [in] LPCOLESTR szInstance
,
276 HRESULT RegisterFilter
277 ( [in] REFCLSID clsidFilter
,
279 [in, out] IMoniker
**ppMoniker
,
280 [in] const CLSID
*pclsidCategory
,
281 [in] LPCOLESTR szInstance
,
282 [in] const REGFILTER2
*prf2
285 HRESULT EnumMatchingFilters
286 ( [out] IEnumMoniker
**ppEnum
,
288 [in] BOOL bExactMatch
,
290 [in] BOOL bInputNeeded
,
291 [in] DWORD cInputTypes
,
292 [size_is(cInputTypes
*2)] const GUID
*pInputTypes
,
293 [in] const REGPINMEDIUM
*pMedIn
,
294 [in] const CLSID
*pPinCategoryIn
,
296 [in] BOOL bOutputNeeded
,
297 [in] DWORD cOutputTypes
,
298 [size_is(cOutputTypes
*2)] const GUID
*pOutputTypes
,
299 [in] const REGPINMEDIUM
*pMedOut
,
300 [in] const CLSID
*pPinCategoryOut
306 uuid(b79bb0b1
-33c1
-11d1
-abe1
-00a0c905f375
),
307 pointer_default(unique)
309 interface IFilterMapper3
: IFilterMapper2
311 HRESULT GetICreateDevEnum
( [out] ICreateDevEnum
**ppEnum
);
314 typedef enum tagQualityMessageType
318 } QualityMessageType
;
320 typedef struct tagQuality
322 QualityMessageType Type
;
325 REFERENCE_TIME TimeStamp
;
328 typedef IQualityControl
*PQUALITYCONTROL
;
332 uuid(56a868a5
-0ad4
-11ce
-b03a
-0020af0ba770
),
333 pointer_default(unique)
335 interface IQualityControl
: IUnknown
338 ( [in] IBaseFilter
* pSelf
,
343 ( [in] IQualityControl
* piqc
354 typedef struct tagCOLORKEY
358 COLORREF LowColorValue
;
359 COLORREF HighColorValue
;
365 ADVISE_CLIPPING
= 0x1,
366 ADVISE_PALETTE
= 0x2,
367 ADVISE_COLORKEY
= 0x4,
368 ADVISE_POSITION
= 0x8,
369 ADVISE_DISPLAY_CHANGE
= 0x10
372 const DWORD ADVISE_ALL
= ADVISE_CLIPPING |
377 const DWORD ADVISE_ALL2
= ADVISE_ALL |
378 ADVISE_DISPLAY_CHANGE
;
380 cpp_quote
("#ifndef _WINGDI_")
382 /* already defined in wingdi.h, but needed for WIDL */
384 typedef struct _RGNDATAHEADER
393 typedef struct _RGNDATA
399 cpp_quote
("#endif /* _WINGDI_ */")
404 uuid(56a868a0
-0ad4
-11ce
-b03a
-0020af0ba770
),
405 pointer_default(unique)
407 interface IOverlayNotify
: IUnknown
409 HRESULT OnPaletteChange
(
411 [in] const PALETTEENTRY
*pPalette
);
413 HRESULT OnClipChange
(
414 [in] const RECT
*pSourceRect
,
415 [in] const RECT
*pDestinationRect
,
416 [in] const RGNDATA
*pRgnData
);
418 HRESULT OnColorKeyChange
([in] const COLORKEY
*pColorKey
);
420 HRESULT OnPositionChange
([in] const RECT
*pSourceRect
,
421 [in] const RECT
*pDestinationRect
);
424 typedef IOverlayNotify
*POVERLAYNOTIFY
;
427 typedef HANDLE HMONITOR
;
428 cpp_quote
("#endif /* 0 */")
433 uuid(680EFA10
-D535
-11D1
-87C8
-00A0C9223196
),
434 pointer_default(unique)
436 interface IOverlayNotify2
: IOverlayNotify
438 HRESULT OnDisplayChange
(
442 typedef IOverlayNotify2
*POVERLAYNOTIFY2
;
447 uuid(56a868a1
-0ad4
-11ce
-b03a
-0020af0ba770
),
448 pointer_default(unique)
450 interface IOverlay
: IUnknown
453 [out] DWORD
*pdwColors
,
454 [out] PALETTEENTRY
**ppPalette
);
458 [in] PALETTEENTRY
*pPalette
);
460 HRESULT GetDefaultColorKey
([out] COLORKEY
*pColorKey
);
462 HRESULT GetColorKey
([out] COLORKEY
*pColorKey
);
464 HRESULT SetColorKey
([in,out] COLORKEY
*pColorKey
);
466 HRESULT GetWindowHandle
([out] HWND
*pHwnd
);
468 HRESULT GetClipList
([out] RECT
*pSourceRect
,
469 [out] RECT
*pDestinationRect
,
470 [out] RGNDATA
**ppRgnData
);
472 HRESULT GetVideoPosition
([out] RECT
*pSourceRect
,
473 [out] RECT
*pDestinationRect
);
476 [in] IOverlayNotify
*pOverlayNotify
,
477 [in] DWORD dwInterests
);
482 typedef IOverlay
*POVERLAY
;
486 uuid(56a868a2
-0ad4
-11ce
-b03a
-0020af0ba770
),
487 pointer_default(unique)
489 interface IMediaEventSink
: IUnknown
493 [in] LONG_PTR EventParam1
,
494 [in] LONG_PTR EventParam2
498 typedef IMediaEventSink
*PMEDIAEVENTSINK
;
502 uuid(56a868a6
-0ad4
-11ce
-b03a
-0020af0ba770
),
503 pointer_default(unique)
505 interface IFileSourceFilter
: IUnknown
508 [in] LPCOLESTR pszFileName
,
509 [in, unique] const AM_MEDIA_TYPE
*pmt
513 [out] LPOLESTR
*ppszFileName
,
514 [out] AM_MEDIA_TYPE
*pmt
518 typedef IFileSourceFilter
*PFILTERFILESOURCE
;
522 uuid(a2104830
-7c70
-11cf
-8bce
-00aa00a3f1a6
),
523 pointer_default(unique)
525 interface IFileSinkFilter
: IUnknown
528 [in] LPCOLESTR pszFileName
,
529 [in, unique] const AM_MEDIA_TYPE
*pmt
533 [out] LPOLESTR
*ppszFileName
,
534 [out] AM_MEDIA_TYPE
*pmt
538 typedef IFileSinkFilter
*PFILTERFILESINK
;
542 uuid(00855B90
-CE1B
-11d0
-BD4F
-00A0C911CE86
),
543 pointer_default(unique)
545 interface IFileSinkFilter2
: IFileSinkFilter
552 [out] DWORD
*pdwFlags
556 typedef IFileSinkFilter2
*PFILESINKFILTER2
;
560 AM_FILE_OVERWRITE
= 0x00000001,
565 uuid(56a868a9
-0ad4
-11ce
-b03a
-0020af0ba770
),
566 pointer_default(unique)
568 interface IGraphBuilder
: IFilterGraph
571 ( [in] IPin
* ppinOut
,
576 ( [in] IPin
* ppinOut
580 ( [in] LPCWSTR lpcwstrFile
,
581 [in, unique] LPCWSTR lpcwstrPlayList
584 HRESULT AddSourceFilter
585 ( [in] LPCWSTR lpcwstrFileName
,
586 [in, unique] LPCWSTR lpcwstrFilterName
,
587 [out] IBaseFilter
* *ppFilter
591 ( [in] DWORD_PTR hFile
596 HRESULT ShouldOperationContinue
();
602 uuid(bf87b6e0
-8c27
-11d0
-b3f0
-00aa003761c5
),
603 pointer_default(unique)
605 interface ICaptureGraphBuilder
: IUnknown
{
607 HRESULT SetFiltergraph
(
608 [in] IGraphBuilder
*pfg
);
610 HRESULT GetFiltergraph
(
611 [out] IGraphBuilder
**ppfg
);
613 HRESULT SetOutputFileName
(
614 [in] const GUID
*pType
,
615 [in] LPCOLESTR lpstrFile
,
616 [out] IBaseFilter
**ppf
,
617 [out] IFileSinkFilter
**ppSink
);
619 [local] HRESULT FindInterface
(
620 [in, unique] const GUID
*pCategory
,
621 [in] IBaseFilter
*pf
,
625 [call_as
(FindInterface
)] HRESULT RemoteFindInterface
(
626 [in, unique] const GUID
*pCategory
,
627 [in] IBaseFilter
*pf
,
629 [out] IUnknown
**ppint
);
631 HRESULT RenderStream
(
632 [in] const GUID
*pCategory
,
633 [in] IUnknown
*pSource
,
634 [in] IBaseFilter
*pfCompressor
,
635 [in] IBaseFilter
*pfRenderer
);
637 HRESULT ControlStream
(
638 [in] const GUID
*pCategory
,
639 [in] IBaseFilter
*pFilter
,
640 [in] REFERENCE_TIME
*pstart
,
641 [in] REFERENCE_TIME
*pstop
,
642 [in] WORD wStartCookie
,
643 [in] WORD wStopCookie
);
645 HRESULT AllocCapFile
(
646 [in] LPCOLESTR lpstr
,
647 [in] DWORDLONG dwlSize
);
649 HRESULT CopyCaptureFile
(
650 [in] LPOLESTR lpwstrOld
,
651 [in] LPOLESTR lpwstrNew
,
652 [in] int fAllowEscAbort
,
653 [in] IAMCopyCaptureFileProgress
*pCallback
);
658 uuid(670d1d20
-a068
-11d0
-b3f0
-00aa003761c5
),
659 pointer_default(unique)
661 interface IAMCopyCaptureFileProgress
: IUnknown
669 uuid(93E5A4E0
-2D50
-11d2
-ABFA
-00A0C9C6E38D
),
670 pointer_default(unique)
672 interface ICaptureGraphBuilder2
: IUnknown
674 HRESULT SetFiltergraph
(
675 [in] IGraphBuilder
*pfg
);
677 HRESULT GetFiltergraph
(
678 [out] IGraphBuilder
**ppfg
);
680 HRESULT SetOutputFileName
(
681 [in] const GUID
*pType
,
682 [in] LPCOLESTR lpstrFile
,
683 [out] IBaseFilter
**ppf
,
684 [out] IFileSinkFilter
**ppSink
);
686 [local] HRESULT FindInterface
(
687 [in] const GUID
*pCategory
,
688 [in] const GUID
*pType
,
689 [in] IBaseFilter
*pf
,
693 [call_as
(FindInterface
)] HRESULT RemoteFindInterface
(
694 [in] const GUID
*pCategory
,
695 [in] const GUID
*pType
,
696 [in] IBaseFilter
*pf
,
698 [out] IUnknown
**ppint
);
700 HRESULT RenderStream
(
701 [in] const GUID
*pCategory
,
702 [in] const GUID
*pType
,
703 [in] IUnknown
*pSource
,
704 [in] IBaseFilter
*pfCompressor
,
705 [in] IBaseFilter
*pfRenderer
);
707 HRESULT ControlStream
(
708 [in] const GUID
*pCategory
,
709 [in] const GUID
*pType
,
710 [in] IBaseFilter
*pFilter
,
711 [in] REFERENCE_TIME
*pstart
,
712 [in] REFERENCE_TIME
*pstop
,
713 [in] WORD wStartCookie
,
714 [in] WORD wStopCookie
);
716 HRESULT AllocCapFile
(
717 [in] LPCOLESTR lpstr
,
718 [in] DWORDLONG dwlSize
);
720 HRESULT CopyCaptureFile
(
721 [in] LPOLESTR lpwstrOld
,
722 [in] LPOLESTR lpwstrNew
,
723 [in] int fAllowEscAbort
,
724 [in] IAMCopyCaptureFileProgress
*pCallback
);
727 [in] IUnknown
*pSource
,
728 [in] PIN_DIRECTION pindir
,
729 [in] const GUID
*pCategory
,
730 [in] const GUID
*pType
,
731 [in] BOOL fUnconnected
,
739 uuid(9fd52741
-176d
-4b36
-8f51
-ca8f933223be
),
740 pointer_default(unique)
742 interface IAMClockSlave
: IUnknown
744 HRESULT SetErrorTolerance
(
745 [in] DWORD dwTolerance
);
747 HRESULT GetErrorTolerance
(
748 [out] DWORD
*pdwTolerance
);
751 typedef struct _AMCOPPSignature
{
755 typedef struct _AMCOPPCommand
{
760 BYTE CommandData
[4056];
761 } AMCOPPCommand
, *LPAMCOPPCommand
;
763 typedef struct _AMCOPPStatusInput
{
765 GUID guidStatusRequestID
;
768 BYTE StatusData
[4056];
769 } AMCOPPStatusInput
, *LPAMCOPPStatusInput
;
771 typedef struct _AMCOPPStatusOutput
{
774 BYTE COPPStatus
[4076];
775 } AMCOPPStatusOutput
, *LPAMCOPPStatusOutput
;
780 uuid(6feded3e
-0ff1
-4901-a2f1
-43f7012c8515
),
781 pointer_default(unique)
783 interface IAMCertifiedOutputProtection
: IUnknown
785 HRESULT KeyExchange
(
787 [out] BYTE** VarLenCertGH
,
788 [out] DWORD
* pdwLengthCertGH
);
790 HRESULT SessionSequenceStart
(
791 [in] AMCOPPSignature
* pSig
);
793 HRESULT ProtectionCommand
(
794 [in] const AMCOPPCommand
* cmd
);
796 HRESULT ProtectionStatus
(
797 [in] const AMCOPPStatusInput
* pStatusInput
,
798 [out] AMCOPPStatusOutput
* pStatusOutput
);
801 enum _AM_RENSDEREXFLAGS
803 AM_RENDEREX_RENDERTOEXISTINGRENDERERS
= 0x01
808 uuid(36b73882
-c2c8
-11cf
-8b46
-00805f6cef60
),
809 pointer_default(unique)
811 interface IFilterGraph2
: IGraphBuilder
813 HRESULT AddSourceFilterForMoniker
(
814 [in] IMoniker
*pMoniker
,
816 [in, unique] LPCWSTR lpcwstrFilterName
,
817 [out] IBaseFilter
**ppFilter
822 [in, unique] const AM_MEDIA_TYPE
*pmt
825 HRESULT RenderEx
( [in] IPin
*pPinOut
,
827 [in, out] DWORD
*pvContext
834 uuid(56a868bf
-0ad4
-11ce
-b03a
-0020af0ba770
),
835 pointer_default(unique)
837 interface IStreamBuilder
: IUnknown
840 ( [in] IPin
* ppinOut
,
841 [in] IGraphBuilder
* pGraph
845 ( [in] IPin
* ppinOut
,
846 [in] IGraphBuilder
* pGraph
851 /*****************************************************************************
852 * IAMStreamConfig interface
856 uuid(c6e13340
-30ac
-11d0
-a18c
-00a0c9118956
),
857 pointer_default(unique)
859 interface IAMStreamConfig
: IUnknown
861 typedef struct _VIDEO_STREAM_CONFIG_CAPS
{
865 SIZE MinCroppingSize
;
866 SIZE MaxCroppingSize
;
867 int CropGranularityX
;
868 int CropGranularityY
;
873 int OutputGranularityX
;
874 int OutputGranularityY
;
879 LONGLONG MinFrameInterval
;
880 LONGLONG MaxFrameInterval
;
881 LONG MinBitsPerSecond
;
882 LONG MaxBitsPerSecond
;
883 } VIDEO_STREAM_CONFIG_CAPS
;
885 typedef struct _AUDIO_STREAM_CONFIG_CAPS
{
887 ULONG MinimumChannels
;
888 ULONG MaximumChannels
;
889 ULONG ChannelsGranularity
;
890 ULONG MinimumBitsPerSample
;
891 ULONG MaximumBitsPerSample
;
892 ULONG BitsPerSampleGranularity
;
893 ULONG MinimumSampleFrequency
;
894 ULONG MaximumSampleFrequency
;
895 ULONG SampleFrequencyGranularity
;
896 } AUDIO_STREAM_CONFIG_CAPS
;
898 HRESULT SetFormat
( [in] AM_MEDIA_TYPE
*pmt
);
899 HRESULT GetFormat
( [in] AM_MEDIA_TYPE
**pmt
);
900 HRESULT GetNumberOfCapabilities
( [out] int *piCount
, [out] int *piSize
);
901 HRESULT GetStreamCaps
( [in] int iIndex
, [out] AM_MEDIA_TYPE
**pmt
,
906 typedef enum tagVideoProcAmpProperty
908 VideoProcAmp_Brightness
,
909 VideoProcAmp_Contrast
,
911 VideoProcAmp_Saturation
,
912 VideoProcAmp_Sharpness
,
914 VideoProcAmp_ColorEnable
,
915 VideoProcAmp_WhiteBalance
,
916 VideoProcAmp_BacklightCompensation
,
918 } VideoProcAmpProperty
;
920 typedef enum tagVideoProcAmpFlags
922 VideoProcAmp_Flags_Auto
= 0x0001,
923 VideoProcAmp_Flags_Manual
= 0x0002,
926 /*****************************************************************************
927 * IAMVideoProcAmp interface
931 uuid(c6e13360
-30ac
-11d0
-a18c
-00a0c9118956
),
932 pointer_default(unique)
934 interface IAMVideoProcAmp
: IUnknown
936 HRESULT GetRange
( [in] LONG Property
, [out] LONG *pMin
, [out] LONG *pMax
,
937 [out] LONG *pSteppingDelta
, [out] LONG *pDefault
,
938 [out] LONG *pCapsFlags
);
939 HRESULT Set
( [in] LONG Property
, [in] LONG lValue
, [in] LONG Flags
);
940 HRESULT Get
( [in] LONG Property
, [out] LONG *lValue
, [out] LONG *Flags
);
946 uuid(56a868aa
-0ad4
-11ce
-b03a
-0020af0ba770
),
947 pointer_default(unique)
949 interface IAsyncReader
: IUnknown
951 HRESULT RequestAllocator
(
952 [in] IMemAllocator
* pPreferred
,
953 [in] ALLOCATOR_PROPERTIES
* pProps
,
954 [out] IMemAllocator
** ppActual
);
957 [in] IMediaSample
* pSample
,
958 [in] DWORD_PTR dwUser
);
961 [in] DWORD dwTimeout
,
962 [out] IMediaSample
** ppSample
,
963 [out] DWORD_PTR
* pdwUser
);
965 HRESULT SyncReadAligned
(
966 [in] IMediaSample
* pSample
);
969 [in] LONGLONG llPosition
,
971 [out, size_is(lLength
)]
975 [out] LONGLONG
* pTotal
,
976 [out] LONGLONG
* pAvailable
);
978 HRESULT BeginFlush
(void);
980 HRESULT EndFlush
(void);
986 uuid(56a868ab
-0ad4
-11ce
-b03a
-0020af0ba770
),
987 pointer_default(unique)
989 interface IGraphVersion
: IUnknown
991 HRESULT QueryVersion
(LONG* pVersion
);
996 uuid(56a868ad
-0ad4
-11ce
-b03a
-0020af0ba770
),
997 pointer_default(unique)
999 interface IResourceConsumer
: IUnknown
1001 HRESULT AcquireResource
(
1002 [in] LONG idResource
);
1004 HRESULT ReleaseResource
(
1005 [in] LONG idResource
);
1011 uuid(56a868ac
-0ad4
-11ce
-b03a
-0020af0ba770
),
1012 pointer_default(unique)
1014 interface IResourceManager
: IUnknown
1018 [in] LONG cResource
,
1022 HRESULT RegisterGroup
(
1024 [in] LONG cResource
,
1025 [in, size_is(cResource
)]
1030 HRESULT RequestResource
(
1031 [in] LONG idResource
,
1032 [in] IUnknown
* pFocusObject
,
1033 [in] IResourceConsumer
* pConsumer
1036 HRESULT NotifyAcquire
(
1037 [in] LONG idResource
,
1038 [in] IResourceConsumer
* pConsumer
,
1041 HRESULT NotifyRelease
(
1042 [in] LONG idResource
,
1043 [in] IResourceConsumer
* pConsumer
,
1044 [in] BOOL bStillWant
);
1046 HRESULT CancelRequest
(
1047 [in] LONG idResource
,
1048 [in] IResourceConsumer
* pConsumer
);
1051 [in] IUnknown
* pFocusObject
);
1053 HRESULT ReleaseFocus
(
1054 [in] IUnknown
* pFocusObject
);
1058 cpp_quote
("#ifndef _IKsPropertySet_")
1059 cpp_quote
("#define _IKsPropertySet_")
1060 cpp_quote
("#define KSPROPERTY_SUPPORT_GET 1")
1061 cpp_quote
("#define KSPROPERTY_SUPPORT_SET 2")
1065 uuid(31efac30
-515c
-11d0
-a9aa
-00aa0061be93
),
1066 pointer_default(unique),
1069 interface IKsPropertySet
: IUnknown
1071 HRESULT Set
( [in] REFGUID guidPropSet
,
1072 [in] DWORD dwPropID
,
1073 [in, size_is(cbInstanceData
)] LPVOID pInstanceData
,
1074 [in] DWORD cbInstanceData
,
1075 [in, size_is(cbPropData
)] LPVOID pPropData
,
1076 [in] DWORD cbPropData
);
1078 HRESULT Get
( [in] REFGUID guidPropSet
,
1079 [in] DWORD dwPropID
,
1080 [in, size_is(cbInstanceData
)] LPVOID pInstanceData
,
1081 [in] DWORD cbInstanceData
,
1082 [out, size_is(cbPropData
)] LPVOID pPropData
,
1083 [in] DWORD cbPropData
,
1084 [out] DWORD
*pcbReturned
);
1086 HRESULT QuerySupported
( [in] REFGUID guidPropSet
,
1087 [in] DWORD dwPropID
,
1088 [out] DWORD
*pTypeSupport
);
1090 cpp_quote
("#endif /* _IKsPropertySet_ */")
1094 uuid(36b73883
-c2c8
-11cf
-8b46
-00805f6cef60
),
1095 pointer_default(unique)
1097 interface ISeekingPassThru
: IUnknown
1099 HRESULT Init
( [in] BOOL bSupportRendering
, [in] IPin
*pPin
);
1102 enum _AM_FILTER_MISC_FLAGS
1104 AM_FILTER_MISC_FLAGS_IS_RENDERER
= 0x1,
1105 AM_FILTER_MISC_FLAGS_IS_SOURCE
= 0x2
1111 uuid(2dd74950
-a890
-11d1
-abe8
-00a0c905f375
),
1112 pointer_default(unique)
1114 interface IAMFilterMiscFlags
: IUnknown
1116 ULONG GetMiscFlags
();
1122 uuid(4995f511
-9ddb
-4f12
-bd3b
-f04611807b79
),
1123 pointer_default(unique)
1125 interface IAMGraphBuilderCallback
: IUnknown
1127 HRESULT SelectedFilter
(
1128 [in] IMoniker
*pMon
);
1130 HRESULT CreatedFilter
(
1131 [in] IBaseFilter
*pFil
);