| /* | |
| * Copyright (C) 2002 Robert Shearman | |
| * | |
| * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | |
| * | |
| * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| */ | |
| interface IAMAnalogVideoDecoder; | |
| interface IAMAnalogVideoEncoder; | |
| interface IAMAudioInputMixer; | |
| interface IAMAudioRendererStats; | |
| interface IAMBufferNegotiation; | |
| interface IAMCameraControl; | |
| interface IAMCopyCaptureFileProgress; | |
| interface IAMCrossbar; | |
| interface IAMDevMemoryAllocator; | |
| interface IAMDevMemoryControl; | |
| interface IAMDroppedFrames; | |
| interface IAMExtDevice; | |
| interface IAMExtTransport; | |
| interface IAMGraphStreams; | |
| interface IAMLatency; | |
| interface IAMOpenProgress; | |
| interface IAMOverlayFX; | |
| interface IAMPhysicalPinInfo; | |
| interface IAMPushSource; | |
| interface IAMStreamConfig; | |
| interface IAMTimecodeDisplay; | |
| interface IAMTimecodeGenerator; | |
| interface IAMTimecodeReader; | |
| interface IAMTVTuner; | |
| interface IAMVfwCaptureDialogs; | |
| interface IAMVfwCompressDialogs; | |
| interface IAMVideoCompression; | |
| interface IAMVideoDecimationProperties; | |
| interface IAMVideoProcAmp; | |
| interface ICaptureGraphBuilder; | |
| interface ICaptureGraphBuilder2; | |
| interface IConfigAviMux; | |
| interface IConfigInterleaving; | |
| interface IDecimateVideoImage; | |
| interface IDrawVideoImage; | |
| interface IEnumRegFilters; | |
| interface IEnumStreamIdMap; | |
| interface IFileSourceFilter; | |
| interface IFileSinkFilter; | |
| interface IFileSinkFilter2; | |
| interface IFilterMapper; | |
| interface IFilterMapper2; | |
| interface IGraphBuilder; | |
| interface IKsPropertySet; | |
| interface IMediaEventSink; | |
| interface IMpeg2Demultiplexer; | |
| interface IMPEG2StreamIdMap; | |
| interface IOverlay; | |
| interface IOverlayNotify; | |
| interface IOverlayNotify2; | |
| interface IQualityControl; | |
| interface ISeekingPassThru; | |
| typedef struct | |
| { | |
| CLSID Clsid; | |
| LPWSTR Name; | |
| } REGFILTER; | |
| [ | |
| object, | |
| uuid(56a868a4-0ad4-11ce-b03a-0020af0ba770), | |
| pointer_default(unique) | |
| ] | |
| interface IEnumRegFilters : IUnknown | |
| { | |
| HRESULT Next | |
| ( [in] ULONG cFilters, | |
| [out] REGFILTER ** apRegFilter, | |
| [out] ULONG * pcFetched | |
| ); | |
| HRESULT Skip( | |
| [in] ULONG cFilters | |
| ); | |
| HRESULT Reset(void); | |
| HRESULT Clone( | |
| [out] IEnumRegFilters **ppEnum | |
| ); | |
| } | |
| typedef IEnumRegFilters *PENUMREGFILTERS; | |
| [ | |
| object, | |
| uuid(56a868a3-0ad4-11ce-b03a-0020af0ba770), | |
| pointer_default(unique) | |
| ] | |
| interface IFilterMapper : IUnknown | |
| { | |
| enum { MERIT_PREFERRED = 0x800000, | |
| MERIT_NORMAL = 0x600000, | |
| MERIT_UNLIKELY = 0x400000, | |
| MERIT_DO_NOT_USE = 0x200000, | |
| MERIT_SW_COMPRESSOR = 0x100000, | |
| MERIT_HW_COMPRESSOR = 0x100050 | |
| }; | |
| HRESULT RegisterFilter | |
| ( [in] CLSID clsid, | |
| [in] LPCWSTR Name, | |
| [in] DWORD dwMerit | |
| ); | |
| HRESULT RegisterFilterInstance | |
| ( [in] CLSID clsid, | |
| [in] LPCWSTR Name, | |
| [out] CLSID *MRId | |
| ); | |
| HRESULT RegisterPin | |
| ( [in] CLSID Filter, | |
| [in] LPCWSTR Name, | |
| [in] BOOL bRendered, | |
| [in] BOOL bOutput, | |
| [in] BOOL bZero, | |
| [in] BOOL bMany, | |
| [in] CLSID ConnectsToFilter, | |
| [in] LPCWSTR ConnectsToPin | |
| ); | |
| HRESULT RegisterPinType | |
| ( [in] CLSID clsFilter, | |
| [in] LPCWSTR strName, | |
| [in] CLSID clsMajorType, | |
| [in] CLSID clsSubType | |
| ); | |
| HRESULT UnregisterFilter | |
| ( [in] CLSID Filter | |
| ); | |
| HRESULT UnregisterFilterInstance | |
| ( [in] CLSID MRId | |
| ); | |
| HRESULT UnregisterPin | |
| ( [in] CLSID Filter, | |
| [in] LPCWSTR Name | |
| ); | |
| HRESULT EnumMatchingFilters | |
| ( [out] IEnumRegFilters **ppEnum, | |
| [in] DWORD dwMerit, | |
| [in] BOOL bInputNeeded, | |
| [in] CLSID clsInMaj, | |
| [in] CLSID clsInSub, | |
| [in] BOOL bRender, | |
| [in] BOOL bOututNeeded, | |
| [in] CLSID clsOutMaj, | |
| [in] CLSID clsOutSub | |
| ); | |
| } | |
| typedef struct | |
| { | |
| const CLSID * clsMajorType; | |
| const CLSID * clsMinorType; | |
| } REGPINTYPES; | |
| typedef struct | |
| { | |
| LPWSTR strName; | |
| BOOL bRendered; | |
| BOOL bOutput; | |
| BOOL bZero; | |
| BOOL bMany; | |
| const CLSID * clsConnectsToFilter; | |
| const WCHAR * strConnectsToPin; | |
| UINT nMediaTypes; | |
| const REGPINTYPES * lpMediaType; | |
| } REGFILTERPINS; | |
| typedef struct | |
| { | |
| CLSID clsMedium; | |
| DWORD dw1; | |
| DWORD dw2; | |
| } REGPINMEDIUM; | |
| enum | |
| { | |
| REG_PINFLAG_B_ZERO = 0x1, | |
| REG_PINFLAG_B_RENDERER = 0x2, | |
| REG_PINFLAG_B_MANY = 0x4, | |
| REG_PINFLAG_B_OUTPUT = 0x8 | |
| }; | |
| typedef struct | |
| { | |
| DWORD dwFlags; | |
| UINT cInstances; | |
| UINT nMediaTypes; | |
| [size_is(nMediaTypes)] const REGPINTYPES * lpMediaType; | |
| UINT nMediums; | |
| [size_is(nMediums)] const REGPINMEDIUM *lpMedium; | |
| const CLSID *clsPinCategory; | |
| } REGFILTERPINS2; | |
| typedef struct | |
| { | |
| DWORD dwVersion; | |
| DWORD dwMerit; | |
| [switch_is(dwVersion)] [switch_type(DWORD)] union | |
| { | |
| [case(1)] | |
| struct | |
| { | |
| ULONG cPins; | |
| [size_is(cPins)] const REGFILTERPINS *rgPins; | |
| } DUMMYSTRUCTNAME; | |
| [case(2)] | |
| struct | |
| { | |
| ULONG cPins2; | |
| [size_is(cPins2)] const REGFILTERPINS2 *rgPins2; | |
| } DUMMYSTRUCTNAME1; | |
| [default] | |
| ; | |
| } DUMMYUNIONNAME; | |
| } REGFILTER2; | |
| [ | |
| object, | |
| uuid(b79bb0b0-33c1-11d1-abe1-00a0c905f375), | |
| pointer_default(unique) | |
| ] | |
| interface IFilterMapper2 : IUnknown | |
| { | |
| HRESULT CreateCategory | |
| ( [in] REFCLSID clsidCategory, | |
| [in] DWORD dwCategoryMerit, | |
| [in] LPCWSTR Description | |
| ); | |
| HRESULT UnregisterFilter | |
| ( [in] const CLSID *pclsidCategory, | |
| [in] const OLECHAR *szInstance, | |
| [in] REFCLSID Filter | |
| ); | |
| HRESULT RegisterFilter | |
| ( [in] REFCLSID clsidFilter, | |
| [in] LPCWSTR Name, | |
| [in, out] IMoniker **ppMoniker, | |
| [in] const CLSID *pclsidCategory, | |
| [in] const OLECHAR *szInstance, | |
| [in] const REGFILTER2 *prf2 | |
| ); | |
| HRESULT EnumMatchingFilters | |
| ( [out] IEnumMoniker **ppEnum, | |
| [in] DWORD dwFlags, | |
| [in] BOOL bExactMatch, | |
| [in] DWORD dwMerit, | |
| [in] BOOL bInputNeeded, | |
| [in] DWORD cInputTypes, | |
| [size_is(cInputTypes*2)] const GUID *pInputTypes, | |
| [in] const REGPINMEDIUM *pMedIn, | |
| [in] const CLSID *pPinCategoryIn, | |
| [in] BOOL bRender, | |
| [in] BOOL bOutputNeeded, | |
| [in] DWORD cOutputTypes, | |
| [size_is(cOutputTypes*2)] const GUID *pOutputTypes, | |
| [in] const REGPINMEDIUM *pMedOut, | |
| [in] const CLSID *pPinCategoryOut | |
| ); | |
| } | |
| [ | |
| object, | |
| uuid(b79bb0b1-33c1-11d1-abe1-00a0c905f375), | |
| pointer_default(unique) | |
| ] | |
| interface IFilterMapper3 : IFilterMapper2 | |
| { | |
| HRESULT GetICreateDevEnum( [out] ICreateDevEnum **ppEnum ); | |
| } | |
| typedef enum tagQualityMessageType | |
| { | |
| Famine, | |
| Flood | |
| } QualityMessageType; | |
| typedef struct tagQuality | |
| { | |
| QualityMessageType Type; | |
| long Proportion; | |
| REFERENCE_TIME Late; | |
| REFERENCE_TIME TimeStamp; | |
| } Quality; | |
| typedef IQualityControl *PQUALITYCONTROL; | |
| [ | |
| object, | |
| uuid(56a868a5-0ad4-11ce-b03a-0020af0ba770), | |
| pointer_default(unique) | |
| ] | |
| interface IQualityControl : IUnknown | |
| { | |
| HRESULT Notify | |
| ( [in] IBaseFilter * pSelf, | |
| [in] Quality q | |
| ); | |
| HRESULT SetSink | |
| ( [in] IQualityControl * piqc | |
| ); | |
| } | |
| enum | |
| { | |
| CK_NOCOLORKEY = 0x0, | |
| CK_INDEX = 0x1, | |
| CK_RGB = 0x2 | |
| }; | |
| typedef struct tagCOLORKEY | |
| { | |
| DWORD KeyType; | |
| DWORD PaletteIndex; | |
| COLORREF LowColorValue; | |
| COLORREF HighColorValue; | |
| } COLORKEY; | |
| enum | |
| { | |
| ADVISE_NONE = 0x0, | |
| ADVISE_CLIPPING = 0x1, | |
| ADVISE_PALETTE = 0x2, | |
| ADVISE_COLORKEY = 0x4, | |
| ADVISE_POSITION = 0x8, | |
| ADVISE_DISPLAY_CHANGE = 0x10 | |
| }; | |
| const DWORD ADVISE_ALL = ADVISE_CLIPPING | | |
| ADVISE_PALETTE | | |
| ADVISE_COLORKEY | | |
| ADVISE_POSITION; | |
| const DWORD ADVISE_ALL2 = ADVISE_ALL | | |
| ADVISE_DISPLAY_CHANGE; | |
| cpp_quote("#ifndef _WINGDI_") | |
| /* already defined in wingdi.h, but needed for WIDL */ | |
| typedef struct _RGNDATAHEADER | |
| { | |
| DWORD dwSize; | |
| DWORD iType; | |
| DWORD nCount; | |
| DWORD nRgnSize; | |
| RECT rcBound; | |
| } RGNDATAHEADER; | |
| typedef struct _RGNDATA | |
| { | |
| RGNDATAHEADER rdh; | |
| char Buffer[1]; | |
| } RGNDATA; | |
| cpp_quote("#endif /* _WINGDI_ */") | |
| [ | |
| object, | |
| local, | |
| uuid(56a868a0-0ad4-11ce-b03a-0020af0ba770), | |
| pointer_default(unique) | |
| ] | |
| interface IOverlayNotify : IUnknown | |
| { | |
| HRESULT OnPaletteChange( | |
| [in] DWORD dwColors, | |
| [in] const PALETTEENTRY *pPalette); | |
| HRESULT OnClipChange( | |
| [in] const RECT *pSourceRect, | |
| [in] const RECT *pDestinationRect, | |
| [in] const RGNDATA *pRgnData); | |
| HRESULT OnColorKeyChange([in] const COLORKEY *pColorKey); | |
| HRESULT OnPositionChange([in] const RECT *pSourceRect, | |
| [in] const RECT *pDestinationRect); | |
| } | |
| typedef IOverlayNotify *POVERLAYNOTIFY; | |
| cpp_quote("#if 0") | |
| typedef HANDLE HMONITOR; | |
| cpp_quote("#endif /* 0 */") | |
| [ | |
| object, | |
| local, | |
| uuid(680EFA10-D535-11D1-87C8-00A0C9223196), | |
| pointer_default(unique) | |
| ] | |
| interface IOverlayNotify2 : IOverlayNotify | |
| { | |
| HRESULT OnDisplayChange( | |
| HMONITOR hMonitor); | |
| } | |
| typedef IOverlayNotify2 *POVERLAYNOTIFY2; | |
| [ | |
| object, | |
| local, | |
| uuid(56a868a1-0ad4-11ce-b03a-0020af0ba770), | |
| pointer_default(unique) | |
| ] | |
| interface IOverlay : IUnknown | |
| { | |
| HRESULT GetPalette( | |
| [out] DWORD *pdwColors, | |
| [out] PALETTEENTRY **ppPalette); | |
| HRESULT SetPalette( | |
| [in] DWORD dwColors, | |
| [in] PALETTEENTRY *pPalette); | |
| HRESULT GetDefaultColorKey([out] COLORKEY *pColorKey); | |
| HRESULT GetColorKey([out] COLORKEY *pColorKey); | |
| HRESULT SetColorKey([in,out] COLORKEY *pColorKey); | |
| HRESULT GetWindowHandle([out] HWND *pHwnd); | |
| HRESULT GetClipList([out] RECT *pSourceRect, | |
| [out] RECT *pDestinationRect, | |
| [out] RGNDATA **ppRgnData); | |
| HRESULT GetVideoPosition([out] RECT *pSourceRect, | |
| [out] RECT *pDestinationRect); | |
| HRESULT Advise( | |
| [in] IOverlayNotify *pOverlayNotify, | |
| [in] DWORD dwInterests); | |
| HRESULT Unadvise(); | |
| } | |
| typedef IOverlay *POVERLAY; | |
| [ | |
| object, | |
| uuid(56a868a2-0ad4-11ce-b03a-0020af0ba770), | |
| pointer_default(unique) | |
| ] | |
| interface IMediaEventSink : IUnknown | |
| { | |
| HRESULT Notify( | |
| [in] long EventCode, | |
| [in] LONG_PTR EventParam1, | |
| [in] LONG_PTR EventParam2 | |
| ); | |
| } | |
| typedef IMediaEventSink *PMEDIAEVENTSINK; | |
| [ | |
| object, | |
| uuid(56a868a6-0ad4-11ce-b03a-0020af0ba770), | |
| pointer_default(unique) | |
| ] | |
| interface IFileSourceFilter : IUnknown | |
| { | |
| HRESULT Load( | |
| [in] LPCOLESTR pszFileName, | |
| [in, unique] const AM_MEDIA_TYPE *pmt | |
| ); | |
| HRESULT GetCurFile( | |
| [out] LPOLESTR *ppszFileName, | |
| [out] AM_MEDIA_TYPE *pmt | |
| ); | |
| } | |
| typedef IFileSourceFilter *PFILTERFILESOURCE; | |
| [ | |
| object, | |
| uuid(a2104830-7c70-11cf-8bce-00aa00a3f1a6), | |
| pointer_default(unique) | |
| ] | |
| interface IFileSinkFilter : IUnknown | |
| { | |
| HRESULT SetFileName( | |
| [in] LPCOLESTR pszFileName, | |
| [in, unique] const AM_MEDIA_TYPE *pmt | |
| ); | |
| HRESULT GetCurFile( | |
| [out] LPOLESTR *ppszFileName, | |
| [out] AM_MEDIA_TYPE *pmt | |
| ); | |
| } | |
| typedef IFileSinkFilter *PFILTERFILESINK; | |
| [ | |
| object, | |
| uuid(00855B90-CE1B-11d0-BD4F-00A0C911CE86), | |
| pointer_default(unique) | |
| ] | |
| interface IFileSinkFilter2 : IFileSinkFilter | |
| { | |
| HRESULT SetMode( | |
| [in] DWORD dwFlags | |
| ); | |
| HRESULT GetMode( | |
| [out] DWORD *pdwFlags | |
| ); | |
| } | |
| typedef IFileSinkFilter2 *PFILESINKFILTER2; | |
| typedef enum | |
| { | |
| AM_FILE_OVERWRITE = 0x00000001, | |
| } AM_FILESINK_FLAGS; | |
| [ | |
| object, | |
| uuid(56a868a9-0ad4-11ce-b03a-0020af0ba770), | |
| pointer_default(unique) | |
| ] | |
| interface IGraphBuilder : IFilterGraph | |
| { | |
| HRESULT Connect | |
| ( [in] IPin * ppinOut, | |
| [in] IPin * ppinIn | |
| ); | |
| HRESULT Render | |
| ( [in] IPin * ppinOut | |
| ); | |
| HRESULT RenderFile | |
| ( [in] LPCWSTR lpcwstrFile, | |
| [in, unique] LPCWSTR lpcwstrPlayList | |
| ); | |
| HRESULT AddSourceFilter | |
| ( [in] LPCWSTR lpcwstrFileName, | |
| [in, unique] LPCWSTR lpcwstrFilterName, | |
| [out] IBaseFilter* *ppFilter | |
| ); | |
| HRESULT SetLogFile | |
| ( [in] DWORD_PTR hFile | |
| ); | |
| HRESULT Abort(); | |
| HRESULT ShouldOperationContinue(); | |
| } | |
| [ | |
| object, | |
| uuid(bf87b6e0-8c27-11d0-b3f0-00aa003761c5), | |
| pointer_default(unique) | |
| ] | |
| interface ICaptureGraphBuilder : IUnknown { | |
| HRESULT SetFiltergraph( | |
| [in] IGraphBuilder *pfg); | |
| HRESULT GetFiltergraph( | |
| [out] IGraphBuilder **ppfg); | |
| HRESULT SetOutputFileName( | |
| [in] const GUID *pType, | |
| [in] LPCOLESTR lpstrFile, | |
| [out] IBaseFilter **ppf, | |
| [out] IFileSinkFilter **ppSink); | |
| [local] HRESULT FindInterface( | |
| [in, unique] const GUID *pCategory, | |
| [in] IBaseFilter *pf, | |
| [in] REFIID riid, | |
| [out] void **ppint); | |
| [call_as(FindInterface)] HRESULT RemoteFindInterface( | |
| [in, unique] const GUID *pCategory, | |
| [in] IBaseFilter *pf, | |
| [in] REFIID riid, | |
| [out] IUnknown **ppint); | |
| HRESULT RenderStream( | |
| [in] const GUID *pCategory, | |
| [in] IUnknown *pSource, | |
| [in] IBaseFilter *pfCompressor, | |
| [in] IBaseFilter *pfRenderer); | |
| HRESULT ControlStream( | |
| [in] const GUID *pCategory, | |
| [in] IBaseFilter *pFilter, | |
| [in] REFERENCE_TIME *pstart, | |
| [in] REFERENCE_TIME *pstop, | |
| [in] WORD wStartCookie, | |
| [in] WORD wStopCookie); | |
| HRESULT AllocCapFile( | |
| [in] LPCOLESTR lpstr, | |
| [in] DWORDLONG dwlSize); | |
| HRESULT CopyCaptureFile( | |
| [in] LPOLESTR lpwstrOld, | |
| [in] LPOLESTR lpwstrNew, | |
| [in] int fAllowEscAbort, | |
| [in] IAMCopyCaptureFileProgress *pCallback); | |
| } | |
| [ | |
| object, | |
| uuid(670d1d20-a068-11d0-b3f0-00aa003761c5), | |
| pointer_default(unique) | |
| ] | |
| interface IAMCopyCaptureFileProgress : IUnknown | |
| { | |
| HRESULT Progress( | |
| [in] int iProgress); | |
| } | |
| [ | |
| object, | |
| uuid(93E5A4E0-2D50-11d2-ABFA-00A0C9C6E38D), | |
| pointer_default(unique) | |
| ] | |
| interface ICaptureGraphBuilder2 : IUnknown | |
| { | |
| HRESULT SetFiltergraph( | |
| [in] IGraphBuilder *pfg); | |
| HRESULT GetFiltergraph( | |
| [out] IGraphBuilder **ppfg); | |
| HRESULT SetOutputFileName( | |
| [in] const GUID *pType, | |
| [in] LPCOLESTR lpstrFile, | |
| [out] IBaseFilter **ppf, | |
| [out] IFileSinkFilter **ppSink); | |
| [local] HRESULT FindInterface( | |
| [in] const GUID *pCategory, | |
| [in] const GUID *pType, | |
| [in] IBaseFilter *pf, | |
| [in] REFIID riid, | |
| [out] void **ppint); | |
| [call_as(FindInterface)] HRESULT RemoteFindInterface( | |
| [in] const GUID *pCategory, | |
| [in] const GUID *pType, | |
| [in] IBaseFilter *pf, | |
| [in] REFIID riid, | |
| [out] IUnknown **ppint); | |
| HRESULT RenderStream( | |
| [in] const GUID *pCategory, | |
| [in] const GUID *pType, | |
| [in] IUnknown *pSource, | |
| [in] IBaseFilter *pfCompressor, | |
| [in] IBaseFilter *pfRenderer); | |
| HRESULT ControlStream( | |
| [in] const GUID *pCategory, | |
| [in] const GUID *pType, | |
| [in] IBaseFilter *pFilter, | |
| [in] REFERENCE_TIME *pstart, | |
| [in] REFERENCE_TIME *pstop, | |
| [in] WORD wStartCookie, | |
| [in] WORD wStopCookie); | |
| HRESULT AllocCapFile( | |
| [in] LPCOLESTR lpstr, | |
| [in] DWORDLONG dwlSize); | |
| HRESULT CopyCaptureFile( | |
| [in] LPOLESTR lpwstrOld, | |
| [in] LPOLESTR lpwstrNew, | |
| [in] int fAllowEscAbort, | |
| [in] IAMCopyCaptureFileProgress *pCallback); | |
| HRESULT FindPin( | |
| [in] IUnknown *pSource, | |
| [in] PIN_DIRECTION pindir, | |
| [in] const GUID *pCategory, | |
| [in] const GUID *pType, | |
| [in] BOOL fUnconnected, | |
| [in] int num, | |
| [out] IPin **ppPin); | |
| } | |
| enum _AM_RENSDEREXFLAGS | |
| { | |
| AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x01 | |
| }; | |
| [ | |
| object, | |
| uuid(36b73882-c2c8-11cf-8b46-00805f6cef60), | |
| pointer_default(unique) | |
| ] | |
| interface IFilterGraph2: IGraphBuilder | |
| { | |
| HRESULT AddSourceFilterForMoniker( | |
| [in] IMoniker *pMoniker, | |
| [in] IBindCtx *pCtx, | |
| [in, unique] LPCWSTR lpcwstrFilterName, | |
| [out] IBaseFilter **ppFilter | |
| ); | |
| HRESULT ReconnectEx | |
| ( [in] IPin * ppin, | |
| [in, unique] const AM_MEDIA_TYPE *pmt | |
| ); | |
| HRESULT RenderEx( [in] IPin *pPinOut, | |
| [in] DWORD dwFlags, | |
| [in, out] DWORD *pvContext | |
| ); | |
| } | |
| [ | |
| object, | |
| local, | |
| uuid(56a868bf-0ad4-11ce-b03a-0020af0ba770), | |
| pointer_default(unique) | |
| ] | |
| interface IStreamBuilder : IUnknown | |
| { | |
| HRESULT Render | |
| ( [in] IPin * ppinOut, | |
| [in] IGraphBuilder * pGraph | |
| ); | |
| HRESULT Backout | |
| ( [in] IPin * ppinOut, | |
| [in] IGraphBuilder * pGraph | |
| ); | |
| } | |
| [ | |
| object, | |
| uuid(56a868aa-0ad4-11ce-b03a-0020af0ba770), | |
| pointer_default(unique) | |
| ] | |
| interface IAsyncReader : IUnknown | |
| { | |
| HRESULT RequestAllocator( | |
| [in] IMemAllocator* pPreferred, | |
| [in] ALLOCATOR_PROPERTIES* pProps, | |
| [out] IMemAllocator ** ppActual); | |
| HRESULT Request( | |
| [in] IMediaSample* pSample, | |
| [in] DWORD_PTR dwUser); | |
| HRESULT WaitForNext( | |
| [in] DWORD dwTimeout, | |
| [out] IMediaSample** ppSample, | |
| [out] DWORD_PTR * pdwUser); | |
| HRESULT SyncReadAligned( | |
| [in] IMediaSample* pSample); | |
| HRESULT SyncRead( | |
| [in] LONGLONG llPosition, | |
| [in] LONG lLength, | |
| [out, size_is(lLength)] | |
| BYTE* pBuffer); | |
| HRESULT Length( | |
| [out] LONGLONG* pTotal, | |
| [out] LONGLONG* pAvailable); | |
| HRESULT BeginFlush(void); | |
| HRESULT EndFlush(void); | |
| } | |
| [ | |
| object, | |
| uuid(56a868ab-0ad4-11ce-b03a-0020af0ba770), | |
| pointer_default(unique) | |
| ] | |
| interface IGraphVersion : IUnknown | |
| { | |
| HRESULT QueryVersion(LONG* pVersion); | |
| } | |
| [ | |
| object, | |
| uuid(56a868ad-0ad4-11ce-b03a-0020af0ba770), | |
| pointer_default(unique) | |
| ] | |
| interface IResourceConsumer : IUnknown | |
| { | |
| HRESULT AcquireResource( | |
| [in] LONG idResource); | |
| HRESULT ReleaseResource( | |
| [in] LONG idResource); | |
| } | |
| [ | |
| object, | |
| uuid(56a868ac-0ad4-11ce-b03a-0020af0ba770), | |
| pointer_default(unique) | |
| ] | |
| interface IResourceManager : IUnknown | |
| { | |
| HRESULT Register( | |
| [in] LPCWSTR pName, | |
| [in] LONG cResource, | |
| [out] LONG* plToken | |
| ); | |
| HRESULT RegisterGroup( | |
| [in] LPCWSTR pName, | |
| [in] LONG cResource, | |
| [in, size_is(cResource)] | |
| LONG* palTokens, | |
| [out] LONG* plToken | |
| ); | |
| HRESULT RequestResource( | |
| [in] LONG idResource, | |
| [in] IUnknown* pFocusObject, | |
| [in] IResourceConsumer* pConsumer | |
| ); | |
| HRESULT NotifyAcquire( | |
| [in] LONG idResource, | |
| [in] IResourceConsumer* pConsumer, | |
| [in] HRESULT hr); | |
| HRESULT NotifyRelease( | |
| [in] LONG idResource, | |
| [in] IResourceConsumer* pConsumer, | |
| [in] BOOL bStillWant); | |
| HRESULT CancelRequest( | |
| [in] LONG idResource, | |
| [in] IResourceConsumer* pConsumer); | |
| HRESULT SetFocus( | |
| [in] IUnknown* pFocusObject); | |
| HRESULT ReleaseFocus( | |
| [in] IUnknown* pFocusObject); | |
| } | |
| cpp_quote("#ifndef _IKsPropertySet_") | |
| cpp_quote("#define _IKsPropertySet_") | |
| cpp_quote("#define KSPROPERTY_SUPPORT_GET 1") | |
| cpp_quote("#define KSPROPERTY_SUPPORT_SET 2") | |
| [ | |
| object, | |
| uuid(31efac30-515c-11d0-a9aa-00aa0061be93), | |
| pointer_default(unique) | |
| ] | |
| interface IKsPropertySet : IUnknown | |
| { | |
| HRESULT Set( [in] REFGUID guidPropSet, | |
| [in] DWORD dwPropID, | |
| [in, size_is(cbInstanceData)] LPVOID pInstanceData, | |
| [in] DWORD cbInstanceData, | |
| [in, size_is(cbPropData)] LPVOID pPropData, | |
| [in] DWORD cbPropData ); | |
| HRESULT Get( [in] REFGUID guidPropSet, | |
| [in] DWORD dwPropID, | |
| [in, size_is(cbInstanceData)] LPVOID pInstanceData, | |
| [in] DWORD cbInstanceData, | |
| [out, size_is(cbPropData)] LPVOID pPropData, | |
| [in] DWORD cbPropData, | |
| [out] DWORD *pcbReturned ); | |
| HRESULT QuerySupported( [in] REFGUID guidPropSet, | |
| [in] DWORD dwPropID, | |
| [out] DWORD *pTypeSupport); | |
| } | |
| cpp_quote("#endif /* _IKsPropertySet_ */") |