Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

93 lines
2.2 KiB

import "unknwn.idl";
import "austream.idl";
interface IWaveInStream;
interface IWaveSampleCallback;
interface IWaveStreamSample;
// just a placeholder so MIDL will generate the interface
// for IWaveSampleCallback
interface WaveSample;
cpp_quote("// This is a hack so MIDL will generate the interface of IWaveSampleCallback!")
cpp_quote("#ifdef __cplusplus")
cpp_quote("class WaveSample;")
cpp_quote("#else")
cpp_quote("typedef void WaveSample;")
cpp_quote("#endif")
cpp_quote("")
cpp_quote("// IWaveStreamSample property flags")
cpp_quote("#define WSS_RECORDING_FLAGS 1")
cpp_quote("#define WSS_SIGNAL_STRENGTH 2")
cpp_quote("")
cpp_quote("// bit properties for WSS_RECORDING_FLAGS")
cpp_quote("#define WSS_SILENT 1")
cpp_quote("#define WSS_ECHOREDUCTION 2")
cpp_quote("")
cpp_quote("// SetDuplexControlObject() can take either a handle to an event or mutex")
cpp_quote("#define WIS_DUPLEX_EVENT 1")
cpp_quote("#define WIS_DUPLEX_MUTEX 2")
[
object,
local,
uuid(17cb3bc0-6fd4-11d1-a95b-00c04fd7ccf1),
pointer_default(unique)
]
interface IWaveInStream : IAudioMediaStream
{
HRESULT SetDeviceID([in] UINT uWaveDevID);
HRESULT GetDeviceID([out] UINT *puWaveDevID);
HRESULT SetDefaultPacketSize([in] int nBytes);
HRESULT Start();
HRESULT Stop();
HRESULT SetSilenceThreshold([in] DWORD dwThresh, BOOL bAutomatic);
HRESULT SetSilenceTimeout([in] DWORD dwMilliSecs);
HRESULT SetDuplex(BOOL bFull);
HRESULT SetDuplexControlObject(HANDLE hand, int nType);
};
[
object,
local,
uuid(72b36900-7640-11d1-a95b-00c04fd7ccf1),
pointer_default(unique)
]
interface IWaveSampleCallback : IUnknown
{
HRESULT SampleUpdate(WaveSample *pWaveSample, DWORD dwFlags, HANDLE hEvent, PAPCFUNC pfnAPC, DWORD dwAPCData);
HRESULT GetCurrentStreamTime(STREAM_TIME *pST);
HRESULT SampleCompletionStatus(WaveSample *pWaveSample, DWORD dwFlags, DWORD dwMilli);
HRESULT SampleGetMediaStream(IMediaStream **ppMediaStream);
};
[
object,
local,
uuid(8fdc0390-9136-11d1-a95c-00c04fd91a6f),
pointer_default(unique)
]
interface IWaveStreamSample : IAudioStreamSample
{
HRESULT SetSampleProperty([in] DWORD dwProp, [in] DWORD dwValue);
HRESULT GetSampleProperty([in] DWORD dwProp, [out] DWORD *pdwValue);
};