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.

88 lines
2.1 KiB

  1. /*++
  2. Copyright (c) 1998-1999 Microsoft Corporation
  3. Module Name:
  4. stream.h
  5. Abstract:
  6. Declaration of the CStream class
  7. Author:
  8. mquinton 09-24-98
  9. Notes:
  10. Revision History:
  11. --*/
  12. #ifndef __STREAM_H__
  13. #define __STREAM_H__
  14. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
  15. //
  16. // CStream
  17. //
  18. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
  19. class CStream :
  20. public CTAPIComObjectRoot<CStream>,
  21. public CComDualImpl<ITStream, &IID_ITStream, &LIBID_TAPI3Lib>,
  22. public CObjectSafeImpl
  23. {
  24. public:
  25. CStream() : m_pName( NULL ),
  26. m_pCall( NULL )
  27. {}
  28. void FinalRelease();
  29. DECLARE_MARSHALQI(CStream)
  30. DECLARE_TRACELOG_CLASS(CStream)
  31. BEGIN_COM_MAP(CStream)
  32. COM_INTERFACE_ENTRY2(IDispatch, ITStream)
  33. COM_INTERFACE_ENTRY(ITStream)
  34. COM_INTERFACE_ENTRY(IObjectSafety)
  35. COM_INTERFACE_ENTRY_FUNC(IID_IMarshal, 0, IMarshalQI)
  36. COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_pFTM)
  37. END_COM_MAP()
  38. static HRESULT InternalCreateStream(
  39. long lMediaType,
  40. TERMINAL_DIRECTION td,
  41. ITPhoneMSPCallPrivate * pCall,
  42. ITStream ** ppStream
  43. );
  44. void AddTerminal( ITTerminalPrivate * pTerminal );
  45. HRESULT RemoveTerminal( ITTerminal * pTerminal );
  46. protected:
  47. TERMINAL_DIRECTION m_Dir;
  48. long m_lMediaType;
  49. BSTR m_pName;
  50. TerminalArray m_TerminalArray;
  51. ITPhoneMSPCallPrivate * m_pCall;
  52. public:
  53. STDMETHOD(get_MediaType)(long * plMediaType);
  54. STDMETHOD(get_Direction)(TERMINAL_DIRECTION * pTD);
  55. STDMETHOD(get_Name)(BSTR * ppName);
  56. STDMETHOD(StartStream)(void);
  57. STDMETHOD(PauseStream)(void);
  58. STDMETHOD(StopStream)(void);
  59. STDMETHOD(SelectTerminal)(ITTerminal * pTerminal);
  60. STDMETHOD(UnselectTerminal)(ITTerminal * pTerminal);
  61. STDMETHOD(EnumerateTerminals)(IEnumTerminal ** ppEnumTerminal);
  62. STDMETHOD(get_Terminals)(VARIANT * pTerminals);
  63. };
  64. #endif