| 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") |