/* * Copyright 2004 Christian Costa * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ import "unknwn.idl"; import "mmstream.idl"; cpp_quote("#if 0") typedef struct tWAVEFORMATEX WAVEFORMATEX; cpp_quote ("#endif") interface IAudioMediaStream; interface IAudioStreamSample; interface IMemoryData; interface IAudioData; [ object, local, uuid(f7537560-a3be-11d0-8212-00c04fc32c45), pointer_default(unique) ] interface IAudioMediaStream : IMediaStream { HRESULT GetFormat( [out] /*[optional]*/ WAVEFORMATEX *pWaveFormatCurrent ); HRESULT SetFormat( [in] const WAVEFORMATEX *lpWaveFormat); HRESULT CreateSample( [in] IAudioData *pAudioData, [in] DWORD dwFlags, [out] IAudioStreamSample **ppSample ); } [ object, local, uuid(345fee00-aba5-11d0-8212-00c04fc32c45), pointer_default(unique) ] interface IAudioStreamSample : IStreamSample { HRESULT GetAudioData( [out] IAudioData **ppAudio ); } [ object, local, uuid(327fc560-af60-11d0-8212-00c04fc32c45), pointer_default(unique) ] interface IMemoryData : IUnknown { HRESULT SetBuffer( [in] DWORD cbSize, [in] BYTE *pbData, [in] DWORD dwFlags ); HRESULT GetInfo( [out] DWORD *pdwLength, [out] BYTE **ppbData, [out] DWORD *pcbActualData ); HRESULT SetActual( [in] DWORD cbDataValid ); } [ object, local, uuid(54c719c0-af60-11d0-8212-00c04fc32c45), pointer_default(unique) ] interface IAudioData : IMemoryData { HRESULT GetFormat( [out] /*[optional]*/ WAVEFORMATEX *pWaveFormatCurrent ); HRESULT SetFormat( [in] const WAVEFORMATEX *lpWaveFormat ); }