axcore.idl 14 KB

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