| cpp_quote("/**") | |
| cpp_quote(" * This file is part of the mingw-w64 runtime package.") | |
| cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.") | |
| cpp_quote(" */") | |
| cpp_quote("") | |
| cpp_quote("#include <winapifamily.h>") | |
| cpp_quote("") | |
| cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") | |
| cpp_quote("") | |
| #define CHARS_IN_GUID 39 | |
| cpp_quote("#define CHARS_IN_GUID 39") | |
| cpp_quote("") | |
| /* GetTimeFormat is defined in winnls.h as | |
| * either the W or A suffixed version */ | |
| cpp_quote("#ifdef WINE_NO_UNICODE_MACROS") | |
| cpp_quote("#undef GetTimeFormat") | |
| cpp_quote("#endif") | |
| cpp_quote("") | |
| typedef struct _AMMediaType { | |
| GUID majortype; | |
| GUID subtype; | |
| BOOL bFixedSizeSamples; | |
| BOOL bTemporalCompression; | |
| ULONG lSampleSize; | |
| GUID formattype; | |
| IUnknown *pUnk; | |
| ULONG cbFormat; | |
| [size_is (cbFormat)] BYTE *pbFormat; | |
| } AM_MEDIA_TYPE; | |
| cpp_quote("") | |
| typedef enum _PinDirection { | |
| PINDIR_INPUT, | |
| PINDIR_OUTPUT | |
| } PIN_DIRECTION; | |
| #define MAX_PIN_NAME 128 | |
| #define MAX_FILTER_NAME 128 | |
| cpp_quote("") | |
| cpp_quote("#define MAX_PIN_NAME 128") | |
| cpp_quote("#define MAX_FILTER_NAME 128") | |
| cpp_quote("") | |
| cpp_quote("#ifndef REFERENCE_TIME_DEFINED") | |
| cpp_quote("#define REFERENCE_TIME_DEFINED") | |
| typedef LONGLONG REFERENCE_TIME; | |
| cpp_quote("#endif") | |
| cpp_quote("") | |
| cpp_quote("#ifndef REFTIME_DEFINED") | |
| cpp_quote("#define REFTIME_DEFINED") | |
| typedef double REFTIME; | |
| cpp_quote("#endif") | |
| cpp_quote("") | |
| typedef DWORD_PTR HSEMAPHORE; | |
| typedef DWORD_PTR HEVENT; | |
| cpp_quote("") | |
| typedef struct _AllocatorProperties { | |
| long cBuffers; | |
| long cbBuffer; | |
| long cbAlign; | |
| long cbPrefix; | |
| } ALLOCATOR_PROPERTIES; | |
| cpp_quote("") | |
| interface IAMovieSetup; | |
| interface IEnumFilters; | |
| interface IEnumMediaTypes; | |
| interface IEnumPins; | |
| interface IBaseFilter; | |
| interface IFilterGraph; | |
| interface IMediaFilter; | |
| interface IMediaSample; | |
| interface IMemAllocator; | |
| interface IMemAllocatorCallbackTemp; | |
| interface IMemAllocatorNotifyCallbackTemp; | |
| interface IMemInputPin; | |
| interface IPin; | |
| interface IReferenceClock; | |
| cpp_quote("") | |
| [object, local, uuid (56a86891-0ad4-11ce-b03a-0020af0ba770), pointer_default (unique)] | |
| interface IPin : IUnknown { | |
| typedef struct _PinInfo { | |
| IBaseFilter *pFilter; | |
| PIN_DIRECTION dir; | |
| WCHAR achName[MAX_PIN_NAME]; | |
| } PIN_INFO; | |
| cpp_quote("") | |
| HRESULT Connect ([in] IPin *pReceivePin, [in] const AM_MEDIA_TYPE *pmt); | |
| HRESULT ReceiveConnection ([in] IPin *pConnector, [in] const AM_MEDIA_TYPE *pmt); | |
| HRESULT Disconnect (void); | |
| HRESULT ConnectedTo ([out] IPin **pPin); | |
| HRESULT ConnectionMediaType ([out] AM_MEDIA_TYPE *pmt); | |
| HRESULT QueryPinInfo ([out] PIN_INFO *pInfo); | |
| HRESULT QueryDirection ([out] PIN_DIRECTION *pPinDir); | |
| HRESULT QueryId ([out] LPWSTR *Id); | |
| HRESULT QueryAccept ([in] const AM_MEDIA_TYPE *pmt); | |
| HRESULT EnumMediaTypes ([out] IEnumMediaTypes **ppEnum); | |
| HRESULT QueryInternalConnections ([out] IPin **apPin, [in, out] ULONG *nPin); | |
| HRESULT EndOfStream (void); | |
| HRESULT BeginFlush (void); | |
| HRESULT EndFlush (void); | |
| HRESULT NewSegment ([in] REFERENCE_TIME tStart, [in] REFERENCE_TIME tStop, [in] double dRate); | |
| } | |
| typedef IPin *PPIN; | |
| cpp_quote("") | |
| [object, local, uuid (56a86892-0ad4-11ce-b03a-0020af0ba770), pointer_default (unique)] | |
| interface IEnumPins : IUnknown { | |
| HRESULT Next ([in] ULONG cPins, [out, size_is (cPins)] IPin **ppPins, [out] ULONG *pcFetched); | |
| HRESULT Skip ([in] ULONG cPins); | |
| HRESULT Reset (void); | |
| HRESULT Clone ([out] IEnumPins **ppEnum); | |
| } | |
| typedef IEnumPins *PENUMPINS; | |
| cpp_quote("") | |
| [object, local, uuid (89c31040-846b-11ce-97d3-00aa0055595a), pointer_default (unique)] | |
| interface IEnumMediaTypes : IUnknown { | |
| HRESULT Next ([in] ULONG cMediaTypes, [out, size_is (cMediaTypes)] AM_MEDIA_TYPE **ppMediaTypes, [out] ULONG *pcFetched); | |
| HRESULT Skip ([in] ULONG cMediaTypes); | |
| HRESULT Reset (void); | |
| HRESULT Clone ([out] IEnumMediaTypes **ppEnum); | |
| } | |
| typedef IEnumMediaTypes *PENUMMEDIATYPES; | |
| cpp_quote("") | |
| [object, local, uuid (56a8689f-0ad4-11ce-b03a-0020af0ba770), pointer_default (unique)] | |
| interface IFilterGraph : IUnknown { | |
| HRESULT AddFilter ([in] IBaseFilter *pFilter, [in, string] LPCWSTR pName); | |
| HRESULT RemoveFilter ([in] IBaseFilter *pFilter); | |
| HRESULT EnumFilters ([out] IEnumFilters **ppEnum); | |
| HRESULT FindFilterByName ([in, string] LPCWSTR pName, [out] IBaseFilter **ppFilter); | |
| HRESULT ConnectDirect ([in] IPin *ppinOut, [in] IPin *ppinIn, [in, unique] const AM_MEDIA_TYPE *pmt); | |
| HRESULT Reconnect ([in] IPin *ppin); | |
| HRESULT Disconnect ([in] IPin *ppin); | |
| HRESULT SetDefaultSyncSource (void); | |
| } | |
| typedef IFilterGraph *PFILTERGRAPH; | |
| cpp_quote("") | |
| [object, local, uuid (56a86893-0ad4-11ce-b03a-0020af0ba770), pointer_default (unique)] | |
| interface IEnumFilters : IUnknown { | |
| HRESULT Next ([in] ULONG cFilters, [out] IBaseFilter **ppFilter, [out] ULONG *pcFetched); | |
| HRESULT Skip ([in] ULONG cFilters); | |
| HRESULT Reset (void); | |
| HRESULT Clone ([out] IEnumFilters **ppEnum); | |
| } | |
| typedef IEnumFilters *PENUMFILTERS; | |
| cpp_quote("") | |
| [object, local, uuid (56a86899-0ad4-11ce-b03a-0020af0ba770), pointer_default (unique)] | |
| interface IMediaFilter : IPersist { | |
| typedef enum _FilterState { | |
| State_Stopped, | |
| State_Paused, | |
| State_Running | |
| } FILTER_STATE; | |
| cpp_quote("") | |
| HRESULT Stop (void); | |
| HRESULT Pause (void); | |
| HRESULT Run (REFERENCE_TIME tStart); | |
| HRESULT GetState ([in] DWORD dwMilliSecsTimeout, [out] FILTER_STATE *State); | |
| HRESULT SetSyncSource ([in] IReferenceClock *pClock); | |
| HRESULT GetSyncSource ([out] IReferenceClock **pClock); | |
| } | |
| typedef IMediaFilter *PMEDIAFILTER; | |
| cpp_quote("") | |
| [object, local, uuid (56a86895-0ad4-11ce-b03a-0020af0ba770), pointer_default (unique)] | |
| interface IBaseFilter : IMediaFilter { | |
| typedef struct _FilterInfo { | |
| WCHAR achName[MAX_FILTER_NAME]; | |
| IFilterGraph *pGraph; | |
| } FILTER_INFO; | |
| cpp_quote("") | |
| HRESULT EnumPins ([out] IEnumPins **ppEnum); | |
| HRESULT FindPin ([in, string] LPCWSTR Id, [out] IPin **ppPin); | |
| HRESULT QueryFilterInfo ([out] FILTER_INFO *pInfo); | |
| HRESULT JoinFilterGraph ([in] IFilterGraph *pGraph, [in, string] LPCWSTR pName); | |
| HRESULT QueryVendorInfo ([out, string] LPWSTR *pVendorInfo); | |
| } | |
| typedef IBaseFilter *PFILTER; | |
| cpp_quote("") | |
| [object, local, uuid (56a86897-0ad4-11ce-b03a-0020af0ba770), pointer_default (unique)] | |
| interface IReferenceClock : IUnknown { | |
| HRESULT GetTime ([out] REFERENCE_TIME *pTime); | |
| HRESULT AdviseTime ([in] REFERENCE_TIME baseTime, [in] REFERENCE_TIME streamTime, [in] HEVENT hEvent, [out] DWORD_PTR *pdwAdviseCookie); | |
| HRESULT AdvisePeriodic ([in] REFERENCE_TIME startTime, [in] REFERENCE_TIME periodTime, [in] HSEMAPHORE hSemaphore, [out] DWORD_PTR *pdwAdviseCookie); | |
| HRESULT Unadvise ([in] DWORD_PTR dwAdviseCookie); | |
| } | |
| typedef IReferenceClock *PREFERENCECLOCK; | |
| cpp_quote("") | |
| [object, local, uuid (ebec459c-2eca-4d42-a8af-30df557614b8), pointer_default (unique)] | |
| interface IReferenceClockTimerControl : IUnknown { | |
| HRESULT SetDefaultTimerResolution (REFERENCE_TIME timerResolution); | |
| HRESULT GetDefaultTimerResolution (REFERENCE_TIME *pTimerResolution); | |
| } | |
| cpp_quote("") | |
| [object, local, uuid (36b73885-c2c8-11cf-8b46-00805f6cef60), pointer_default (unique)] | |
| interface IReferenceClock2 : IReferenceClock { | |
| } | |
| typedef IReferenceClock2 *PREFERENCECLOCK2; | |
| cpp_quote("") | |
| [object, local, uuid (56a8689a-0ad4-11ce-b03a-0020af0ba770), pointer_default (unique)] | |
| interface IMediaSample : IUnknown { | |
| HRESULT GetPointer ([out] BYTE **ppBuffer); | |
| long GetSize (void); | |
| HRESULT GetTime ([out] REFERENCE_TIME *pTimeStart, [out] REFERENCE_TIME *pTimeEnd); | |
| HRESULT SetTime ([in] REFERENCE_TIME *pTimeStart, [in] REFERENCE_TIME *pTimeEnd); | |
| HRESULT IsSyncPoint (void); | |
| HRESULT SetSyncPoint (BOOL bIsSyncPoint); | |
| HRESULT IsPreroll (void); | |
| HRESULT SetPreroll (BOOL bIsPreroll); | |
| long GetActualDataLength (void); | |
| HRESULT SetActualDataLength (long); | |
| HRESULT GetMediaType ([out] AM_MEDIA_TYPE **ppMediaType); | |
| HRESULT SetMediaType ([in] AM_MEDIA_TYPE *pMediaType); | |
| HRESULT IsDiscontinuity (void); | |
| HRESULT SetDiscontinuity (BOOL bDiscontinuity); | |
| HRESULT GetMediaTime ([out] LONGLONG *pTimeStart, [out] LONGLONG *pTimeEnd); | |
| HRESULT SetMediaTime ([in] LONGLONG *pTimeStart, [in] LONGLONG *pTimeEnd); | |
| } | |
| typedef IMediaSample *PMEDIASAMPLE; | |
| cpp_quote("") | |
| enum tagAM_SAMPLE_PROPERTY_FLAGS { | |
| AM_SAMPLE_SPLICEPOINT = 0x1, | |
| AM_SAMPLE_PREROLL = 0x2, | |
| AM_SAMPLE_DATADISCONTINUITY = 0x4, | |
| AM_SAMPLE_TYPECHANGED = 0x8, | |
| AM_SAMPLE_TIMEVALID = 0x10, | |
| AM_SAMPLE_TIMEDISCONTINUITY = 0x40, | |
| AM_SAMPLE_FLUSH_ON_PAUSE = 0x80, | |
| AM_SAMPLE_STOPVALID = 0x100, | |
| AM_SAMPLE_ENDOFSTREAM = 0x200, | |
| AM_STREAM_MEDIA = 0, | |
| AM_STREAM_CONTROL = 1 | |
| }; | |
| cpp_quote("") | |
| typedef struct tagAM_SAMPLE2_PROPERTIES { | |
| DWORD cbData; | |
| DWORD dwTypeSpecificFlags; | |
| DWORD dwSampleFlags; | |
| LONG lActual; | |
| REFERENCE_TIME tStart; | |
| REFERENCE_TIME tStop; | |
| DWORD dwStreamId; | |
| AM_MEDIA_TYPE *pMediaType; | |
| BYTE *pbBuffer; | |
| LONG cbBuffer; | |
| } AM_SAMPLE2_PROPERTIES; | |
| cpp_quote("") | |
| [object, local, uuid (36b73884-c2c8-11cf-8b46-00805f6cef60), pointer_default (unique)] | |
| interface IMediaSample2 : IMediaSample { | |
| HRESULT GetProperties ([in] DWORD cbProperties, [out, size_is (cbProperties)] BYTE *pbProperties); | |
| HRESULT SetProperties ([in] DWORD cbProperties, [in, size_is (cbProperties)] const BYTE *pbProperties); | |
| } | |
| typedef IMediaSample2 *PMEDIASAMPLE2; | |
| cpp_quote("") | |
| [object, uuid (68961e68-832b-41ea-BC91-63593f3e70e3), pointer_default (unique)] | |
| interface IMediaSample2Config : IUnknown { | |
| HRESULT GetSurface ([out] IUnknown **ppDirect3DSurface9); | |
| }; | |
| #define AM_GBF_PREVFRAMESKIPPED 1 | |
| #define AM_GBF_NOTASYNCPOINT 2 | |
| cpp_quote("") | |
| cpp_quote("#define AM_GBF_PREVFRAMESKIPPED 1") | |
| cpp_quote("#define AM_GBF_NOTASYNCPOINT 2") | |
| cpp_quote("#define AM_GBF_NOWAIT 4") | |
| cpp_quote("#define AM_GBF_NODDSURFACELOCK 8") | |
| cpp_quote("") | |
| [object, local, uuid (56a8689c-0ad4-11ce-b03a-0020af0ba770), pointer_default (unique)] | |
| interface IMemAllocator : IUnknown { | |
| HRESULT SetProperties ([in] ALLOCATOR_PROPERTIES *pRequest, [out] ALLOCATOR_PROPERTIES *pActual); | |
| HRESULT GetProperties ([out] ALLOCATOR_PROPERTIES *pProps); | |
| HRESULT Commit (void); | |
| HRESULT Decommit (void); | |
| HRESULT GetBuffer ([out] IMediaSample **ppBuffer, [in, unique] REFERENCE_TIME *pStartTime, [in, unique] REFERENCE_TIME *pEndTime, [in] DWORD dwFlags); | |
| HRESULT ReleaseBuffer ([in] IMediaSample *pBuffer); | |
| } | |
| typedef IMemAllocator *PMEMALLOCATOR; | |
| cpp_quote("") | |
| [object, local, uuid (379a0cf0-c1de-11d2-abf5-00a0c905f375), pointer_default (unique)] | |
| interface IMemAllocatorCallbackTemp : IMemAllocator { | |
| HRESULT SetNotify ([in] IMemAllocatorNotifyCallbackTemp *pNotify); | |
| HRESULT GetFreeCount ([out] LONG *plBuffersFree); | |
| } | |
| cpp_quote("") | |
| [object, local, uuid (92980b30-c1de-11d2-abf5-00a0c905f375), pointer_default (unique)] | |
| interface IMemAllocatorNotifyCallbackTemp : IUnknown { | |
| HRESULT NotifyRelease (); | |
| } | |
| cpp_quote("") | |
| [object, local, uuid (56a8689d-0ad4-11ce-b03a-0020af0ba770), pointer_default (unique)] | |
| interface IMemInputPin : IUnknown { | |
| HRESULT GetAllocator ([out] IMemAllocator **ppAllocator); | |
| HRESULT NotifyAllocator ([in] IMemAllocator *pAllocator, [in] BOOL bReadOnly); | |
| HRESULT GetAllocatorRequirements ([out] ALLOCATOR_PROPERTIES *pProps); | |
| HRESULT Receive ([in] IMediaSample *pSample); | |
| HRESULT ReceiveMultiple ([in, size_is (nSamples)] IMediaSample **pSamples, [in] long nSamples, [out] long *nSamplesProcessed); | |
| HRESULT ReceiveCanBlock (); | |
| } | |
| typedef IMemInputPin *PMEMINPUTPIN; | |
| cpp_quote("") | |
| [object, local, uuid (a3d8cec0-7e5a-11cf-bbc5-00805f6cef20), pointer_default (unique)] | |
| interface IAMovieSetup : IUnknown { | |
| HRESULT Register (); | |
| HRESULT Unregister (); | |
| } | |
| typedef IAMovieSetup *PAMOVIESETUP; | |
| cpp_quote("") | |
| typedef enum AM_SEEKING_SeekingFlags { | |
| AM_SEEKING_NoPositioning = 0x0, | |
| AM_SEEKING_AbsolutePositioning = 0x1, | |
| AM_SEEKING_RelativePositioning = 0x2, | |
| AM_SEEKING_IncrementalPositioning = 0x3, | |
| AM_SEEKING_PositioningBitsMask = 0x3, | |
| AM_SEEKING_SeekToKeyFrame = 0x4, | |
| AM_SEEKING_ReturnTime = 0x8, | |
| AM_SEEKING_Segment = 0x10, | |
| AM_SEEKING_NoFlush = 0x20 | |
| } AM_SEEKING_SEEKING_FLAGS; | |
| cpp_quote("") | |
| typedef enum AM_SEEKING_SeekingCapabilities { | |
| AM_SEEKING_CanSeekAbsolute = 0x1, | |
| AM_SEEKING_CanSeekForwards = 0x2, | |
| AM_SEEKING_CanSeekBackwards = 0x4, | |
| AM_SEEKING_CanGetCurrentPos = 0x8, | |
| AM_SEEKING_CanGetStopPos = 0x10, | |
| AM_SEEKING_CanGetDuration = 0x20, | |
| AM_SEEKING_CanPlayBackwards = 0x40, | |
| AM_SEEKING_CanDoSegments = 0x80, | |
| AM_SEEKING_Source = 0x100 | |
| } AM_SEEKING_SEEKING_CAPABILITIES; | |
| cpp_quote("") | |
| [object, local, uuid (36b73880-c2c8-11cf-8b46-00805f6cef60), pointer_default (unique)] | |
| interface IMediaSeeking : IUnknown { | |
| HRESULT GetCapabilities ([out] DWORD *pCapabilities); | |
| HRESULT CheckCapabilities ([in, out] DWORD *pCapabilities); | |
| HRESULT IsFormatSupported ([in] const GUID *pFormat); | |
| HRESULT QueryPreferredFormat ([out] GUID *pFormat); | |
| HRESULT GetTimeFormat ([out] GUID *pFormat); | |
| HRESULT IsUsingTimeFormat ([in] const GUID *pFormat); | |
| HRESULT SetTimeFormat ([in] const GUID *pFormat); | |
| HRESULT GetDuration ([out] LONGLONG *pDuration); | |
| HRESULT GetStopPosition ([out] LONGLONG *pStop); | |
| HRESULT GetCurrentPosition ([out] LONGLONG *pCurrent); | |
| HRESULT ConvertTimeFormat ([out] LONGLONG *pTarget, [in] const GUID *pTargetFormat, [in] LONGLONG Source, [in] const GUID *pSourceFormat); | |
| HRESULT SetPositions ([in, out] LONGLONG *pCurrent, [in] DWORD dwCurrentFlags, [in, out] LONGLONG *pStop, [in] DWORD dwStopFlags); | |
| HRESULT GetPositions ([out] LONGLONG *pCurrent, [out] LONGLONG *pStop); | |
| HRESULT GetAvailable ([out] LONGLONG *pEarliest, [out] LONGLONG *pLatest); | |
| HRESULT SetRate ([in] double dRate); | |
| HRESULT GetRate ([out] double *pdRate); | |
| HRESULT GetPreroll ([out] LONGLONG *pllPreroll); | |
| } | |
| typedef IMediaSeeking *PMEDIASEEKING; | |
| cpp_quote("") | |
| cpp_quote("enum tagAM_MEDIAEVENT_FLAGS {") | |
| cpp_quote(" AM_MEDIAEVENT_NONOTIFY = 0x1") | |
| cpp_quote("};") | |
| cpp_quote("") | |
| cpp_quote("#endif") |