austream.h 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618
  1. /*** Autogenerated by WIDL 7.7 from include/austream.idl - Do not edit ***/
  2. #ifdef _WIN32
  3. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  4. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  5. #endif
  6. #include <rpc.h>
  7. #include <rpcndr.h>
  8. #endif
  9. #ifndef COM_NO_WINDOWS_H
  10. #include <windows.h>
  11. #include <ole2.h>
  12. #endif
  13. #ifndef __austream_h__
  14. #define __austream_h__
  15. /* Forward declarations */
  16. #ifndef __IAudioMediaStream_FWD_DEFINED__
  17. #define __IAudioMediaStream_FWD_DEFINED__
  18. typedef interface IAudioMediaStream IAudioMediaStream;
  19. #ifdef __cplusplus
  20. interface IAudioMediaStream;
  21. #endif /* __cplusplus */
  22. #endif
  23. #ifndef __IAudioStreamSample_FWD_DEFINED__
  24. #define __IAudioStreamSample_FWD_DEFINED__
  25. typedef interface IAudioStreamSample IAudioStreamSample;
  26. #ifdef __cplusplus
  27. interface IAudioStreamSample;
  28. #endif /* __cplusplus */
  29. #endif
  30. #ifndef __IMemoryData_FWD_DEFINED__
  31. #define __IMemoryData_FWD_DEFINED__
  32. typedef interface IMemoryData IMemoryData;
  33. #ifdef __cplusplus
  34. interface IMemoryData;
  35. #endif /* __cplusplus */
  36. #endif
  37. #ifndef __IAudioData_FWD_DEFINED__
  38. #define __IAudioData_FWD_DEFINED__
  39. typedef interface IAudioData IAudioData;
  40. #ifdef __cplusplus
  41. interface IAudioData;
  42. #endif /* __cplusplus */
  43. #endif
  44. /* Headers for imported files */
  45. #include <unknwn.h>
  46. #include <mmstream.h>
  47. #ifdef __cplusplus
  48. extern "C" {
  49. #endif
  50. #if 0
  51. typedef struct tWAVEFORMATEX WAVEFORMATEX;
  52. #endif
  53. #ifndef __IAudioMediaStream_FWD_DEFINED__
  54. #define __IAudioMediaStream_FWD_DEFINED__
  55. typedef interface IAudioMediaStream IAudioMediaStream;
  56. #ifdef __cplusplus
  57. interface IAudioMediaStream;
  58. #endif /* __cplusplus */
  59. #endif
  60. #ifndef __IAudioStreamSample_FWD_DEFINED__
  61. #define __IAudioStreamSample_FWD_DEFINED__
  62. typedef interface IAudioStreamSample IAudioStreamSample;
  63. #ifdef __cplusplus
  64. interface IAudioStreamSample;
  65. #endif /* __cplusplus */
  66. #endif
  67. #ifndef __IMemoryData_FWD_DEFINED__
  68. #define __IMemoryData_FWD_DEFINED__
  69. typedef interface IMemoryData IMemoryData;
  70. #ifdef __cplusplus
  71. interface IMemoryData;
  72. #endif /* __cplusplus */
  73. #endif
  74. #ifndef __IAudioData_FWD_DEFINED__
  75. #define __IAudioData_FWD_DEFINED__
  76. typedef interface IAudioData IAudioData;
  77. #ifdef __cplusplus
  78. interface IAudioData;
  79. #endif /* __cplusplus */
  80. #endif
  81. /*****************************************************************************
  82. * IAudioMediaStream interface
  83. */
  84. #ifndef __IAudioMediaStream_INTERFACE_DEFINED__
  85. #define __IAudioMediaStream_INTERFACE_DEFINED__
  86. DEFINE_GUID(IID_IAudioMediaStream, 0xf7537560, 0xa3be, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45);
  87. #if defined(__cplusplus) && !defined(CINTERFACE)
  88. MIDL_INTERFACE("f7537560-a3be-11d0-8212-00c04fc32c45")
  89. IAudioMediaStream : public IMediaStream
  90. {
  91. virtual HRESULT STDMETHODCALLTYPE GetFormat(
  92. WAVEFORMATEX *pWaveFormatCurrent) = 0;
  93. virtual HRESULT STDMETHODCALLTYPE SetFormat(
  94. const WAVEFORMATEX *lpWaveFormat) = 0;
  95. virtual HRESULT STDMETHODCALLTYPE CreateSample(
  96. IAudioData *pAudioData,
  97. DWORD dwFlags,
  98. IAudioStreamSample **ppSample) = 0;
  99. };
  100. #ifdef __CRT_UUID_DECL
  101. __CRT_UUID_DECL(IAudioMediaStream, 0xf7537560, 0xa3be, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45)
  102. #endif
  103. #else
  104. typedef struct IAudioMediaStreamVtbl {
  105. BEGIN_INTERFACE
  106. /*** IUnknown methods ***/
  107. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  108. IAudioMediaStream *This,
  109. REFIID riid,
  110. void **ppvObject);
  111. ULONG (STDMETHODCALLTYPE *AddRef)(
  112. IAudioMediaStream *This);
  113. ULONG (STDMETHODCALLTYPE *Release)(
  114. IAudioMediaStream *This);
  115. /*** IMediaStream methods ***/
  116. HRESULT (STDMETHODCALLTYPE *GetMultiMediaStream)(
  117. IAudioMediaStream *This,
  118. IMultiMediaStream **ppMultiMediaStream);
  119. HRESULT (STDMETHODCALLTYPE *GetInformation)(
  120. IAudioMediaStream *This,
  121. MSPID *pPurposeId,
  122. STREAM_TYPE *pType);
  123. HRESULT (STDMETHODCALLTYPE *SetSameFormat)(
  124. IAudioMediaStream *This,
  125. IMediaStream *pStreamThatHasDesiredFormat,
  126. DWORD dwFlags);
  127. HRESULT (STDMETHODCALLTYPE *AllocateSample)(
  128. IAudioMediaStream *This,
  129. DWORD dwFlags,
  130. IStreamSample **ppSample);
  131. HRESULT (STDMETHODCALLTYPE *CreateSharedSample)(
  132. IAudioMediaStream *This,
  133. IStreamSample *pExistingSample,
  134. DWORD dwFlags,
  135. IStreamSample **ppNewSample);
  136. HRESULT (STDMETHODCALLTYPE *SendEndOfStream)(
  137. IAudioMediaStream *This,
  138. DWORD dwFlags);
  139. /*** IAudioMediaStream methods ***/
  140. HRESULT (STDMETHODCALLTYPE *GetFormat)(
  141. IAudioMediaStream *This,
  142. WAVEFORMATEX *pWaveFormatCurrent);
  143. HRESULT (STDMETHODCALLTYPE *SetFormat)(
  144. IAudioMediaStream *This,
  145. const WAVEFORMATEX *lpWaveFormat);
  146. HRESULT (STDMETHODCALLTYPE *CreateSample)(
  147. IAudioMediaStream *This,
  148. IAudioData *pAudioData,
  149. DWORD dwFlags,
  150. IAudioStreamSample **ppSample);
  151. END_INTERFACE
  152. } IAudioMediaStreamVtbl;
  153. interface IAudioMediaStream {
  154. CONST_VTBL IAudioMediaStreamVtbl* lpVtbl;
  155. };
  156. #ifdef COBJMACROS
  157. #ifndef WIDL_C_INLINE_WRAPPERS
  158. /*** IUnknown methods ***/
  159. #define IAudioMediaStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  160. #define IAudioMediaStream_AddRef(This) (This)->lpVtbl->AddRef(This)
  161. #define IAudioMediaStream_Release(This) (This)->lpVtbl->Release(This)
  162. /*** IMediaStream methods ***/
  163. #define IAudioMediaStream_GetMultiMediaStream(This,ppMultiMediaStream) (This)->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream)
  164. #define IAudioMediaStream_GetInformation(This,pPurposeId,pType) (This)->lpVtbl->GetInformation(This,pPurposeId,pType)
  165. #define IAudioMediaStream_SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags) (This)->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags)
  166. #define IAudioMediaStream_AllocateSample(This,dwFlags,ppSample) (This)->lpVtbl->AllocateSample(This,dwFlags,ppSample)
  167. #define IAudioMediaStream_CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample) (This)->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample)
  168. #define IAudioMediaStream_SendEndOfStream(This,dwFlags) (This)->lpVtbl->SendEndOfStream(This,dwFlags)
  169. /*** IAudioMediaStream methods ***/
  170. #define IAudioMediaStream_GetFormat(This,pWaveFormatCurrent) (This)->lpVtbl->GetFormat(This,pWaveFormatCurrent)
  171. #define IAudioMediaStream_SetFormat(This,lpWaveFormat) (This)->lpVtbl->SetFormat(This,lpWaveFormat)
  172. #define IAudioMediaStream_CreateSample(This,pAudioData,dwFlags,ppSample) (This)->lpVtbl->CreateSample(This,pAudioData,dwFlags,ppSample)
  173. #else
  174. /*** IUnknown methods ***/
  175. static FORCEINLINE HRESULT IAudioMediaStream_QueryInterface(IAudioMediaStream* This,REFIID riid,void **ppvObject) {
  176. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  177. }
  178. static FORCEINLINE ULONG IAudioMediaStream_AddRef(IAudioMediaStream* This) {
  179. return This->lpVtbl->AddRef(This);
  180. }
  181. static FORCEINLINE ULONG IAudioMediaStream_Release(IAudioMediaStream* This) {
  182. return This->lpVtbl->Release(This);
  183. }
  184. /*** IMediaStream methods ***/
  185. static FORCEINLINE HRESULT IAudioMediaStream_GetMultiMediaStream(IAudioMediaStream* This,IMultiMediaStream **ppMultiMediaStream) {
  186. return This->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream);
  187. }
  188. static FORCEINLINE HRESULT IAudioMediaStream_GetInformation(IAudioMediaStream* This,MSPID *pPurposeId,STREAM_TYPE *pType) {
  189. return This->lpVtbl->GetInformation(This,pPurposeId,pType);
  190. }
  191. static FORCEINLINE HRESULT IAudioMediaStream_SetSameFormat(IAudioMediaStream* This,IMediaStream *pStreamThatHasDesiredFormat,DWORD dwFlags) {
  192. return This->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags);
  193. }
  194. static FORCEINLINE HRESULT IAudioMediaStream_AllocateSample(IAudioMediaStream* This,DWORD dwFlags,IStreamSample **ppSample) {
  195. return This->lpVtbl->AllocateSample(This,dwFlags,ppSample);
  196. }
  197. static FORCEINLINE HRESULT IAudioMediaStream_CreateSharedSample(IAudioMediaStream* This,IStreamSample *pExistingSample,DWORD dwFlags,IStreamSample **ppNewSample) {
  198. return This->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample);
  199. }
  200. static FORCEINLINE HRESULT IAudioMediaStream_SendEndOfStream(IAudioMediaStream* This,DWORD dwFlags) {
  201. return This->lpVtbl->SendEndOfStream(This,dwFlags);
  202. }
  203. /*** IAudioMediaStream methods ***/
  204. static FORCEINLINE HRESULT IAudioMediaStream_GetFormat(IAudioMediaStream* This,WAVEFORMATEX *pWaveFormatCurrent) {
  205. return This->lpVtbl->GetFormat(This,pWaveFormatCurrent);
  206. }
  207. static FORCEINLINE HRESULT IAudioMediaStream_SetFormat(IAudioMediaStream* This,const WAVEFORMATEX *lpWaveFormat) {
  208. return This->lpVtbl->SetFormat(This,lpWaveFormat);
  209. }
  210. static FORCEINLINE HRESULT IAudioMediaStream_CreateSample(IAudioMediaStream* This,IAudioData *pAudioData,DWORD dwFlags,IAudioStreamSample **ppSample) {
  211. return This->lpVtbl->CreateSample(This,pAudioData,dwFlags,ppSample);
  212. }
  213. #endif
  214. #endif
  215. #endif
  216. #endif /* __IAudioMediaStream_INTERFACE_DEFINED__ */
  217. /*****************************************************************************
  218. * IAudioStreamSample interface
  219. */
  220. #ifndef __IAudioStreamSample_INTERFACE_DEFINED__
  221. #define __IAudioStreamSample_INTERFACE_DEFINED__
  222. DEFINE_GUID(IID_IAudioStreamSample, 0x345fee00, 0xaba5, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45);
  223. #if defined(__cplusplus) && !defined(CINTERFACE)
  224. MIDL_INTERFACE("345fee00-aba5-11d0-8212-00c04fc32c45")
  225. IAudioStreamSample : public IStreamSample
  226. {
  227. virtual HRESULT STDMETHODCALLTYPE GetAudioData(
  228. IAudioData **ppAudio) = 0;
  229. };
  230. #ifdef __CRT_UUID_DECL
  231. __CRT_UUID_DECL(IAudioStreamSample, 0x345fee00, 0xaba5, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45)
  232. #endif
  233. #else
  234. typedef struct IAudioStreamSampleVtbl {
  235. BEGIN_INTERFACE
  236. /*** IUnknown methods ***/
  237. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  238. IAudioStreamSample *This,
  239. REFIID riid,
  240. void **ppvObject);
  241. ULONG (STDMETHODCALLTYPE *AddRef)(
  242. IAudioStreamSample *This);
  243. ULONG (STDMETHODCALLTYPE *Release)(
  244. IAudioStreamSample *This);
  245. /*** IStreamSample methods ***/
  246. HRESULT (STDMETHODCALLTYPE *GetMediaStream)(
  247. IAudioStreamSample *This,
  248. IMediaStream **ppMediaStream);
  249. HRESULT (STDMETHODCALLTYPE *GetSampleTimes)(
  250. IAudioStreamSample *This,
  251. STREAM_TIME *pStartTime,
  252. STREAM_TIME *pEndTime,
  253. STREAM_TIME *pCurrentTime);
  254. HRESULT (STDMETHODCALLTYPE *SetSampleTimes)(
  255. IAudioStreamSample *This,
  256. const STREAM_TIME *pStartTime,
  257. const STREAM_TIME *pEndTime);
  258. HRESULT (STDMETHODCALLTYPE *Update)(
  259. IAudioStreamSample *This,
  260. DWORD dwFlags,
  261. HANDLE hEvent,
  262. PAPCFUNC pfnAPC,
  263. DWORD dwAPCData);
  264. HRESULT (STDMETHODCALLTYPE *CompletionStatus)(
  265. IAudioStreamSample *This,
  266. DWORD dwFlags,
  267. DWORD dwMilliseconds);
  268. /*** IAudioStreamSample methods ***/
  269. HRESULT (STDMETHODCALLTYPE *GetAudioData)(
  270. IAudioStreamSample *This,
  271. IAudioData **ppAudio);
  272. END_INTERFACE
  273. } IAudioStreamSampleVtbl;
  274. interface IAudioStreamSample {
  275. CONST_VTBL IAudioStreamSampleVtbl* lpVtbl;
  276. };
  277. #ifdef COBJMACROS
  278. #ifndef WIDL_C_INLINE_WRAPPERS
  279. /*** IUnknown methods ***/
  280. #define IAudioStreamSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  281. #define IAudioStreamSample_AddRef(This) (This)->lpVtbl->AddRef(This)
  282. #define IAudioStreamSample_Release(This) (This)->lpVtbl->Release(This)
  283. /*** IStreamSample methods ***/
  284. #define IAudioStreamSample_GetMediaStream(This,ppMediaStream) (This)->lpVtbl->GetMediaStream(This,ppMediaStream)
  285. #define IAudioStreamSample_GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime) (This)->lpVtbl->GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime)
  286. #define IAudioStreamSample_SetSampleTimes(This,pStartTime,pEndTime) (This)->lpVtbl->SetSampleTimes(This,pStartTime,pEndTime)
  287. #define IAudioStreamSample_Update(This,dwFlags,hEvent,pfnAPC,dwAPCData) (This)->lpVtbl->Update(This,dwFlags,hEvent,pfnAPC,dwAPCData)
  288. #define IAudioStreamSample_CompletionStatus(This,dwFlags,dwMilliseconds) (This)->lpVtbl->CompletionStatus(This,dwFlags,dwMilliseconds)
  289. /*** IAudioStreamSample methods ***/
  290. #define IAudioStreamSample_GetAudioData(This,ppAudio) (This)->lpVtbl->GetAudioData(This,ppAudio)
  291. #else
  292. /*** IUnknown methods ***/
  293. static FORCEINLINE HRESULT IAudioStreamSample_QueryInterface(IAudioStreamSample* This,REFIID riid,void **ppvObject) {
  294. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  295. }
  296. static FORCEINLINE ULONG IAudioStreamSample_AddRef(IAudioStreamSample* This) {
  297. return This->lpVtbl->AddRef(This);
  298. }
  299. static FORCEINLINE ULONG IAudioStreamSample_Release(IAudioStreamSample* This) {
  300. return This->lpVtbl->Release(This);
  301. }
  302. /*** IStreamSample methods ***/
  303. static FORCEINLINE HRESULT IAudioStreamSample_GetMediaStream(IAudioStreamSample* This,IMediaStream **ppMediaStream) {
  304. return This->lpVtbl->GetMediaStream(This,ppMediaStream);
  305. }
  306. static FORCEINLINE HRESULT IAudioStreamSample_GetSampleTimes(IAudioStreamSample* This,STREAM_TIME *pStartTime,STREAM_TIME *pEndTime,STREAM_TIME *pCurrentTime) {
  307. return This->lpVtbl->GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime);
  308. }
  309. static FORCEINLINE HRESULT IAudioStreamSample_SetSampleTimes(IAudioStreamSample* This,const STREAM_TIME *pStartTime,const STREAM_TIME *pEndTime) {
  310. return This->lpVtbl->SetSampleTimes(This,pStartTime,pEndTime);
  311. }
  312. static FORCEINLINE HRESULT IAudioStreamSample_Update(IAudioStreamSample* This,DWORD dwFlags,HANDLE hEvent,PAPCFUNC pfnAPC,DWORD dwAPCData) {
  313. return This->lpVtbl->Update(This,dwFlags,hEvent,pfnAPC,dwAPCData);
  314. }
  315. static FORCEINLINE HRESULT IAudioStreamSample_CompletionStatus(IAudioStreamSample* This,DWORD dwFlags,DWORD dwMilliseconds) {
  316. return This->lpVtbl->CompletionStatus(This,dwFlags,dwMilliseconds);
  317. }
  318. /*** IAudioStreamSample methods ***/
  319. static FORCEINLINE HRESULT IAudioStreamSample_GetAudioData(IAudioStreamSample* This,IAudioData **ppAudio) {
  320. return This->lpVtbl->GetAudioData(This,ppAudio);
  321. }
  322. #endif
  323. #endif
  324. #endif
  325. #endif /* __IAudioStreamSample_INTERFACE_DEFINED__ */
  326. /*****************************************************************************
  327. * IMemoryData interface
  328. */
  329. #ifndef __IMemoryData_INTERFACE_DEFINED__
  330. #define __IMemoryData_INTERFACE_DEFINED__
  331. DEFINE_GUID(IID_IMemoryData, 0x327fc560, 0xaf60, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45);
  332. #if defined(__cplusplus) && !defined(CINTERFACE)
  333. MIDL_INTERFACE("327fc560-af60-11d0-8212-00c04fc32c45")
  334. IMemoryData : public IUnknown
  335. {
  336. virtual HRESULT STDMETHODCALLTYPE SetBuffer(
  337. DWORD cbSize,
  338. BYTE *pbData,
  339. DWORD dwFlags) = 0;
  340. virtual HRESULT STDMETHODCALLTYPE GetInfo(
  341. DWORD *pdwLength,
  342. BYTE **ppbData,
  343. DWORD *pcbActualData) = 0;
  344. virtual HRESULT STDMETHODCALLTYPE SetActual(
  345. DWORD cbDataValid) = 0;
  346. };
  347. #ifdef __CRT_UUID_DECL
  348. __CRT_UUID_DECL(IMemoryData, 0x327fc560, 0xaf60, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45)
  349. #endif
  350. #else
  351. typedef struct IMemoryDataVtbl {
  352. BEGIN_INTERFACE
  353. /*** IUnknown methods ***/
  354. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  355. IMemoryData *This,
  356. REFIID riid,
  357. void **ppvObject);
  358. ULONG (STDMETHODCALLTYPE *AddRef)(
  359. IMemoryData *This);
  360. ULONG (STDMETHODCALLTYPE *Release)(
  361. IMemoryData *This);
  362. /*** IMemoryData methods ***/
  363. HRESULT (STDMETHODCALLTYPE *SetBuffer)(
  364. IMemoryData *This,
  365. DWORD cbSize,
  366. BYTE *pbData,
  367. DWORD dwFlags);
  368. HRESULT (STDMETHODCALLTYPE *GetInfo)(
  369. IMemoryData *This,
  370. DWORD *pdwLength,
  371. BYTE **ppbData,
  372. DWORD *pcbActualData);
  373. HRESULT (STDMETHODCALLTYPE *SetActual)(
  374. IMemoryData *This,
  375. DWORD cbDataValid);
  376. END_INTERFACE
  377. } IMemoryDataVtbl;
  378. interface IMemoryData {
  379. CONST_VTBL IMemoryDataVtbl* lpVtbl;
  380. };
  381. #ifdef COBJMACROS
  382. #ifndef WIDL_C_INLINE_WRAPPERS
  383. /*** IUnknown methods ***/
  384. #define IMemoryData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  385. #define IMemoryData_AddRef(This) (This)->lpVtbl->AddRef(This)
  386. #define IMemoryData_Release(This) (This)->lpVtbl->Release(This)
  387. /*** IMemoryData methods ***/
  388. #define IMemoryData_SetBuffer(This,cbSize,pbData,dwFlags) (This)->lpVtbl->SetBuffer(This,cbSize,pbData,dwFlags)
  389. #define IMemoryData_GetInfo(This,pdwLength,ppbData,pcbActualData) (This)->lpVtbl->GetInfo(This,pdwLength,ppbData,pcbActualData)
  390. #define IMemoryData_SetActual(This,cbDataValid) (This)->lpVtbl->SetActual(This,cbDataValid)
  391. #else
  392. /*** IUnknown methods ***/
  393. static FORCEINLINE HRESULT IMemoryData_QueryInterface(IMemoryData* This,REFIID riid,void **ppvObject) {
  394. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  395. }
  396. static FORCEINLINE ULONG IMemoryData_AddRef(IMemoryData* This) {
  397. return This->lpVtbl->AddRef(This);
  398. }
  399. static FORCEINLINE ULONG IMemoryData_Release(IMemoryData* This) {
  400. return This->lpVtbl->Release(This);
  401. }
  402. /*** IMemoryData methods ***/
  403. static FORCEINLINE HRESULT IMemoryData_SetBuffer(IMemoryData* This,DWORD cbSize,BYTE *pbData,DWORD dwFlags) {
  404. return This->lpVtbl->SetBuffer(This,cbSize,pbData,dwFlags);
  405. }
  406. static FORCEINLINE HRESULT IMemoryData_GetInfo(IMemoryData* This,DWORD *pdwLength,BYTE **ppbData,DWORD *pcbActualData) {
  407. return This->lpVtbl->GetInfo(This,pdwLength,ppbData,pcbActualData);
  408. }
  409. static FORCEINLINE HRESULT IMemoryData_SetActual(IMemoryData* This,DWORD cbDataValid) {
  410. return This->lpVtbl->SetActual(This,cbDataValid);
  411. }
  412. #endif
  413. #endif
  414. #endif
  415. #endif /* __IMemoryData_INTERFACE_DEFINED__ */
  416. /*****************************************************************************
  417. * IAudioData interface
  418. */
  419. #ifndef __IAudioData_INTERFACE_DEFINED__
  420. #define __IAudioData_INTERFACE_DEFINED__
  421. DEFINE_GUID(IID_IAudioData, 0x54c719c0, 0xaf60, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45);
  422. #if defined(__cplusplus) && !defined(CINTERFACE)
  423. MIDL_INTERFACE("54c719c0-af60-11d0-8212-00c04fc32c45")
  424. IAudioData : public IMemoryData
  425. {
  426. virtual HRESULT STDMETHODCALLTYPE GetFormat(
  427. WAVEFORMATEX *pWaveFormatCurrent) = 0;
  428. virtual HRESULT STDMETHODCALLTYPE SetFormat(
  429. const WAVEFORMATEX *lpWaveFormat) = 0;
  430. };
  431. #ifdef __CRT_UUID_DECL
  432. __CRT_UUID_DECL(IAudioData, 0x54c719c0, 0xaf60, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45)
  433. #endif
  434. #else
  435. typedef struct IAudioDataVtbl {
  436. BEGIN_INTERFACE
  437. /*** IUnknown methods ***/
  438. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  439. IAudioData *This,
  440. REFIID riid,
  441. void **ppvObject);
  442. ULONG (STDMETHODCALLTYPE *AddRef)(
  443. IAudioData *This);
  444. ULONG (STDMETHODCALLTYPE *Release)(
  445. IAudioData *This);
  446. /*** IMemoryData methods ***/
  447. HRESULT (STDMETHODCALLTYPE *SetBuffer)(
  448. IAudioData *This,
  449. DWORD cbSize,
  450. BYTE *pbData,
  451. DWORD dwFlags);
  452. HRESULT (STDMETHODCALLTYPE *GetInfo)(
  453. IAudioData *This,
  454. DWORD *pdwLength,
  455. BYTE **ppbData,
  456. DWORD *pcbActualData);
  457. HRESULT (STDMETHODCALLTYPE *SetActual)(
  458. IAudioData *This,
  459. DWORD cbDataValid);
  460. /*** IAudioData methods ***/
  461. HRESULT (STDMETHODCALLTYPE *GetFormat)(
  462. IAudioData *This,
  463. WAVEFORMATEX *pWaveFormatCurrent);
  464. HRESULT (STDMETHODCALLTYPE *SetFormat)(
  465. IAudioData *This,
  466. const WAVEFORMATEX *lpWaveFormat);
  467. END_INTERFACE
  468. } IAudioDataVtbl;
  469. interface IAudioData {
  470. CONST_VTBL IAudioDataVtbl* lpVtbl;
  471. };
  472. #ifdef COBJMACROS
  473. #ifndef WIDL_C_INLINE_WRAPPERS
  474. /*** IUnknown methods ***/
  475. #define IAudioData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  476. #define IAudioData_AddRef(This) (This)->lpVtbl->AddRef(This)
  477. #define IAudioData_Release(This) (This)->lpVtbl->Release(This)
  478. /*** IMemoryData methods ***/
  479. #define IAudioData_SetBuffer(This,cbSize,pbData,dwFlags) (This)->lpVtbl->SetBuffer(This,cbSize,pbData,dwFlags)
  480. #define IAudioData_GetInfo(This,pdwLength,ppbData,pcbActualData) (This)->lpVtbl->GetInfo(This,pdwLength,ppbData,pcbActualData)
  481. #define IAudioData_SetActual(This,cbDataValid) (This)->lpVtbl->SetActual(This,cbDataValid)
  482. /*** IAudioData methods ***/
  483. #define IAudioData_GetFormat(This,pWaveFormatCurrent) (This)->lpVtbl->GetFormat(This,pWaveFormatCurrent)
  484. #define IAudioData_SetFormat(This,lpWaveFormat) (This)->lpVtbl->SetFormat(This,lpWaveFormat)
  485. #else
  486. /*** IUnknown methods ***/
  487. static FORCEINLINE HRESULT IAudioData_QueryInterface(IAudioData* This,REFIID riid,void **ppvObject) {
  488. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  489. }
  490. static FORCEINLINE ULONG IAudioData_AddRef(IAudioData* This) {
  491. return This->lpVtbl->AddRef(This);
  492. }
  493. static FORCEINLINE ULONG IAudioData_Release(IAudioData* This) {
  494. return This->lpVtbl->Release(This);
  495. }
  496. /*** IMemoryData methods ***/
  497. static FORCEINLINE HRESULT IAudioData_SetBuffer(IAudioData* This,DWORD cbSize,BYTE *pbData,DWORD dwFlags) {
  498. return This->lpVtbl->SetBuffer(This,cbSize,pbData,dwFlags);
  499. }
  500. static FORCEINLINE HRESULT IAudioData_GetInfo(IAudioData* This,DWORD *pdwLength,BYTE **ppbData,DWORD *pcbActualData) {
  501. return This->lpVtbl->GetInfo(This,pdwLength,ppbData,pcbActualData);
  502. }
  503. static FORCEINLINE HRESULT IAudioData_SetActual(IAudioData* This,DWORD cbDataValid) {
  504. return This->lpVtbl->SetActual(This,cbDataValid);
  505. }
  506. /*** IAudioData methods ***/
  507. static FORCEINLINE HRESULT IAudioData_GetFormat(IAudioData* This,WAVEFORMATEX *pWaveFormatCurrent) {
  508. return This->lpVtbl->GetFormat(This,pWaveFormatCurrent);
  509. }
  510. static FORCEINLINE HRESULT IAudioData_SetFormat(IAudioData* This,const WAVEFORMATEX *lpWaveFormat) {
  511. return This->lpVtbl->SetFormat(This,lpWaveFormat);
  512. }
  513. #endif
  514. #endif
  515. #endif
  516. #endif /* __IAudioData_INTERFACE_DEFINED__ */
  517. /* Begin additional prototypes for all interfaces */
  518. /* End additional prototypes */
  519. #ifdef __cplusplus
  520. }
  521. #endif
  522. #endif /* __austream_h__ */