home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / msptrmar.h < prev    next >
C/C++ Source or Header  |  2000-02-01  |  2KB  |  92 lines

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. //
  4. //      Copyright (c) 1998-1999  Microsoft Corporation
  5. //
  6. //
  7. //      Name: msptrmar.h
  8. //
  9. // Description: Definition of the CAudioRenderTerminal class
  10. //
  11. ///////////////////////////////////////////////////////////////////////////////
  12.  
  13. #ifndef _MSPTRMAR_H_
  14. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  15. #define _MSPTRMAR_H_
  16.  
  17. #define WAVEOUT_NAME L"WaveOut Terminal"
  18. #define MIXER_NAME L"PCM Mixer"
  19.  
  20. /////////////////////////////////////////////////////////////////////////////
  21. // CAudioRenderTerminal
  22.  
  23. class CAudioRenderTerminal : 
  24.     public IDispatchImpl<ITBasicAudioTerminal, &IID_ITBasicAudioTerminal, &LIBID_TAPI3Lib>, 
  25.     public CSingleFilterTerminal
  26. {
  27. public:
  28.     CAudioRenderTerminal();
  29.     virtual ~CAudioRenderTerminal();
  30.  
  31.     // Helper methods.
  32.     HRESULT InitializeDefaultTerminal();
  33.  
  34.     static HRESULT CreateTerminal(
  35.         IN    CComPtr<IMoniker>    pMoniker,
  36.         IN    MSP_HANDLE           htAddress,
  37.         OUT   ITTerminal         **ppTerm
  38.         );
  39.  
  40.     HRESULT FindTerminalPin();
  41.  
  42. BEGIN_COM_MAP(CAudioRenderTerminal)
  43.     COM_INTERFACE_ENTRY(ITBasicAudioTerminal)
  44.     COM_INTERFACE_ENTRY_CHAIN(CSingleFilterTerminal)
  45. END_COM_MAP()
  46.  
  47. DECLARE_VQI()
  48. DECLARE_LOG_ADDREF_RELEASE(CAudioRenderTerminal)
  49.  
  50. // ITBasicAudioTerminal
  51. public:
  52.     STDMETHOD(get_Balance)(OUT  long *pVal);
  53.     STDMETHOD(put_Balance)(IN   long newVal);
  54.     STDMETHOD(get_Volume) (OUT  long *pVal);
  55.     STDMETHOD(put_Volume) (IN   long newVal);
  56.  
  57. // Implementation
  58. public:
  59.  
  60.     // CBaseTerminal overrides 
  61.  
  62.     STDMETHODIMP CompleteConnectTerminal(void);
  63.  
  64.     STDMETHODIMP DisconnectTerminal(
  65.             IN      IGraphBuilder  * pGraph,
  66.             IN      DWORD            dwReserved
  67.             );
  68.     
  69.     virtual HRESULT AddFiltersToGraph();
  70.  
  71.     virtual DWORD GetSupportedMediaTypes(void)
  72.     {
  73.         return (DWORD) TAPIMEDIATYPE_AUDIO;
  74.     }
  75.  
  76.     HRESULT CreateFilters();
  77.  
  78.     // public because CreateTerminal access it
  79.     CComPtr<IMoniker> m_pMoniker;
  80.  
  81. private:
  82.  
  83.     // Keeps track of whether we need to unreserve WaveOut
  84.     bool m_bResourceReserved;
  85.  
  86.     CComPtr<IBasicAudio> m_pIBasicAudio;
  87.  
  88. };
  89.  
  90. #pragma option pop /*P_O_Pop*/
  91. #endif // _MSPTRMAR_H_
  92.