Leaked source code of windows server 2003
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

  1. import "unknwn.idl";
  2. import "austream.idl";
  3. interface IWaveInStream;
  4. interface IWaveSampleCallback;
  5. interface IWaveStreamSample;
  6. // just a placeholder so MIDL will generate the interface
  7. // for IWaveSampleCallback
  8. interface WaveSample;
  9. cpp_quote("// This is a hack so MIDL will generate the interface of IWaveSampleCallback!")
  10. cpp_quote("#ifdef __cplusplus")
  11. cpp_quote("class WaveSample;")
  12. cpp_quote("#else")
  13. cpp_quote("typedef void WaveSample;")
  14. cpp_quote("#endif")
  15. cpp_quote("")
  16. cpp_quote("// IWaveStreamSample property flags")
  17. cpp_quote("#define WSS_RECORDING_FLAGS 1")
  18. cpp_quote("#define WSS_SIGNAL_STRENGTH 2")
  19. cpp_quote("")
  20. cpp_quote("// bit properties for WSS_RECORDING_FLAGS")
  21. cpp_quote("#define WSS_SILENT 1")
  22. cpp_quote("#define WSS_ECHOREDUCTION 2")
  23. cpp_quote("")
  24. cpp_quote("// SetDuplexControlObject() can take either a handle to an event or mutex")
  25. cpp_quote("#define WIS_DUPLEX_EVENT 1")
  26. cpp_quote("#define WIS_DUPLEX_MUTEX 2")
  27. [
  28. object,
  29. local,
  30. uuid(17cb3bc0-6fd4-11d1-a95b-00c04fd7ccf1),
  31. pointer_default(unique)
  32. ]
  33. interface IWaveInStream : IAudioMediaStream
  34. {
  35. HRESULT SetDeviceID([in] UINT uWaveDevID);
  36. HRESULT GetDeviceID([out] UINT *puWaveDevID);
  37. HRESULT SetDefaultPacketSize([in] int nBytes);
  38. HRESULT Start();
  39. HRESULT Stop();
  40. HRESULT SetSilenceThreshold([in] DWORD dwThresh, BOOL bAutomatic);
  41. HRESULT SetSilenceTimeout([in] DWORD dwMilliSecs);
  42. HRESULT SetDuplex(BOOL bFull);
  43. HRESULT SetDuplexControlObject(HANDLE hand, int nType);
  44. };
  45. [
  46. object,
  47. local,
  48. uuid(72b36900-7640-11d1-a95b-00c04fd7ccf1),
  49. pointer_default(unique)
  50. ]
  51. interface IWaveSampleCallback : IUnknown
  52. {
  53. HRESULT SampleUpdate(WaveSample *pWaveSample, DWORD dwFlags, HANDLE hEvent, PAPCFUNC pfnAPC, DWORD dwAPCData);
  54. HRESULT GetCurrentStreamTime(STREAM_TIME *pST);
  55. HRESULT SampleCompletionStatus(WaveSample *pWaveSample, DWORD dwFlags, DWORD dwMilli);
  56. HRESULT SampleGetMediaStream(IMediaStream **ppMediaStream);
  57. };
  58. [
  59. object,
  60. local,
  61. uuid(8fdc0390-9136-11d1-a95c-00c04fd91a6f),
  62. pointer_default(unique)
  63. ]
  64. interface IWaveStreamSample : IAudioStreamSample
  65. {
  66. HRESULT SetSampleProperty([in] DWORD dwProp, [in] DWORD dwValue);
  67. HRESULT GetSampleProperty([in] DWORD dwProp, [out] DWORD *pdwValue);
  68. };