summaryrefslogtreecommitdiffstats
path: root/src/VBox/Devices/Graphics/shaderlib/wine/include/axextend.idl
diff options
context:
space:
mode:
Diffstat (limited to 'src/VBox/Devices/Graphics/shaderlib/wine/include/axextend.idl')
-rw-r--r--src/VBox/Devices/Graphics/shaderlib/wine/include/axextend.idl1074
1 files changed, 1074 insertions, 0 deletions
diff --git a/src/VBox/Devices/Graphics/shaderlib/wine/include/axextend.idl b/src/VBox/Devices/Graphics/shaderlib/wine/include/axextend.idl
new file mode 100644
index 00000000..e3ada4fb
--- /dev/null
+++ b/src/VBox/Devices/Graphics/shaderlib/wine/include/axextend.idl
@@ -0,0 +1,1074 @@
+/*
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+/*
+ * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
+ * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
+ * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
+ * a choice of LGPL license versions is made available with the language indicating
+ * that LGPLv2 or any later version may be used, or where a choice of which version
+ * of the LGPL is applied is otherwise unspecified.
+ */
+
+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 IAMGraphBuilderCallback;
+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;
+ };
+
+ [case(2)]
+ struct
+ {
+ ULONG cPins2;
+ [size_is(cPins2)] const REGFILTERPINS2 *rgPins2;
+ };
+
+ [default]
+ ;
+ };
+
+} 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] LPCOLESTR szInstance,
+ [in] REFCLSID Filter
+ );
+
+ HRESULT RegisterFilter
+ ( [in] REFCLSID clsidFilter,
+ [in] LPCWSTR Name,
+ [in, out] IMoniker **ppMoniker,
+ [in] const CLSID *pclsidCategory,
+ [in] LPCOLESTR 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
+ );
+}
+
+
+/*****************************************************************************
+ * IAMStreamConfig interface
+ */
+[
+ object,
+ uuid(c6e13340-30ac-11d0-a18c-00a0c9118956),
+ pointer_default(unique)
+]
+interface IAMStreamConfig : IUnknown
+{
+ typedef struct _VIDEO_STREAM_CONFIG_CAPS {
+ GUID guid;
+ ULONG VideoStandard;
+ SIZE InputSize;
+ SIZE MinCroppingSize;
+ SIZE MaxCroppingSize;
+ int CropGranularityX;
+ int CropGranularityY;
+ int CropAlignX;
+ int CropAlignY;
+ SIZE MinOutputSize;
+ SIZE MaxOutputSize;
+ int OutputGranularityX;
+ int OutputGranularityY;
+ int StretchTapsX;
+ int StretchTapsY;
+ int ShrinkTapsX;
+ int ShrinkTapsY;
+ LONGLONG MinFrameInterval;
+ LONGLONG MaxFrameInterval;
+ LONG MinBitsPerSecond;
+ LONG MaxBitsPerSecond;
+ } VIDEO_STREAM_CONFIG_CAPS;
+
+ typedef struct _AUDIO_STREAM_CONFIG_CAPS {
+ GUID guid;
+ ULONG MinimumChannels;
+ ULONG MaximumChannels;
+ ULONG ChannelsGranularity;
+ ULONG MinimumBitsPerSample;
+ ULONG MaximumBitsPerSample;
+ ULONG BitsPerSampleGranularity;
+ ULONG MinimumSampleFrequency;
+ ULONG MaximumSampleFrequency;
+ ULONG SampleFrequencyGranularity;
+ } AUDIO_STREAM_CONFIG_CAPS;
+
+ HRESULT SetFormat( [in] AM_MEDIA_TYPE *pmt);
+ HRESULT GetFormat( [in] AM_MEDIA_TYPE **pmt);
+ HRESULT GetNumberOfCapabilities( [out] int *piCount, [out] int *piSize);
+ HRESULT GetStreamCaps( [in] int iIndex, [out] AM_MEDIA_TYPE **pmt,
+ [out] BYTE *pSCC);
+}
+
+
+typedef enum tagVideoProcAmpProperty
+{
+ VideoProcAmp_Brightness,
+ VideoProcAmp_Contrast,
+ VideoProcAmp_Hue,
+ VideoProcAmp_Saturation,
+ VideoProcAmp_Sharpness,
+ VideoProcAmp_Gamma,
+ VideoProcAmp_ColorEnable,
+ VideoProcAmp_WhiteBalance,
+ VideoProcAmp_BacklightCompensation,
+ VideoProcAmp_Gain
+} VideoProcAmpProperty;
+
+typedef enum tagVideoProcAmpFlags
+{
+ VideoProcAmp_Flags_Auto = 0x0001,
+ VideoProcAmp_Flags_Manual = 0x0002,
+} VideoProcAmpFlags;
+
+/*****************************************************************************
+ * IAMVideoProcAmp interface
+ */
+[
+ object,
+ uuid(c6e13360-30ac-11d0-a18c-00a0c9118956),
+ pointer_default(unique)
+]
+interface IAMVideoProcAmp : IUnknown
+{
+ HRESULT GetRange( [in] LONG Property, [out] LONG *pMin, [out] LONG *pMax,
+ [out] LONG *pSteppingDelta, [out] LONG *pDefault,
+ [out] LONG *pCapsFlags);
+ HRESULT Set( [in] LONG Property, [in] LONG lValue, [in] LONG Flags);
+ HRESULT Get( [in] LONG Property, [out] LONG *lValue, [out] LONG *Flags);
+}
+
+
+[
+ 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),
+ local
+]
+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_ */")
+
+[
+ object,
+ uuid(36b73883-c2c8-11cf-8b46-00805f6cef60),
+ pointer_default(unique)
+]
+interface ISeekingPassThru : IUnknown
+{
+ HRESULT Init( [in] BOOL bSupportRendering, [in] IPin *pPin);
+}
+
+enum _AM_FILTER_MISC_FLAGS
+{
+ AM_FILTER_MISC_FLAGS_IS_RENDERER = 0x1,
+ AM_FILTER_MISC_FLAGS_IS_SOURCE = 0x2
+};
+
+[
+ local,
+ object,
+ uuid(2dd74950-a890-11d1-abe8-00a0c905f375),
+ pointer_default(unique)
+]
+interface IAMFilterMiscFlags : IUnknown
+{
+ ULONG GetMiscFlags();
+};
+
+[
+ local,
+ object,
+ uuid(4995f511-9ddb-4f12-bd3b-f04611807b79),
+ pointer_default(unique)
+]
+interface IAMGraphBuilderCallback : IUnknown
+{
+ HRESULT SelectedFilter(
+ [in] IMoniker *pMon);
+
+ HRESULT CreatedFilter(
+ [in] IBaseFilter *pFil);
+};