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.

123 lines
2.7 KiB

  1. /*++
  2. Copyright (c) 1998-1999 Microsoft Corporation
  3. Module Name:
  4. waveaddr.h
  5. Abstract:
  6. Declaration of the CWaveMSP
  7. Author:
  8. Zoltan Szilagyi September 6th, 1998
  9. --*/
  10. #ifndef __WAVEADDR_H_
  11. #define __WAVEADDR_H_
  12. #if _MSC_VER >= 1000
  13. #pragma once
  14. #endif // _MSC_VER >= 1000
  15. #include "resource.h"
  16. /////////////////////////////////////////////////////////////////////////////
  17. // CWaveMSP
  18. /////////////////////////////////////////////////////////////////////////////
  19. class CWaveMSP :
  20. public CMSPAddress,
  21. public IDispatchImpl<ITLegacyWaveSupport, &IID_ITLegacyWaveSupport, &LIBID_TAPI3Lib>,
  22. public CComCoClass<CWaveMSP, &CLSID_WaveMSP>,
  23. public CMSPObjectSafetyImpl
  24. {
  25. public:
  26. CWaveMSP();
  27. virtual ~CWaveMSP();
  28. virtual ULONG MSPAddressAddRef(void);
  29. virtual ULONG MSPAddressRelease(void);
  30. DECLARE_REGISTRY_RESOURCEID(IDR_WaveMSP)
  31. DECLARE_POLY_AGGREGATABLE(CWaveMSP)
  32. BEGIN_COM_MAP(CWaveMSP)
  33. COM_INTERFACE_ENTRY( IObjectSafety )
  34. COM_INTERFACE_ENTRY( ITLegacyWaveSupport )
  35. COM_INTERFACE_ENTRY_CHAIN(CMSPAddress)
  36. END_COM_MAP()
  37. public:
  38. STDMETHOD (CreateMSPCall) (
  39. IN MSP_HANDLE htCall,
  40. IN DWORD dwReserved,
  41. IN DWORD dwMediaType,
  42. IN IUnknown * pOuterUnknown,
  43. OUT IUnknown ** ppMSPCall
  44. );
  45. STDMETHOD (ShutdownMSPCall) (
  46. IN IUnknown * pMSPCall
  47. );
  48. //
  49. // Public method for creating the filter mapper cache up front.
  50. // Called by the stream/call when an intelligent connection is
  51. // attempted. Does nothing if the cache has already been created.
  52. //
  53. virtual HRESULT CreateFilterMapper(void);
  54. protected:
  55. DWORD GetCallMediaTypes(void);
  56. //
  57. // Extra overrides for hiding our wave devices.
  58. //
  59. virtual HRESULT ReceiveTSPAddressData(
  60. IN PBYTE pBuffer,
  61. IN DWORD dwSize
  62. );
  63. virtual HRESULT UpdateTerminalList(void);
  64. //
  65. // Helper functions.
  66. //
  67. virtual BOOL TerminalHasWaveID(
  68. IN BOOL fCapture,
  69. IN ITTerminal * pTerminal,
  70. IN DWORD dwWaveID
  71. );
  72. //
  73. // ITLegacyWaveSupport
  74. //
  75. STDMETHOD (IsFullDuplex) (
  76. OUT FULLDUPLEX_SUPPORT * pSupport
  77. );
  78. //
  79. // Data for hiding our wave devices.
  80. //
  81. BOOL m_fHaveWaveIDs;
  82. DWORD m_dwWaveInID;
  83. DWORD m_dwWaveOutID;
  84. FULLDUPLEX_SUPPORT m_fdSupport;
  85. //
  86. // Data for creating the filter mapper cache up front.
  87. //
  88. IFilterMapper * m_pFilterMapper;
  89. };
  90. #endif //__WAVEADDR_H_