[1166] | 1 | cpp_quote("/**")
|
---|
| 2 | cpp_quote(" * This file is part of the mingw-w64 runtime package.")
|
---|
| 3 | cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.")
|
---|
| 4 | cpp_quote(" */")
|
---|
| 5 | cpp_quote("")
|
---|
| 6 | cpp_quote("#include <winapifamily.h>")
|
---|
| 7 | cpp_quote("")
|
---|
| 8 | cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
|
---|
| 9 | cpp_quote("")
|
---|
| 10 |
|
---|
| 11 | #define CHARS_IN_GUID 39
|
---|
| 12 |
|
---|
| 13 | cpp_quote("#define CHARS_IN_GUID 39")
|
---|
| 14 | cpp_quote("")
|
---|
| 15 |
|
---|
| 16 | /* GetTimeFormat is defined in winnls.h as
|
---|
| 17 | * either the W or A suffixed version */
|
---|
| 18 | cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
|
---|
| 19 | cpp_quote("#undef GetTimeFormat")
|
---|
| 20 | cpp_quote("#endif")
|
---|
| 21 | cpp_quote("")
|
---|
| 22 |
|
---|
| 23 | typedef struct _AMMediaType {
|
---|
| 24 | GUID majortype;
|
---|
| 25 | GUID subtype;
|
---|
| 26 | BOOL bFixedSizeSamples;
|
---|
| 27 | BOOL bTemporalCompression;
|
---|
| 28 | ULONG lSampleSize;
|
---|
| 29 | GUID formattype;
|
---|
| 30 | IUnknown *pUnk;
|
---|
| 31 | ULONG cbFormat;
|
---|
| 32 | [size_is (cbFormat)] BYTE *pbFormat;
|
---|
| 33 | } AM_MEDIA_TYPE;
|
---|
| 34 |
|
---|
| 35 | cpp_quote("")
|
---|
| 36 | typedef enum _PinDirection {
|
---|
| 37 | PINDIR_INPUT,
|
---|
| 38 | PINDIR_OUTPUT
|
---|
| 39 | } PIN_DIRECTION;
|
---|
| 40 |
|
---|
| 41 | #define MAX_PIN_NAME 128
|
---|
| 42 | #define MAX_FILTER_NAME 128
|
---|
| 43 |
|
---|
| 44 | cpp_quote("")
|
---|
| 45 | cpp_quote("#define MAX_PIN_NAME 128")
|
---|
| 46 | cpp_quote("#define MAX_FILTER_NAME 128")
|
---|
| 47 |
|
---|
| 48 | cpp_quote("")
|
---|
| 49 | cpp_quote("#ifndef REFERENCE_TIME_DEFINED")
|
---|
| 50 | cpp_quote("#define REFERENCE_TIME_DEFINED")
|
---|
| 51 | typedef LONGLONG REFERENCE_TIME;
|
---|
| 52 | cpp_quote("#endif")
|
---|
| 53 | cpp_quote("")
|
---|
| 54 | cpp_quote("#ifndef REFTIME_DEFINED")
|
---|
| 55 | cpp_quote("#define REFTIME_DEFINED")
|
---|
| 56 | typedef double REFTIME;
|
---|
| 57 | cpp_quote("#endif")
|
---|
| 58 | cpp_quote("")
|
---|
| 59 | typedef DWORD_PTR HSEMAPHORE;
|
---|
| 60 | typedef DWORD_PTR HEVENT;
|
---|
| 61 |
|
---|
| 62 | cpp_quote("")
|
---|
| 63 | typedef struct _AllocatorProperties {
|
---|
| 64 | long cBuffers;
|
---|
| 65 | long cbBuffer;
|
---|
| 66 | long cbAlign;
|
---|
| 67 | long cbPrefix;
|
---|
| 68 | } ALLOCATOR_PROPERTIES;
|
---|
| 69 |
|
---|
| 70 | cpp_quote("")
|
---|
| 71 | interface IAMovieSetup;
|
---|
| 72 | interface IEnumFilters;
|
---|
| 73 | interface IEnumMediaTypes;
|
---|
| 74 | interface IEnumPins;
|
---|
| 75 | interface IBaseFilter;
|
---|
| 76 | interface IFilterGraph;
|
---|
| 77 | interface IMediaFilter;
|
---|
| 78 | interface IMediaSample;
|
---|
| 79 | interface IMemAllocator;
|
---|
| 80 | interface IMemAllocatorCallbackTemp;
|
---|
| 81 | interface IMemAllocatorNotifyCallbackTemp;
|
---|
| 82 | interface IMemInputPin;
|
---|
| 83 | interface IPin;
|
---|
| 84 | interface IReferenceClock;
|
---|
| 85 |
|
---|
| 86 | cpp_quote("")
|
---|
| 87 | [object, local, uuid (56a86891-0ad4-11ce-b03a-0020af0ba770), pointer_default (unique)]
|
---|
| 88 | interface IPin : IUnknown {
|
---|
| 89 | typedef struct _PinInfo {
|
---|
| 90 | IBaseFilter *pFilter;
|
---|
| 91 | PIN_DIRECTION dir;
|
---|
| 92 | WCHAR achName[MAX_PIN_NAME];
|
---|
| 93 | } PIN_INFO;
|
---|
| 94 | cpp_quote("")
|
---|
| 95 | HRESULT Connect ([in] IPin *pReceivePin, [in] const AM_MEDIA_TYPE *pmt);
|
---|
| 96 | HRESULT ReceiveConnection ([in] IPin *pConnector, [in] const AM_MEDIA_TYPE *pmt);
|
---|
| 97 | HRESULT Disconnect (void);
|
---|
| 98 | HRESULT ConnectedTo ([out] IPin **pPin);
|
---|
| 99 | HRESULT ConnectionMediaType ([out] AM_MEDIA_TYPE *pmt);
|
---|
| 100 | HRESULT QueryPinInfo ([out] PIN_INFO *pInfo);
|
---|
| 101 | HRESULT QueryDirection ([out] PIN_DIRECTION *pPinDir);
|
---|
| 102 | HRESULT QueryId ([out] LPWSTR *Id);
|
---|
| 103 | HRESULT QueryAccept ([in] const AM_MEDIA_TYPE *pmt);
|
---|
| 104 | HRESULT EnumMediaTypes ([out] IEnumMediaTypes **ppEnum);
|
---|
| 105 | HRESULT QueryInternalConnections ([out] IPin **apPin, [in, out] ULONG *nPin);
|
---|
| 106 | HRESULT EndOfStream (void);
|
---|
| 107 | HRESULT BeginFlush (void);
|
---|
| 108 | HRESULT EndFlush (void);
|
---|
| 109 | HRESULT NewSegment ([in] REFERENCE_TIME tStart, [in] REFERENCE_TIME tStop, [in] double dRate);
|
---|
| 110 | }
|
---|
| 111 | typedef IPin *PPIN;
|
---|
| 112 |
|
---|
| 113 | cpp_quote("")
|
---|
| 114 | [object, local, uuid (56a86892-0ad4-11ce-b03a-0020af0ba770), pointer_default (unique)]
|
---|
| 115 | interface IEnumPins : IUnknown {
|
---|
| 116 | HRESULT Next ([in] ULONG cPins, [out, size_is (cPins)] IPin **ppPins, [out] ULONG *pcFetched);
|
---|
| 117 | HRESULT Skip ([in] ULONG cPins);
|
---|
| 118 | HRESULT Reset (void);
|
---|
| 119 | HRESULT Clone ([out] IEnumPins **ppEnum);
|
---|
| 120 | }
|
---|
| 121 | typedef IEnumPins *PENUMPINS;
|
---|
| 122 |
|
---|
| 123 | cpp_quote("")
|
---|
| 124 | [object, local, uuid (89c31040-846b-11ce-97d3-00aa0055595a), pointer_default (unique)]
|
---|
| 125 | interface IEnumMediaTypes : IUnknown {
|
---|
| 126 | HRESULT Next ([in] ULONG cMediaTypes, [out, size_is (cMediaTypes)] AM_MEDIA_TYPE **ppMediaTypes, [out] ULONG *pcFetched);
|
---|
| 127 | HRESULT Skip ([in] ULONG cMediaTypes);
|
---|
| 128 | HRESULT Reset (void);
|
---|
| 129 | HRESULT Clone ([out] IEnumMediaTypes **ppEnum);
|
---|
| 130 | }
|
---|
| 131 | typedef IEnumMediaTypes *PENUMMEDIATYPES;
|
---|
| 132 |
|
---|
| 133 | cpp_quote("")
|
---|
| 134 | [object, local, uuid (56a8689f-0ad4-11ce-b03a-0020af0ba770), pointer_default (unique)]
|
---|
| 135 | interface IFilterGraph : IUnknown {
|
---|
| 136 | HRESULT AddFilter ([in] IBaseFilter *pFilter, [in, string] LPCWSTR pName);
|
---|
| 137 | HRESULT RemoveFilter ([in] IBaseFilter *pFilter);
|
---|
| 138 | HRESULT EnumFilters ([out] IEnumFilters **ppEnum);
|
---|
| 139 | HRESULT FindFilterByName ([in, string] LPCWSTR pName, [out] IBaseFilter **ppFilter);
|
---|
| 140 | HRESULT ConnectDirect ([in] IPin *ppinOut, [in] IPin *ppinIn, [in, unique] const AM_MEDIA_TYPE *pmt);
|
---|
| 141 | HRESULT Reconnect ([in] IPin *ppin);
|
---|
| 142 | HRESULT Disconnect ([in] IPin *ppin);
|
---|
| 143 | HRESULT SetDefaultSyncSource (void);
|
---|
| 144 | }
|
---|
| 145 | typedef IFilterGraph *PFILTERGRAPH;
|
---|
| 146 |
|
---|
| 147 | cpp_quote("")
|
---|
| 148 | [object, local, uuid (56a86893-0ad4-11ce-b03a-0020af0ba770), pointer_default (unique)]
|
---|
| 149 | interface IEnumFilters : IUnknown {
|
---|
| 150 | HRESULT Next ([in] ULONG cFilters, [out] IBaseFilter **ppFilter, [out] ULONG *pcFetched);
|
---|
| 151 | HRESULT Skip ([in] ULONG cFilters);
|
---|
| 152 | HRESULT Reset (void);
|
---|
| 153 | HRESULT Clone ([out] IEnumFilters **ppEnum);
|
---|
| 154 | }
|
---|
| 155 | typedef IEnumFilters *PENUMFILTERS;
|
---|
| 156 |
|
---|
| 157 | cpp_quote("")
|
---|
| 158 | [object, local, uuid (56a86899-0ad4-11ce-b03a-0020af0ba770), pointer_default (unique)]
|
---|
| 159 | interface IMediaFilter : IPersist {
|
---|
| 160 | typedef enum _FilterState {
|
---|
| 161 | State_Stopped,
|
---|
| 162 | State_Paused,
|
---|
| 163 | State_Running
|
---|
| 164 | } FILTER_STATE;
|
---|
| 165 | cpp_quote("")
|
---|
| 166 | HRESULT Stop (void);
|
---|
| 167 | HRESULT Pause (void);
|
---|
| 168 | HRESULT Run (REFERENCE_TIME tStart);
|
---|
| 169 | HRESULT GetState ([in] DWORD dwMilliSecsTimeout, [out] FILTER_STATE *State);
|
---|
| 170 | HRESULT SetSyncSource ([in] IReferenceClock *pClock);
|
---|
| 171 | HRESULT GetSyncSource ([out] IReferenceClock **pClock);
|
---|
| 172 | }
|
---|
| 173 | typedef IMediaFilter *PMEDIAFILTER;
|
---|
| 174 |
|
---|
| 175 | cpp_quote("")
|
---|
| 176 | [object, local, uuid (56a86895-0ad4-11ce-b03a-0020af0ba770), pointer_default (unique)]
|
---|
| 177 | interface IBaseFilter : IMediaFilter {
|
---|
| 178 | typedef struct _FilterInfo {
|
---|
| 179 | WCHAR achName[MAX_FILTER_NAME];
|
---|
| 180 | IFilterGraph *pGraph;
|
---|
| 181 | } FILTER_INFO;
|
---|
| 182 | cpp_quote("")
|
---|
| 183 | HRESULT EnumPins ([out] IEnumPins **ppEnum);
|
---|
| 184 | HRESULT FindPin ([in, string] LPCWSTR Id, [out] IPin **ppPin);
|
---|
| 185 | HRESULT QueryFilterInfo ([out] FILTER_INFO *pInfo);
|
---|
| 186 | HRESULT JoinFilterGraph ([in] IFilterGraph *pGraph, [in, string] LPCWSTR pName);
|
---|
| 187 | HRESULT QueryVendorInfo ([out, string] LPWSTR *pVendorInfo);
|
---|
| 188 | }
|
---|
| 189 | typedef IBaseFilter *PFILTER;
|
---|
| 190 |
|
---|
| 191 | cpp_quote("")
|
---|
| 192 | [object, local, uuid (56a86897-0ad4-11ce-b03a-0020af0ba770), pointer_default (unique)]
|
---|
| 193 | interface IReferenceClock : IUnknown {
|
---|
| 194 | HRESULT GetTime ([out] REFERENCE_TIME *pTime);
|
---|
| 195 | HRESULT AdviseTime ([in] REFERENCE_TIME baseTime, [in] REFERENCE_TIME streamTime, [in] HEVENT hEvent, [out] DWORD_PTR *pdwAdviseCookie);
|
---|
| 196 | HRESULT AdvisePeriodic ([in] REFERENCE_TIME startTime, [in] REFERENCE_TIME periodTime, [in] HSEMAPHORE hSemaphore, [out] DWORD_PTR *pdwAdviseCookie);
|
---|
| 197 | HRESULT Unadvise ([in] DWORD_PTR dwAdviseCookie);
|
---|
| 198 | }
|
---|
| 199 | typedef IReferenceClock *PREFERENCECLOCK;
|
---|
| 200 |
|
---|
| 201 | cpp_quote("")
|
---|
| 202 | [object, local, uuid (ebec459c-2eca-4d42-a8af-30df557614b8), pointer_default (unique)]
|
---|
| 203 | interface IReferenceClockTimerControl : IUnknown {
|
---|
| 204 | HRESULT SetDefaultTimerResolution (REFERENCE_TIME timerResolution);
|
---|
| 205 | HRESULT GetDefaultTimerResolution (REFERENCE_TIME *pTimerResolution);
|
---|
| 206 | }
|
---|
| 207 |
|
---|
| 208 | cpp_quote("")
|
---|
| 209 | [object, local, uuid (36b73885-c2c8-11cf-8b46-00805f6cef60), pointer_default (unique)]
|
---|
| 210 | interface IReferenceClock2 : IReferenceClock {
|
---|
| 211 | }
|
---|
| 212 | typedef IReferenceClock2 *PREFERENCECLOCK2;
|
---|
| 213 |
|
---|
| 214 | cpp_quote("")
|
---|
| 215 | [object, local, uuid (56a8689a-0ad4-11ce-b03a-0020af0ba770), pointer_default (unique)]
|
---|
| 216 | interface IMediaSample : IUnknown {
|
---|
| 217 | HRESULT GetPointer ([out] BYTE **ppBuffer);
|
---|
| 218 | long GetSize (void);
|
---|
| 219 | HRESULT GetTime ([out] REFERENCE_TIME *pTimeStart, [out] REFERENCE_TIME *pTimeEnd);
|
---|
| 220 | HRESULT SetTime ([in] REFERENCE_TIME *pTimeStart, [in] REFERENCE_TIME *pTimeEnd);
|
---|
| 221 | HRESULT IsSyncPoint (void);
|
---|
| 222 | HRESULT SetSyncPoint (BOOL bIsSyncPoint);
|
---|
| 223 | HRESULT IsPreroll (void);
|
---|
| 224 | HRESULT SetPreroll (BOOL bIsPreroll);
|
---|
| 225 | long GetActualDataLength (void);
|
---|
| 226 | HRESULT SetActualDataLength (long);
|
---|
| 227 | HRESULT GetMediaType ([out] AM_MEDIA_TYPE **ppMediaType);
|
---|
| 228 | HRESULT SetMediaType ([in] AM_MEDIA_TYPE *pMediaType);
|
---|
| 229 | HRESULT IsDiscontinuity (void);
|
---|
| 230 | HRESULT SetDiscontinuity (BOOL bDiscontinuity);
|
---|
| 231 | HRESULT GetMediaTime ([out] LONGLONG *pTimeStart, [out] LONGLONG *pTimeEnd);
|
---|
| 232 | HRESULT SetMediaTime ([in] LONGLONG *pTimeStart, [in] LONGLONG *pTimeEnd);
|
---|
| 233 | }
|
---|
| 234 | typedef IMediaSample *PMEDIASAMPLE;
|
---|
| 235 |
|
---|
| 236 | cpp_quote("")
|
---|
| 237 | enum tagAM_SAMPLE_PROPERTY_FLAGS {
|
---|
| 238 | AM_SAMPLE_SPLICEPOINT = 0x1,
|
---|
| 239 | AM_SAMPLE_PREROLL = 0x2,
|
---|
| 240 | AM_SAMPLE_DATADISCONTINUITY = 0x4,
|
---|
| 241 | AM_SAMPLE_TYPECHANGED = 0x8,
|
---|
| 242 | AM_SAMPLE_TIMEVALID = 0x10,
|
---|
| 243 | AM_SAMPLE_TIMEDISCONTINUITY = 0x40,
|
---|
| 244 | AM_SAMPLE_FLUSH_ON_PAUSE = 0x80,
|
---|
| 245 | AM_SAMPLE_STOPVALID = 0x100,
|
---|
| 246 | AM_SAMPLE_ENDOFSTREAM = 0x200,
|
---|
| 247 | AM_STREAM_MEDIA = 0,
|
---|
| 248 | AM_STREAM_CONTROL = 1
|
---|
| 249 | };
|
---|
| 250 |
|
---|
| 251 | cpp_quote("")
|
---|
| 252 | typedef struct tagAM_SAMPLE2_PROPERTIES {
|
---|
| 253 | DWORD cbData;
|
---|
| 254 | DWORD dwTypeSpecificFlags;
|
---|
| 255 | DWORD dwSampleFlags;
|
---|
| 256 | LONG lActual;
|
---|
| 257 | REFERENCE_TIME tStart;
|
---|
| 258 | REFERENCE_TIME tStop;
|
---|
| 259 | DWORD dwStreamId;
|
---|
| 260 | AM_MEDIA_TYPE *pMediaType;
|
---|
| 261 | BYTE *pbBuffer;
|
---|
| 262 | LONG cbBuffer;
|
---|
| 263 | } AM_SAMPLE2_PROPERTIES;
|
---|
| 264 |
|
---|
| 265 | cpp_quote("")
|
---|
| 266 | [object, local, uuid (36b73884-c2c8-11cf-8b46-00805f6cef60), pointer_default (unique)]
|
---|
| 267 | interface IMediaSample2 : IMediaSample {
|
---|
| 268 | HRESULT GetProperties ([in] DWORD cbProperties, [out, size_is (cbProperties)] BYTE *pbProperties);
|
---|
| 269 | HRESULT SetProperties ([in] DWORD cbProperties, [in, size_is (cbProperties)] const BYTE *pbProperties);
|
---|
| 270 | }
|
---|
| 271 | typedef IMediaSample2 *PMEDIASAMPLE2;
|
---|
| 272 |
|
---|
| 273 | cpp_quote("")
|
---|
| 274 | [object, uuid (68961e68-832b-41ea-BC91-63593f3e70e3), pointer_default (unique)]
|
---|
| 275 | interface IMediaSample2Config : IUnknown {
|
---|
| 276 | HRESULT GetSurface ([out] IUnknown **ppDirect3DSurface9);
|
---|
| 277 | };
|
---|
| 278 |
|
---|
| 279 | #define AM_GBF_PREVFRAMESKIPPED 1
|
---|
| 280 | #define AM_GBF_NOTASYNCPOINT 2
|
---|
| 281 |
|
---|
| 282 | cpp_quote("")
|
---|
| 283 | cpp_quote("#define AM_GBF_PREVFRAMESKIPPED 1")
|
---|
| 284 | cpp_quote("#define AM_GBF_NOTASYNCPOINT 2")
|
---|
| 285 | cpp_quote("#define AM_GBF_NOWAIT 4")
|
---|
| 286 | cpp_quote("#define AM_GBF_NODDSURFACELOCK 8")
|
---|
| 287 |
|
---|
| 288 | cpp_quote("")
|
---|
| 289 | [object, local, uuid (56a8689c-0ad4-11ce-b03a-0020af0ba770), pointer_default (unique)]
|
---|
| 290 | interface IMemAllocator : IUnknown {
|
---|
| 291 | HRESULT SetProperties ([in] ALLOCATOR_PROPERTIES *pRequest, [out] ALLOCATOR_PROPERTIES *pActual);
|
---|
| 292 | HRESULT GetProperties ([out] ALLOCATOR_PROPERTIES *pProps);
|
---|
| 293 | HRESULT Commit (void);
|
---|
| 294 | HRESULT Decommit (void);
|
---|
| 295 | HRESULT GetBuffer ([out] IMediaSample **ppBuffer, [in, unique] REFERENCE_TIME *pStartTime, [in, unique] REFERENCE_TIME *pEndTime, [in] DWORD dwFlags);
|
---|
| 296 | HRESULT ReleaseBuffer ([in] IMediaSample *pBuffer);
|
---|
| 297 | }
|
---|
| 298 | typedef IMemAllocator *PMEMALLOCATOR;
|
---|
| 299 |
|
---|
| 300 | cpp_quote("")
|
---|
| 301 | [object, local, uuid (379a0cf0-c1de-11d2-abf5-00a0c905f375), pointer_default (unique)]
|
---|
| 302 | interface IMemAllocatorCallbackTemp : IMemAllocator {
|
---|
| 303 | HRESULT SetNotify ([in] IMemAllocatorNotifyCallbackTemp *pNotify);
|
---|
| 304 | HRESULT GetFreeCount ([out] LONG *plBuffersFree);
|
---|
| 305 | }
|
---|
| 306 |
|
---|
| 307 | cpp_quote("")
|
---|
| 308 | [object, local, uuid (92980b30-c1de-11d2-abf5-00a0c905f375), pointer_default (unique)]
|
---|
| 309 | interface IMemAllocatorNotifyCallbackTemp : IUnknown {
|
---|
| 310 | HRESULT NotifyRelease ();
|
---|
| 311 | }
|
---|
| 312 |
|
---|
| 313 | cpp_quote("")
|
---|
| 314 | [object, local, uuid (56a8689d-0ad4-11ce-b03a-0020af0ba770), pointer_default (unique)]
|
---|
| 315 | interface IMemInputPin : IUnknown {
|
---|
| 316 | HRESULT GetAllocator ([out] IMemAllocator **ppAllocator);
|
---|
| 317 | HRESULT NotifyAllocator ([in] IMemAllocator *pAllocator, [in] BOOL bReadOnly);
|
---|
| 318 | HRESULT GetAllocatorRequirements ([out] ALLOCATOR_PROPERTIES *pProps);
|
---|
| 319 | HRESULT Receive ([in] IMediaSample *pSample);
|
---|
| 320 | HRESULT ReceiveMultiple ([in, size_is (nSamples)] IMediaSample **pSamples, [in] long nSamples, [out] long *nSamplesProcessed);
|
---|
| 321 | HRESULT ReceiveCanBlock ();
|
---|
| 322 | }
|
---|
| 323 | typedef IMemInputPin *PMEMINPUTPIN;
|
---|
| 324 |
|
---|
| 325 | cpp_quote("")
|
---|
| 326 | [object, local, uuid (a3d8cec0-7e5a-11cf-bbc5-00805f6cef20), pointer_default (unique)]
|
---|
| 327 | interface IAMovieSetup : IUnknown {
|
---|
| 328 | HRESULT Register ();
|
---|
| 329 | HRESULT Unregister ();
|
---|
| 330 | }
|
---|
| 331 | typedef IAMovieSetup *PAMOVIESETUP;
|
---|
| 332 |
|
---|
| 333 | cpp_quote("")
|
---|
| 334 | typedef enum AM_SEEKING_SeekingFlags {
|
---|
| 335 | AM_SEEKING_NoPositioning = 0x0,
|
---|
| 336 | AM_SEEKING_AbsolutePositioning = 0x1,
|
---|
| 337 | AM_SEEKING_RelativePositioning = 0x2,
|
---|
| 338 | AM_SEEKING_IncrementalPositioning = 0x3,
|
---|
| 339 | AM_SEEKING_PositioningBitsMask = 0x3,
|
---|
| 340 | AM_SEEKING_SeekToKeyFrame = 0x4,
|
---|
| 341 | AM_SEEKING_ReturnTime = 0x8,
|
---|
| 342 | AM_SEEKING_Segment = 0x10,
|
---|
| 343 | AM_SEEKING_NoFlush = 0x20
|
---|
| 344 | } AM_SEEKING_SEEKING_FLAGS;
|
---|
| 345 |
|
---|
| 346 | cpp_quote("")
|
---|
| 347 | typedef enum AM_SEEKING_SeekingCapabilities {
|
---|
| 348 | AM_SEEKING_CanSeekAbsolute = 0x1,
|
---|
| 349 | AM_SEEKING_CanSeekForwards = 0x2,
|
---|
| 350 | AM_SEEKING_CanSeekBackwards = 0x4,
|
---|
| 351 | AM_SEEKING_CanGetCurrentPos = 0x8,
|
---|
| 352 | AM_SEEKING_CanGetStopPos = 0x10,
|
---|
| 353 | AM_SEEKING_CanGetDuration = 0x20,
|
---|
| 354 | AM_SEEKING_CanPlayBackwards = 0x40,
|
---|
| 355 | AM_SEEKING_CanDoSegments = 0x80,
|
---|
| 356 | AM_SEEKING_Source = 0x100
|
---|
| 357 | } AM_SEEKING_SEEKING_CAPABILITIES;
|
---|
| 358 |
|
---|
| 359 | cpp_quote("")
|
---|
| 360 | [object, local, uuid (36b73880-c2c8-11cf-8b46-00805f6cef60), pointer_default (unique)]
|
---|
| 361 | interface IMediaSeeking : IUnknown {
|
---|
| 362 | HRESULT GetCapabilities ([out] DWORD *pCapabilities);
|
---|
| 363 | HRESULT CheckCapabilities ([in, out] DWORD *pCapabilities);
|
---|
| 364 | HRESULT IsFormatSupported ([in] const GUID *pFormat);
|
---|
| 365 | HRESULT QueryPreferredFormat ([out] GUID *pFormat);
|
---|
| 366 | HRESULT GetTimeFormat ([out] GUID *pFormat);
|
---|
| 367 | HRESULT IsUsingTimeFormat ([in] const GUID *pFormat);
|
---|
| 368 | HRESULT SetTimeFormat ([in] const GUID *pFormat);
|
---|
| 369 | HRESULT GetDuration ([out] LONGLONG *pDuration);
|
---|
| 370 | HRESULT GetStopPosition ([out] LONGLONG *pStop);
|
---|
| 371 | HRESULT GetCurrentPosition ([out] LONGLONG *pCurrent);
|
---|
| 372 | HRESULT ConvertTimeFormat ([out] LONGLONG *pTarget, [in] const GUID *pTargetFormat, [in] LONGLONG Source, [in] const GUID *pSourceFormat);
|
---|
| 373 | HRESULT SetPositions ([in, out] LONGLONG *pCurrent, [in] DWORD dwCurrentFlags, [in, out] LONGLONG *pStop, [in] DWORD dwStopFlags);
|
---|
| 374 | HRESULT GetPositions ([out] LONGLONG *pCurrent, [out] LONGLONG *pStop);
|
---|
| 375 | HRESULT GetAvailable ([out] LONGLONG *pEarliest, [out] LONGLONG *pLatest);
|
---|
| 376 | HRESULT SetRate ([in] double dRate);
|
---|
| 377 | HRESULT GetRate ([out] double *pdRate);
|
---|
| 378 | HRESULT GetPreroll ([out] LONGLONG *pllPreroll);
|
---|
| 379 | }
|
---|
| 380 | typedef IMediaSeeking *PMEDIASEEKING;
|
---|
| 381 | cpp_quote("")
|
---|
| 382 | cpp_quote("enum tagAM_MEDIAEVENT_FLAGS {")
|
---|
| 383 | cpp_quote(" AM_MEDIAEVENT_NONOTIFY = 0x1")
|
---|
| 384 | cpp_quote("};")
|
---|
| 385 |
|
---|
| 386 | cpp_quote("")
|
---|
| 387 | cpp_quote("#endif")
|
---|