wmaudiosdk.h 31 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009
  1. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  2. /* File created by MIDL compiler version 3.01.75 */
  3. /* at Mon Aug 09 13:10:31 1999
  4. */
  5. /* Compiler settings for .\wmaudiosdk.idl:
  6. Oicf (OptLev=i2), W1, Zp8, env=Win32, ms_ext, c_ext
  7. error checks: none
  8. */
  9. //@@MIDL_FILE_HEADING( )
  10. #include "rpc.h"
  11. #include "rpcndr.h"
  12. #ifndef COM_NO_WINDOWS_H
  13. #include "windows.h"
  14. #include "ole2.h"
  15. #endif /*COM_NO_WINDOWS_H*/
  16. #ifndef __wmaudiosdk_h__
  17. #define __wmaudiosdk_h__
  18. #ifdef __cplusplus
  19. extern "C"{
  20. #endif
  21. /* Forward Declarations */
  22. #ifndef __IWMAudioWriter_FWD_DEFINED__
  23. #define __IWMAudioWriter_FWD_DEFINED__
  24. typedef interface IWMAudioWriter IWMAudioWriter;
  25. #endif /* __IWMAudioWriter_FWD_DEFINED__ */
  26. #ifndef __IWMAudioReader_FWD_DEFINED__
  27. #define __IWMAudioReader_FWD_DEFINED__
  28. typedef interface IWMAudioReader IWMAudioReader;
  29. #endif /* __IWMAudioReader_FWD_DEFINED__ */
  30. #ifndef __IWMAudioReadCallback_FWD_DEFINED__
  31. #define __IWMAudioReadCallback_FWD_DEFINED__
  32. typedef interface IWMAudioReadCallback IWMAudioReadCallback;
  33. #endif /* __IWMAudioReadCallback_FWD_DEFINED__ */
  34. #ifndef __IWMAudioInfo_FWD_DEFINED__
  35. #define __IWMAudioInfo_FWD_DEFINED__
  36. typedef interface IWMAudioInfo IWMAudioInfo;
  37. #endif /* __IWMAudioInfo_FWD_DEFINED__ */
  38. /* header files for imported files */
  39. #include "oaidl.h"
  40. #include "ocidl.h"
  41. void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
  42. void __RPC_USER MIDL_user_free( void __RPC_FAR * );
  43. /****************************************
  44. * Generated header for interface: __MIDL_itf_wmaudiosdk_0000
  45. * at Mon Aug 09 13:10:31 1999
  46. * using MIDL 3.01.75
  47. ****************************************/
  48. /* [local] */
  49. //=========================================================================
  50. //
  51. // THIS SOFTWARE HAS BEEN LICENSED FROM MICROSOFT CORPORATION PURSUANT
  52. // TO THE TERMS OF AN END USER LICENSE AGREEMENT ("EULA").
  53. // PLEASE REFER TO THE TEXT OF THE EULA TO DETERMINE THE RIGHTS TO USE THE SOFTWARE.
  54. //
  55. // Copyright (C) Microsoft Corporation, 1996 - 1999 All Rights Reserved.
  56. //
  57. //=========================================================================
  58. typedef struct tWAVEFORMATEX WAVEFORMATEX;
  59. #include "nserror.h"
  60. #include "asferr.h"
  61. EXTERN_GUID( IID_IWMAudioWriter, 0x1A5636F1, 0xDB5E, 0x11d2, 0x9D, 0x41, 0x00, 0x60, 0x08, 0x31, 0x78, 0xAF );
  62. EXTERN_GUID( IID_IWMAudioReader, 0x1A5636F2, 0xDB5E, 0x11d2, 0x9D, 0x41, 0x00, 0x60, 0x08, 0x31, 0x78, 0xAF );
  63. EXTERN_GUID( IID_IWMAudioReadCallback, 0x1A5636F3, 0xDB5E, 0x11d2, 0x9D, 0x41, 0x00, 0x60, 0x08, 0x31, 0x78, 0xAF );
  64. EXTERN_GUID( IID_IWMAudioInfo, 0xaa139f0, 0xf6a8, 0x11d2, 0x97, 0xf7, 0x0, 0xa0, 0xc9, 0x5e, 0xa8, 0x50 );
  65. #define WMT_SAMPLE_MUSIC 0
  66. #define WMT_SAMPLE_SPEECH 0xFFFFFFFF
  67. ////////////////////////////////////////////////////////////////
  68. //
  69. // These are the special case attributes that give information
  70. // about the ASF file.
  71. //
  72. static const DWORD g_dwWMASpecialAttributes = 7;
  73. static const WCHAR *g_wszWMADuration = L"Duration";
  74. static const WCHAR *g_wszWMABitrate = L"Bitrate";
  75. static const WCHAR *g_wszWMASeekable = L"Seekable";
  76. static const WCHAR *g_wszWMABroadcast = L"Broadcast";
  77. static const WCHAR *g_wszWMAProtected = L"Is_Protected";
  78. static const WCHAR *g_wszWMATrusted = L"Is_Trusted";
  79. static const WCHAR *g_wszWMASignature_Name = L"Signature_Name";
  80. ////////////////////////////////////////////////////////////////
  81. //
  82. // The content description object supports 5 basic attributes.
  83. //
  84. static const DWORD g_dwWMAContentAttributes = 5;
  85. static const WCHAR *g_wszWMATitle = L"Title";
  86. static const WCHAR *g_wszWMAAuthor = L"Author";
  87. static const WCHAR *g_wszWMADescription = L"Description";
  88. static const WCHAR *g_wszWMARating = L"Rating";
  89. static const WCHAR *g_wszWMACopyright = L"Copyright";
  90. ////////////////////////////////////////////////////////////////
  91. //
  92. // These attributes are used to set DRM properties on an ASF.
  93. //
  94. static const WCHAR *g_wszWMAUse_DRM = L"Use_DRM";
  95. static const WCHAR *g_wszWMADRM_Flags = L"DRM_Flags";
  96. static const WCHAR *g_wszWMADRM_Level = L"DRM_Level";
  97. ////////////////////////////////////////////////////////////////
  98. //
  99. // These are the additional attributes defined in the ASF attribute
  100. // namespace that gives information about the content in the ASF file.
  101. //
  102. static const WCHAR *g_wszWMAAlbumTitle = L"WM/AlbumTitle";
  103. static const WCHAR *g_wszWMATrack = L"WM/Track";
  104. static const WCHAR *g_wszWMAPromotionURL = L"WM/PromotionURL";
  105. static const WCHAR *g_wszWMAAlbumCoverURL = L"WM/AlbumCoverURL";
  106. static const WCHAR *g_wszWMAGenre = L"WM/Genre";
  107. static const WCHAR *g_wszWMAYear = L"WM/Year";
  108. HRESULT STDMETHODCALLTYPE WMAudioCreateWriter( LPCWSTR pszFilename, IWMAudioWriter **ppIWMAudioWriter );
  109. HRESULT STDMETHODCALLTYPE WMAudioCreateReader( LPCWSTR pszFilename, IWMAudioReadCallback *pIWMReadCallback, IWMAudioReader **ppIWMAudioReader, void *pvReserved );
  110. HRESULT STDMETHODCALLTYPE WMAudioCreateInfo( LPCWSTR pszFilename, IWMAudioInfo **ppIWMAudioInfo );
  111. /*
  112. // Already defined in wmsdk.h
  113. typedef
  114. enum WMT_STATUS
  115. { WMT_ERROR = 0,
  116. WMT_BUFFERING_START = 1,
  117. WMT_BUFFERING_STOP = 2,
  118. WMT_EOF = 3,
  119. WMT_LOCATING = 4,
  120. WMT_CONNECTING = 5,
  121. WMT_NO_RIGHTS = 6,
  122. WMT_MISSING_CODEC = 7
  123. } WMT_STATUS;
  124. typedef
  125. enum WMT_ATTR_DATATYPE
  126. { WMT_TYPE_DWORD = 0,
  127. WMT_TYPE_STRING = 1,
  128. WMT_TYPE_BINARY = 2,
  129. WMT_TYPE_BOOL = 3
  130. } WMT_ATTR_DATATYPE;
  131. typedef
  132. enum WMT_RIGHTS
  133. { WMT_RIGHT_PLAYBACK = 0x1,
  134. WMT_RIGHT_COPY_TO_PORTABLE = 0x2,
  135. WMT_RIGHT_COPY_TO_CD = 0x8
  136. } WMT_RIGHTS;
  137. typedef
  138. enum WMT_AUDIO_OPTIONS
  139. { WMT_OPTION_DEFAULT = 0
  140. } WMT_AUDIO_OPTIONS;
  141. */
  142. extern RPC_IF_HANDLE __MIDL_itf_wmaudiosdk_0000_v0_0_c_ifspec;
  143. extern RPC_IF_HANDLE __MIDL_itf_wmaudiosdk_0000_v0_0_s_ifspec;
  144. #ifndef __IWMAudioWriter_INTERFACE_DEFINED__
  145. #define __IWMAudioWriter_INTERFACE_DEFINED__
  146. /****************************************
  147. * Generated header for interface: IWMAudioWriter
  148. * at Mon Aug 09 13:10:31 1999
  149. * using MIDL 3.01.75
  150. ****************************************/
  151. /* [local][unique][helpstring][uuid][object] */
  152. EXTERN_C const IID IID_IWMAudioWriter;
  153. #if defined(__cplusplus) && !defined(CINTERFACE)
  154. interface DECLSPEC_UUID("1A5636F1-DB5E-11d2-9D41-0060083178AF")
  155. IWMAudioWriter : public IUnknown
  156. {
  157. public:
  158. virtual HRESULT STDMETHODCALLTYPE SetAttribute(
  159. /* [in] */ LPCWSTR pszName,
  160. /* [in] */ WMT_ATTR_DATATYPE Type,
  161. /* [in] */ const BYTE __RPC_FAR *pValue,
  162. /* [in] */ WORD cbLength) = 0;
  163. virtual HRESULT STDMETHODCALLTYPE SetInputFormat(
  164. /* [in] */ const WAVEFORMATEX __RPC_FAR *pWfx) = 0;
  165. virtual HRESULT STDMETHODCALLTYPE SetOutputFormat(
  166. /* [in] */ DWORD dwBitrate,
  167. /* [in] */ DWORD dwSampleRate,
  168. /* [in] */ DWORD dwNumChannels,
  169. /* [in] */ DWORD dwAudioOptions) = 0;
  170. virtual HRESULT STDMETHODCALLTYPE GetOutputFormat(
  171. /* [out] */ DWORD __RPC_FAR *pdwBitrate,
  172. /* [out] */ DWORD __RPC_FAR *pdwSampleRate,
  173. /* [out] */ DWORD __RPC_FAR *pdwNumChannels,
  174. /* [out] */ DWORD __RPC_FAR *pdwAudioOptions) = 0;
  175. virtual HRESULT STDMETHODCALLTYPE WriteSample(
  176. /* [in] */ const BYTE __RPC_FAR *pData,
  177. /* [in] */ DWORD cbData) = 0;
  178. virtual HRESULT STDMETHODCALLTYPE Flush( void) = 0;
  179. };
  180. #else /* C style interface */
  181. typedef struct IWMAudioWriterVtbl
  182. {
  183. BEGIN_INTERFACE
  184. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
  185. IWMAudioWriter __RPC_FAR * This,
  186. /* [in] */ REFIID riid,
  187. /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  188. ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
  189. IWMAudioWriter __RPC_FAR * This);
  190. ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
  191. IWMAudioWriter __RPC_FAR * This);
  192. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAttribute )(
  193. IWMAudioWriter __RPC_FAR * This,
  194. /* [in] */ LPCWSTR pszName,
  195. /* [in] */ WMT_ATTR_DATATYPE Type,
  196. /* [in] */ const BYTE __RPC_FAR *pValue,
  197. /* [in] */ WORD cbLength);
  198. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetInputFormat )(
  199. IWMAudioWriter __RPC_FAR * This,
  200. /* [in] */ const WAVEFORMATEX __RPC_FAR *pWfx);
  201. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetOutputFormat )(
  202. IWMAudioWriter __RPC_FAR * This,
  203. /* [in] */ DWORD dwBitrate,
  204. /* [in] */ DWORD dwSampleRate,
  205. /* [in] */ DWORD dwNumChannels,
  206. /* [in] */ DWORD dwAudioOptions);
  207. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetOutputFormat )(
  208. IWMAudioWriter __RPC_FAR * This,
  209. /* [out] */ DWORD __RPC_FAR *pdwBitrate,
  210. /* [out] */ DWORD __RPC_FAR *pdwSampleRate,
  211. /* [out] */ DWORD __RPC_FAR *pdwNumChannels,
  212. /* [out] */ DWORD __RPC_FAR *pdwAudioOptions);
  213. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteSample )(
  214. IWMAudioWriter __RPC_FAR * This,
  215. /* [in] */ const BYTE __RPC_FAR *pData,
  216. /* [in] */ DWORD cbData);
  217. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Flush )(
  218. IWMAudioWriter __RPC_FAR * This);
  219. END_INTERFACE
  220. } IWMAudioWriterVtbl;
  221. interface IWMAudioWriter
  222. {
  223. CONST_VTBL struct IWMAudioWriterVtbl __RPC_FAR *lpVtbl;
  224. };
  225. #ifdef COBJMACROS
  226. #define IWMAudioWriter_QueryInterface(This,riid,ppvObject) \
  227. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  228. #define IWMAudioWriter_AddRef(This) \
  229. (This)->lpVtbl -> AddRef(This)
  230. #define IWMAudioWriter_Release(This) \
  231. (This)->lpVtbl -> Release(This)
  232. #define IWMAudioWriter_SetAttribute(This,pszName,Type,pValue,cbLength) \
  233. (This)->lpVtbl -> SetAttribute(This,pszName,Type,pValue,cbLength)
  234. #define IWMAudioWriter_SetInputFormat(This,pWfx) \
  235. (This)->lpVtbl -> SetInputFormat(This,pWfx)
  236. #define IWMAudioWriter_SetOutputFormat(This,dwBitrate,dwSampleRate,dwNumChannels,dwAudioOptions) \
  237. (This)->lpVtbl -> SetOutputFormat(This,dwBitrate,dwSampleRate,dwNumChannels,dwAudioOptions)
  238. #define IWMAudioWriter_GetOutputFormat(This,pdwBitrate,pdwSampleRate,pdwNumChannels,pdwAudioOptions) \
  239. (This)->lpVtbl -> GetOutputFormat(This,pdwBitrate,pdwSampleRate,pdwNumChannels,pdwAudioOptions)
  240. #define IWMAudioWriter_WriteSample(This,pData,cbData) \
  241. (This)->lpVtbl -> WriteSample(This,pData,cbData)
  242. #define IWMAudioWriter_Flush(This) \
  243. (This)->lpVtbl -> Flush(This)
  244. #endif /* COBJMACROS */
  245. #endif /* C style interface */
  246. HRESULT STDMETHODCALLTYPE IWMAudioWriter_SetAttribute_Proxy(
  247. IWMAudioWriter __RPC_FAR * This,
  248. /* [in] */ LPCWSTR pszName,
  249. /* [in] */ WMT_ATTR_DATATYPE Type,
  250. /* [in] */ const BYTE __RPC_FAR *pValue,
  251. /* [in] */ WORD cbLength);
  252. void __RPC_STUB IWMAudioWriter_SetAttribute_Stub(
  253. IRpcStubBuffer *This,
  254. IRpcChannelBuffer *_pRpcChannelBuffer,
  255. PRPC_MESSAGE _pRpcMessage,
  256. DWORD *_pdwStubPhase);
  257. HRESULT STDMETHODCALLTYPE IWMAudioWriter_SetInputFormat_Proxy(
  258. IWMAudioWriter __RPC_FAR * This,
  259. /* [in] */ const WAVEFORMATEX __RPC_FAR *pWfx);
  260. void __RPC_STUB IWMAudioWriter_SetInputFormat_Stub(
  261. IRpcStubBuffer *This,
  262. IRpcChannelBuffer *_pRpcChannelBuffer,
  263. PRPC_MESSAGE _pRpcMessage,
  264. DWORD *_pdwStubPhase);
  265. HRESULT STDMETHODCALLTYPE IWMAudioWriter_SetOutputFormat_Proxy(
  266. IWMAudioWriter __RPC_FAR * This,
  267. /* [in] */ DWORD dwBitrate,
  268. /* [in] */ DWORD dwSampleRate,
  269. /* [in] */ DWORD dwNumChannels,
  270. /* [in] */ DWORD dwAudioOptions);
  271. void __RPC_STUB IWMAudioWriter_SetOutputFormat_Stub(
  272. IRpcStubBuffer *This,
  273. IRpcChannelBuffer *_pRpcChannelBuffer,
  274. PRPC_MESSAGE _pRpcMessage,
  275. DWORD *_pdwStubPhase);
  276. HRESULT STDMETHODCALLTYPE IWMAudioWriter_GetOutputFormat_Proxy(
  277. IWMAudioWriter __RPC_FAR * This,
  278. /* [out] */ DWORD __RPC_FAR *pdwBitrate,
  279. /* [out] */ DWORD __RPC_FAR *pdwSampleRate,
  280. /* [out] */ DWORD __RPC_FAR *pdwNumChannels,
  281. /* [out] */ DWORD __RPC_FAR *pdwAudioOptions);
  282. void __RPC_STUB IWMAudioWriter_GetOutputFormat_Stub(
  283. IRpcStubBuffer *This,
  284. IRpcChannelBuffer *_pRpcChannelBuffer,
  285. PRPC_MESSAGE _pRpcMessage,
  286. DWORD *_pdwStubPhase);
  287. HRESULT STDMETHODCALLTYPE IWMAudioWriter_WriteSample_Proxy(
  288. IWMAudioWriter __RPC_FAR * This,
  289. /* [in] */ const BYTE __RPC_FAR *pData,
  290. /* [in] */ DWORD cbData);
  291. void __RPC_STUB IWMAudioWriter_WriteSample_Stub(
  292. IRpcStubBuffer *This,
  293. IRpcChannelBuffer *_pRpcChannelBuffer,
  294. PRPC_MESSAGE _pRpcMessage,
  295. DWORD *_pdwStubPhase);
  296. HRESULT STDMETHODCALLTYPE IWMAudioWriter_Flush_Proxy(
  297. IWMAudioWriter __RPC_FAR * This);
  298. void __RPC_STUB IWMAudioWriter_Flush_Stub(
  299. IRpcStubBuffer *This,
  300. IRpcChannelBuffer *_pRpcChannelBuffer,
  301. PRPC_MESSAGE _pRpcMessage,
  302. DWORD *_pdwStubPhase);
  303. #endif /* __IWMAudioWriter_INTERFACE_DEFINED__ */
  304. #ifndef __IWMAudioReader_INTERFACE_DEFINED__
  305. #define __IWMAudioReader_INTERFACE_DEFINED__
  306. /****************************************
  307. * Generated header for interface: IWMAudioReader
  308. * at Mon Aug 09 13:10:31 1999
  309. * using MIDL 3.01.75
  310. ****************************************/
  311. /* [local][unique][helpstring][uuid][object] */
  312. EXTERN_C const IID IID_IWMAudioReader;
  313. #if defined(__cplusplus) && !defined(CINTERFACE)
  314. interface DECLSPEC_UUID("1A5636F2-DB5E-11d2-9D41-0060083178AF")
  315. IWMAudioReader : public IUnknown
  316. {
  317. public:
  318. virtual HRESULT STDMETHODCALLTYPE GetAttributeByName(
  319. /* [in] */ LPCWSTR pszName,
  320. /* [out] */ WMT_ATTR_DATATYPE __RPC_FAR *pType,
  321. /* [out] */ BYTE __RPC_FAR *pValue,
  322. /* [out][in] */ WORD __RPC_FAR *pcbLength) = 0;
  323. virtual HRESULT STDMETHODCALLTYPE GetAttributeCount(
  324. /* [out] */ WORD __RPC_FAR *pcAttributes) = 0;
  325. virtual HRESULT STDMETHODCALLTYPE GetAttributeByIndex(
  326. /* [in] */ WORD wIndex,
  327. /* [out] */ WCHAR __RPC_FAR *pwszName,
  328. /* [out][in] */ WORD __RPC_FAR *pcbNameLen,
  329. /* [out] */ WMT_ATTR_DATATYPE __RPC_FAR *pType,
  330. /* [out] */ BYTE __RPC_FAR *pValue,
  331. /* [out][in] */ WORD __RPC_FAR *pcbLength) = 0;
  332. virtual HRESULT STDMETHODCALLTYPE GetOutputFormat(
  333. /* [out] */ WAVEFORMATEX __RPC_FAR *pWfx,
  334. /* [in] */ DWORD cbSize) = 0;
  335. virtual HRESULT STDMETHODCALLTYPE Start( void) = 0;
  336. virtual HRESULT STDMETHODCALLTYPE Stop( void) = 0;
  337. virtual HRESULT STDMETHODCALLTYPE Seek(
  338. DWORD dwMsTime) = 0;
  339. };
  340. #else /* C style interface */
  341. typedef struct IWMAudioReaderVtbl
  342. {
  343. BEGIN_INTERFACE
  344. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
  345. IWMAudioReader __RPC_FAR * This,
  346. /* [in] */ REFIID riid,
  347. /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  348. ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
  349. IWMAudioReader __RPC_FAR * This);
  350. ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
  351. IWMAudioReader __RPC_FAR * This);
  352. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAttributeByName )(
  353. IWMAudioReader __RPC_FAR * This,
  354. /* [in] */ LPCWSTR pszName,
  355. /* [out] */ WMT_ATTR_DATATYPE __RPC_FAR *pType,
  356. /* [out] */ BYTE __RPC_FAR *pValue,
  357. /* [out][in] */ WORD __RPC_FAR *pcbLength);
  358. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAttributeCount )(
  359. IWMAudioReader __RPC_FAR * This,
  360. /* [out] */ WORD __RPC_FAR *pcAttributes);
  361. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAttributeByIndex )(
  362. IWMAudioReader __RPC_FAR * This,
  363. /* [in] */ WORD wIndex,
  364. /* [out] */ WCHAR __RPC_FAR *pwszName,
  365. /* [out][in] */ WORD __RPC_FAR *pcbNameLen,
  366. /* [out] */ WMT_ATTR_DATATYPE __RPC_FAR *pType,
  367. /* [out] */ BYTE __RPC_FAR *pValue,
  368. /* [out][in] */ WORD __RPC_FAR *pcbLength);
  369. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetOutputFormat )(
  370. IWMAudioReader __RPC_FAR * This,
  371. /* [out] */ WAVEFORMATEX __RPC_FAR *pWfx,
  372. /* [in] */ DWORD cbSize);
  373. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Start )(
  374. IWMAudioReader __RPC_FAR * This);
  375. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Stop )(
  376. IWMAudioReader __RPC_FAR * This);
  377. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Seek )(
  378. IWMAudioReader __RPC_FAR * This,
  379. DWORD dwMsTime);
  380. END_INTERFACE
  381. } IWMAudioReaderVtbl;
  382. interface IWMAudioReader
  383. {
  384. CONST_VTBL struct IWMAudioReaderVtbl __RPC_FAR *lpVtbl;
  385. };
  386. #ifdef COBJMACROS
  387. #define IWMAudioReader_QueryInterface(This,riid,ppvObject) \
  388. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  389. #define IWMAudioReader_AddRef(This) \
  390. (This)->lpVtbl -> AddRef(This)
  391. #define IWMAudioReader_Release(This) \
  392. (This)->lpVtbl -> Release(This)
  393. #define IWMAudioReader_GetAttributeByName(This,pszName,pType,pValue,pcbLength) \
  394. (This)->lpVtbl -> GetAttributeByName(This,pszName,pType,pValue,pcbLength)
  395. #define IWMAudioReader_GetAttributeCount(This,pcAttributes) \
  396. (This)->lpVtbl -> GetAttributeCount(This,pcAttributes)
  397. #define IWMAudioReader_GetAttributeByIndex(This,wIndex,pwszName,pcbNameLen,pType,pValue,pcbLength) \
  398. (This)->lpVtbl -> GetAttributeByIndex(This,wIndex,pwszName,pcbNameLen,pType,pValue,pcbLength)
  399. #define IWMAudioReader_GetOutputFormat(This,pWfx,cbSize) \
  400. (This)->lpVtbl -> GetOutputFormat(This,pWfx,cbSize)
  401. #define IWMAudioReader_Start(This) \
  402. (This)->lpVtbl -> Start(This)
  403. #define IWMAudioReader_Stop(This) \
  404. (This)->lpVtbl -> Stop(This)
  405. #define IWMAudioReader_Seek(This,dwMsTime) \
  406. (This)->lpVtbl -> Seek(This,dwMsTime)
  407. #endif /* COBJMACROS */
  408. #endif /* C style interface */
  409. HRESULT STDMETHODCALLTYPE IWMAudioReader_GetAttributeByName_Proxy(
  410. IWMAudioReader __RPC_FAR * This,
  411. /* [in] */ LPCWSTR pszName,
  412. /* [out] */ WMT_ATTR_DATATYPE __RPC_FAR *pType,
  413. /* [out] */ BYTE __RPC_FAR *pValue,
  414. /* [out][in] */ WORD __RPC_FAR *pcbLength);
  415. void __RPC_STUB IWMAudioReader_GetAttributeByName_Stub(
  416. IRpcStubBuffer *This,
  417. IRpcChannelBuffer *_pRpcChannelBuffer,
  418. PRPC_MESSAGE _pRpcMessage,
  419. DWORD *_pdwStubPhase);
  420. HRESULT STDMETHODCALLTYPE IWMAudioReader_GetAttributeCount_Proxy(
  421. IWMAudioReader __RPC_FAR * This,
  422. /* [out] */ WORD __RPC_FAR *pcAttributes);
  423. void __RPC_STUB IWMAudioReader_GetAttributeCount_Stub(
  424. IRpcStubBuffer *This,
  425. IRpcChannelBuffer *_pRpcChannelBuffer,
  426. PRPC_MESSAGE _pRpcMessage,
  427. DWORD *_pdwStubPhase);
  428. HRESULT STDMETHODCALLTYPE IWMAudioReader_GetAttributeByIndex_Proxy(
  429. IWMAudioReader __RPC_FAR * This,
  430. /* [in] */ WORD wIndex,
  431. /* [out] */ WCHAR __RPC_FAR *pwszName,
  432. /* [out][in] */ WORD __RPC_FAR *pcbNameLen,
  433. /* [out] */ WMT_ATTR_DATATYPE __RPC_FAR *pType,
  434. /* [out] */ BYTE __RPC_FAR *pValue,
  435. /* [out][in] */ WORD __RPC_FAR *pcbLength);
  436. void __RPC_STUB IWMAudioReader_GetAttributeByIndex_Stub(
  437. IRpcStubBuffer *This,
  438. IRpcChannelBuffer *_pRpcChannelBuffer,
  439. PRPC_MESSAGE _pRpcMessage,
  440. DWORD *_pdwStubPhase);
  441. HRESULT STDMETHODCALLTYPE IWMAudioReader_GetOutputFormat_Proxy(
  442. IWMAudioReader __RPC_FAR * This,
  443. /* [out] */ WAVEFORMATEX __RPC_FAR *pWfx,
  444. /* [in] */ DWORD cbSize);
  445. void __RPC_STUB IWMAudioReader_GetOutputFormat_Stub(
  446. IRpcStubBuffer *This,
  447. IRpcChannelBuffer *_pRpcChannelBuffer,
  448. PRPC_MESSAGE _pRpcMessage,
  449. DWORD *_pdwStubPhase);
  450. HRESULT STDMETHODCALLTYPE IWMAudioReader_Start_Proxy(
  451. IWMAudioReader __RPC_FAR * This);
  452. void __RPC_STUB IWMAudioReader_Start_Stub(
  453. IRpcStubBuffer *This,
  454. IRpcChannelBuffer *_pRpcChannelBuffer,
  455. PRPC_MESSAGE _pRpcMessage,
  456. DWORD *_pdwStubPhase);
  457. HRESULT STDMETHODCALLTYPE IWMAudioReader_Stop_Proxy(
  458. IWMAudioReader __RPC_FAR * This);
  459. void __RPC_STUB IWMAudioReader_Stop_Stub(
  460. IRpcStubBuffer *This,
  461. IRpcChannelBuffer *_pRpcChannelBuffer,
  462. PRPC_MESSAGE _pRpcMessage,
  463. DWORD *_pdwStubPhase);
  464. HRESULT STDMETHODCALLTYPE IWMAudioReader_Seek_Proxy(
  465. IWMAudioReader __RPC_FAR * This,
  466. DWORD dwMsTime);
  467. void __RPC_STUB IWMAudioReader_Seek_Stub(
  468. IRpcStubBuffer *This,
  469. IRpcChannelBuffer *_pRpcChannelBuffer,
  470. PRPC_MESSAGE _pRpcMessage,
  471. DWORD *_pdwStubPhase);
  472. #endif /* __IWMAudioReader_INTERFACE_DEFINED__ */
  473. #ifndef __IWMAudioReadCallback_INTERFACE_DEFINED__
  474. #define __IWMAudioReadCallback_INTERFACE_DEFINED__
  475. /****************************************
  476. * Generated header for interface: IWMAudioReadCallback
  477. * at Mon Aug 09 13:10:31 1999
  478. * using MIDL 3.01.75
  479. ****************************************/
  480. /* [local][unique][helpstring][uuid][object] */
  481. EXTERN_C const IID IID_IWMAudioReadCallback;
  482. #if defined(__cplusplus) && !defined(CINTERFACE)
  483. interface DECLSPEC_UUID("1A5636F3-DB5E-11d2-9D41-0060083178AF")
  484. IWMAudioReadCallback : public IUnknown
  485. {
  486. public:
  487. virtual HRESULT STDMETHODCALLTYPE OnSample(
  488. /* [in] */ const BYTE __RPC_FAR *pData,
  489. /* [in] */ DWORD cbData,
  490. /* [in] */ DWORD dwMsTime) = 0;
  491. virtual HRESULT STDMETHODCALLTYPE OnStatus(
  492. /* [in] */ WMT_STATUS Status,
  493. /* [in] */ HRESULT hr,
  494. /* [in] */ const VARIANT __RPC_FAR *pParam) = 0;
  495. };
  496. #else /* C style interface */
  497. typedef struct IWMAudioReadCallbackVtbl
  498. {
  499. BEGIN_INTERFACE
  500. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
  501. IWMAudioReadCallback __RPC_FAR * This,
  502. /* [in] */ REFIID riid,
  503. /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  504. ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
  505. IWMAudioReadCallback __RPC_FAR * This);
  506. ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
  507. IWMAudioReadCallback __RPC_FAR * This);
  508. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *OnSample )(
  509. IWMAudioReadCallback __RPC_FAR * This,
  510. /* [in] */ const BYTE __RPC_FAR *pData,
  511. /* [in] */ DWORD cbData,
  512. /* [in] */ DWORD dwMsTime);
  513. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *OnStatus )(
  514. IWMAudioReadCallback __RPC_FAR * This,
  515. /* [in] */ WMT_STATUS Status,
  516. /* [in] */ HRESULT hr,
  517. /* [in] */ const VARIANT __RPC_FAR *pParam);
  518. END_INTERFACE
  519. } IWMAudioReadCallbackVtbl;
  520. interface IWMAudioReadCallback
  521. {
  522. CONST_VTBL struct IWMAudioReadCallbackVtbl __RPC_FAR *lpVtbl;
  523. };
  524. #ifdef COBJMACROS
  525. #define IWMAudioReadCallback_QueryInterface(This,riid,ppvObject) \
  526. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  527. #define IWMAudioReadCallback_AddRef(This) \
  528. (This)->lpVtbl -> AddRef(This)
  529. #define IWMAudioReadCallback_Release(This) \
  530. (This)->lpVtbl -> Release(This)
  531. #define IWMAudioReadCallback_OnSample(This,pData,cbData,dwMsTime) \
  532. (This)->lpVtbl -> OnSample(This,pData,cbData,dwMsTime)
  533. #define IWMAudioReadCallback_OnStatus(This,Status,hr,pParam) \
  534. (This)->lpVtbl -> OnStatus(This,Status,hr,pParam)
  535. #endif /* COBJMACROS */
  536. #endif /* C style interface */
  537. HRESULT STDMETHODCALLTYPE IWMAudioReadCallback_OnSample_Proxy(
  538. IWMAudioReadCallback __RPC_FAR * This,
  539. /* [in] */ const BYTE __RPC_FAR *pData,
  540. /* [in] */ DWORD cbData,
  541. /* [in] */ DWORD dwMsTime);
  542. void __RPC_STUB IWMAudioReadCallback_OnSample_Stub(
  543. IRpcStubBuffer *This,
  544. IRpcChannelBuffer *_pRpcChannelBuffer,
  545. PRPC_MESSAGE _pRpcMessage,
  546. DWORD *_pdwStubPhase);
  547. HRESULT STDMETHODCALLTYPE IWMAudioReadCallback_OnStatus_Proxy(
  548. IWMAudioReadCallback __RPC_FAR * This,
  549. /* [in] */ WMT_STATUS Status,
  550. /* [in] */ HRESULT hr,
  551. /* [in] */ const VARIANT __RPC_FAR *pParam);
  552. void __RPC_STUB IWMAudioReadCallback_OnStatus_Stub(
  553. IRpcStubBuffer *This,
  554. IRpcChannelBuffer *_pRpcChannelBuffer,
  555. PRPC_MESSAGE _pRpcMessage,
  556. DWORD *_pdwStubPhase);
  557. #endif /* __IWMAudioReadCallback_INTERFACE_DEFINED__ */
  558. #ifndef __IWMAudioInfo_INTERFACE_DEFINED__
  559. #define __IWMAudioInfo_INTERFACE_DEFINED__
  560. /****************************************
  561. * Generated header for interface: IWMAudioInfo
  562. * at Mon Aug 09 13:10:31 1999
  563. * using MIDL 3.01.75
  564. ****************************************/
  565. /* [local][unique][helpstring][uuid][object] */
  566. EXTERN_C const IID IID_IWMAudioInfo;
  567. #if defined(__cplusplus) && !defined(CINTERFACE)
  568. interface DECLSPEC_UUID("0AA139F0-F6A8-11d2-97F7-00A0C95EA850")
  569. IWMAudioInfo : public IUnknown
  570. {
  571. public:
  572. virtual HRESULT STDMETHODCALLTYPE GetAttributeCount(
  573. /* [out] */ WORD __RPC_FAR *pcAttributes) = 0;
  574. virtual HRESULT STDMETHODCALLTYPE GetAttributeByIndex(
  575. /* [in] */ WORD wIndex,
  576. /* [out] */ WCHAR __RPC_FAR *pwszName,
  577. /* [out][in] */ WORD __RPC_FAR *pcbNameLen,
  578. /* [out] */ WMT_ATTR_DATATYPE __RPC_FAR *pType,
  579. /* [out] */ BYTE __RPC_FAR *pValue,
  580. /* [out][in] */ WORD __RPC_FAR *pcbLength) = 0;
  581. virtual HRESULT STDMETHODCALLTYPE GetAttributeByName(
  582. /* [in] */ LPCWSTR pszName,
  583. /* [out] */ WMT_ATTR_DATATYPE __RPC_FAR *pType,
  584. /* [out] */ BYTE __RPC_FAR *pValue,
  585. /* [out][in] */ WORD __RPC_FAR *pcbLength) = 0;
  586. virtual HRESULT STDMETHODCALLTYPE SetAttribute(
  587. /* [in] */ LPCWSTR pszName,
  588. /* [in] */ WMT_ATTR_DATATYPE Type,
  589. /* [in] */ const BYTE __RPC_FAR *pValue,
  590. /* [in] */ WORD cbLength) = 0;
  591. virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
  592. };
  593. #else /* C style interface */
  594. typedef struct IWMAudioInfoVtbl
  595. {
  596. BEGIN_INTERFACE
  597. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
  598. IWMAudioInfo __RPC_FAR * This,
  599. /* [in] */ REFIID riid,
  600. /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  601. ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
  602. IWMAudioInfo __RPC_FAR * This);
  603. ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
  604. IWMAudioInfo __RPC_FAR * This);
  605. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAttributeCount )(
  606. IWMAudioInfo __RPC_FAR * This,
  607. /* [out] */ WORD __RPC_FAR *pcAttributes);
  608. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAttributeByIndex )(
  609. IWMAudioInfo __RPC_FAR * This,
  610. /* [in] */ WORD wIndex,
  611. /* [out] */ WCHAR __RPC_FAR *pwszName,
  612. /* [out][in] */ WORD __RPC_FAR *pcbNameLen,
  613. /* [out] */ WMT_ATTR_DATATYPE __RPC_FAR *pType,
  614. /* [out] */ BYTE __RPC_FAR *pValue,
  615. /* [out][in] */ WORD __RPC_FAR *pcbLength);
  616. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAttributeByName )(
  617. IWMAudioInfo __RPC_FAR * This,
  618. /* [in] */ LPCWSTR pszName,
  619. /* [out] */ WMT_ATTR_DATATYPE __RPC_FAR *pType,
  620. /* [out] */ BYTE __RPC_FAR *pValue,
  621. /* [out][in] */ WORD __RPC_FAR *pcbLength);
  622. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAttribute )(
  623. IWMAudioInfo __RPC_FAR * This,
  624. /* [in] */ LPCWSTR pszName,
  625. /* [in] */ WMT_ATTR_DATATYPE Type,
  626. /* [in] */ const BYTE __RPC_FAR *pValue,
  627. /* [in] */ WORD cbLength);
  628. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Close )(
  629. IWMAudioInfo __RPC_FAR * This);
  630. END_INTERFACE
  631. } IWMAudioInfoVtbl;
  632. interface IWMAudioInfo
  633. {
  634. CONST_VTBL struct IWMAudioInfoVtbl __RPC_FAR *lpVtbl;
  635. };
  636. #ifdef COBJMACROS
  637. #define IWMAudioInfo_QueryInterface(This,riid,ppvObject) \
  638. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  639. #define IWMAudioInfo_AddRef(This) \
  640. (This)->lpVtbl -> AddRef(This)
  641. #define IWMAudioInfo_Release(This) \
  642. (This)->lpVtbl -> Release(This)
  643. #define IWMAudioInfo_GetAttributeCount(This,pcAttributes) \
  644. (This)->lpVtbl -> GetAttributeCount(This,pcAttributes)
  645. #define IWMAudioInfo_GetAttributeByIndex(This,wIndex,pwszName,pcbNameLen,pType,pValue,pcbLength) \
  646. (This)->lpVtbl -> GetAttributeByIndex(This,wIndex,pwszName,pcbNameLen,pType,pValue,pcbLength)
  647. #define IWMAudioInfo_GetAttributeByName(This,pszName,pType,pValue,pcbLength) \
  648. (This)->lpVtbl -> GetAttributeByName(This,pszName,pType,pValue,pcbLength)
  649. #define IWMAudioInfo_SetAttribute(This,pszName,Type,pValue,cbLength) \
  650. (This)->lpVtbl -> SetAttribute(This,pszName,Type,pValue,cbLength)
  651. #define IWMAudioInfo_Close(This) \
  652. (This)->lpVtbl -> Close(This)
  653. #endif /* COBJMACROS */
  654. #endif /* C style interface */
  655. HRESULT STDMETHODCALLTYPE IWMAudioInfo_GetAttributeCount_Proxy(
  656. IWMAudioInfo __RPC_FAR * This,
  657. /* [out] */ WORD __RPC_FAR *pcAttributes);
  658. void __RPC_STUB IWMAudioInfo_GetAttributeCount_Stub(
  659. IRpcStubBuffer *This,
  660. IRpcChannelBuffer *_pRpcChannelBuffer,
  661. PRPC_MESSAGE _pRpcMessage,
  662. DWORD *_pdwStubPhase);
  663. HRESULT STDMETHODCALLTYPE IWMAudioInfo_GetAttributeByIndex_Proxy(
  664. IWMAudioInfo __RPC_FAR * This,
  665. /* [in] */ WORD wIndex,
  666. /* [out] */ WCHAR __RPC_FAR *pwszName,
  667. /* [out][in] */ WORD __RPC_FAR *pcbNameLen,
  668. /* [out] */ WMT_ATTR_DATATYPE __RPC_FAR *pType,
  669. /* [out] */ BYTE __RPC_FAR *pValue,
  670. /* [out][in] */ WORD __RPC_FAR *pcbLength);
  671. void __RPC_STUB IWMAudioInfo_GetAttributeByIndex_Stub(
  672. IRpcStubBuffer *This,
  673. IRpcChannelBuffer *_pRpcChannelBuffer,
  674. PRPC_MESSAGE _pRpcMessage,
  675. DWORD *_pdwStubPhase);
  676. HRESULT STDMETHODCALLTYPE IWMAudioInfo_GetAttributeByName_Proxy(
  677. IWMAudioInfo __RPC_FAR * This,
  678. /* [in] */ LPCWSTR pszName,
  679. /* [out] */ WMT_ATTR_DATATYPE __RPC_FAR *pType,
  680. /* [out] */ BYTE __RPC_FAR *pValue,
  681. /* [out][in] */ WORD __RPC_FAR *pcbLength);
  682. void __RPC_STUB IWMAudioInfo_GetAttributeByName_Stub(
  683. IRpcStubBuffer *This,
  684. IRpcChannelBuffer *_pRpcChannelBuffer,
  685. PRPC_MESSAGE _pRpcMessage,
  686. DWORD *_pdwStubPhase);
  687. HRESULT STDMETHODCALLTYPE IWMAudioInfo_SetAttribute_Proxy(
  688. IWMAudioInfo __RPC_FAR * This,
  689. /* [in] */ LPCWSTR pszName,
  690. /* [in] */ WMT_ATTR_DATATYPE Type,
  691. /* [in] */ const BYTE __RPC_FAR *pValue,
  692. /* [in] */ WORD cbLength);
  693. void __RPC_STUB IWMAudioInfo_SetAttribute_Stub(
  694. IRpcStubBuffer *This,
  695. IRpcChannelBuffer *_pRpcChannelBuffer,
  696. PRPC_MESSAGE _pRpcMessage,
  697. DWORD *_pdwStubPhase);
  698. HRESULT STDMETHODCALLTYPE IWMAudioInfo_Close_Proxy(
  699. IWMAudioInfo __RPC_FAR * This);
  700. void __RPC_STUB IWMAudioInfo_Close_Stub(
  701. IRpcStubBuffer *This,
  702. IRpcChannelBuffer *_pRpcChannelBuffer,
  703. PRPC_MESSAGE _pRpcMessage,
  704. DWORD *_pdwStubPhase);
  705. #endif /* __IWMAudioInfo_INTERFACE_DEFINED__ */
  706. /* Additional Prototypes for ALL interfaces */
  707. /* end of Additional Prototypes */
  708. #ifdef __cplusplus
  709. }
  710. #endif
  711. #endif