windows-nt/Source/XPSP1/NT/net/tapi/skywalker/wavemsp/waveaddr.h
2020-09-26 16:20:57 +08:00

124 lines
2.6 KiB
C++

/*++
Copyright (c) 1998-1999 Microsoft Corporation
Module Name:
waveaddr.h
Abstract:
Declaration of the CWaveMSP
Author:
Zoltan Szilagyi September 6th, 1998
--*/
#ifndef __WAVEADDR_H_
#define __WAVEADDR_H_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#include "resource.h"
/////////////////////////////////////////////////////////////////////////////
// CWaveMSP
/////////////////////////////////////////////////////////////////////////////
class CWaveMSP :
public CMSPAddress,
public IDispatchImpl<ITLegacyWaveSupport, &IID_ITLegacyWaveSupport, &LIBID_TAPI3Lib>,
public CComCoClass<CWaveMSP, &CLSID_WaveMSP>,
public CMSPObjectSafetyImpl
{
public:
CWaveMSP();
virtual ~CWaveMSP();
virtual ULONG MSPAddressAddRef(void);
virtual ULONG MSPAddressRelease(void);
DECLARE_REGISTRY_RESOURCEID(IDR_WaveMSP)
DECLARE_POLY_AGGREGATABLE(CWaveMSP)
BEGIN_COM_MAP(CWaveMSP)
COM_INTERFACE_ENTRY( IObjectSafety )
COM_INTERFACE_ENTRY( ITLegacyWaveSupport )
COM_INTERFACE_ENTRY_CHAIN(CMSPAddress)
END_COM_MAP()
public:
STDMETHOD (CreateMSPCall) (
IN MSP_HANDLE htCall,
IN DWORD dwReserved,
IN DWORD dwMediaType,
IN IUnknown * pOuterUnknown,
OUT IUnknown ** ppMSPCall
);
STDMETHOD (ShutdownMSPCall) (
IN IUnknown * pMSPCall
);
//
// Public method for creating the filter mapper cache up front.
// Called by the stream/call when an intelligent connection is
// attempted. Does nothing if the cache has already been created.
//
virtual HRESULT CreateFilterMapper(void);
protected:
DWORD GetCallMediaTypes(void);
//
// Extra overrides for hiding our wave devices.
//
virtual HRESULT ReceiveTSPAddressData(
IN PBYTE pBuffer,
IN DWORD dwSize
);
virtual HRESULT UpdateTerminalList(void);
//
// Helper functions.
//
virtual BOOL TerminalHasWaveID(
IN BOOL fCapture,
IN ITTerminal * pTerminal,
IN DWORD dwWaveID
);
//
// ITLegacyWaveSupport
//
STDMETHOD (IsFullDuplex) (
OUT FULLDUPLEX_SUPPORT * pSupport
);
//
// Data for hiding our wave devices.
//
BOOL m_fHaveWaveIDs;
DWORD m_dwWaveInID;
DWORD m_dwWaveOutID;
FULLDUPLEX_SUPPORT m_fdSupport;
//
// Data for creating the filter mapper cache up front.
//
IFilterMapper * m_pFilterMapper;
};
#endif //__WAVEADDR_H_