windows-nt/Source/XPSP1/NT/net/tapi/skywalker/h323msp/h323strm.h

148 lines
3.2 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*++
Copyright (c) 1997 Microsoft Corporation
Module Name:
ConfStrm.h
Abstract:
Definitions for CH323MSPStream class.
Author:
Mu Han (muhan) 1-November-1997
--*/
#ifndef __CONFSTRM_H
#define __CONFSTRM_H
/////////////////////////////////////////////////////////////////////////////
// CH323MSPStream
/////////////////////////////////////////////////////////////////////////////
const DWORD DEFAULT_TTL = 127;
//#define DEBUG_REFCOUNT
#ifdef DEBUG_REFCOUNT
extern LONG g_lStreamObjects;
#endif
class CH323MSPStream :
public CMSPStream,
public CMSPObjectSafetyImpl
{
public:
BEGIN_COM_MAP(CH323MSPStream)
COM_INTERFACE_ENTRY(IObjectSafety)
COM_INTERFACE_ENTRY_CHAIN(CMSPStream)
END_COM_MAP()
CH323MSPStream();
DWORD MediaType() const { return m_dwMediaType; }
TERMINAL_DIRECTION Direction() const { return m_Direction; }
HANDLE TSPChannel();
BOOL IsConfigured();
BOOL IsTerminalSelected();
VOID CallConnect();
#ifdef DEBUG_REFCOUNT
ULONG InternalAddRef();
ULONG InternalRelease();
#endif
virtual HRESULT Configure(
IN HANDLE htChannel,
IN STREAMSETTINGS &StreamSettings
) = 0;
virtual HRESULT SendIFrame() { return S_OK; }
virtual HRESULT ChangeMaxBitRate(DWORD dwMaxBitRate) { return S_OK; }
// CMSPStream methods.
HRESULT ShutDown ();
// ITStream
STDMETHOD (get_Name) (
OUT BSTR * ppName
);
STDMETHOD (StartStream) ();
STDMETHOD (PauseStream) ();
STDMETHOD (StopStream) ();
STDMETHOD (SelectTerminal)(
IN ITTerminal * pTerminal
);
STDMETHOD (UnselectTerminal)(
IN ITTerminal * pTerminal
);
protected:
virtual HRESULT CheckTerminalTypeAndDirection(
IN ITTerminal * pTerminal
);
virtual HRESULT SendStreamEvent(
IN MSP_CALL_EVENT Event,
IN MSP_CALL_EVENT_CAUSE Cause,
IN HRESULT hrError,
IN ITTerminal * pTerminal
);
virtual HRESULT ConnectTerminal(
IN ITTerminal * pITTerminal
) = 0;
virtual HRESULT DisconnectTerminal(
IN ITTerminal * pITTerminal
);
virtual HRESULT InternalConfigure();
virtual HRESULT SetUpFilters() = 0;
virtual HRESULT CleanUpFilters();
HRESULT ProcessGraphEvent(
IN long lEventCode,
IN long lParam1,
IN long lParam2
);
virtual HRESULT ProcessQOSEvent(
IN long lEventCode
);
virtual HRESULT HandlePacketReceiveLoss(
IN DWORD dwLossRate
);
virtual HRESULT HandlePacketTransmitLoss(
IN DWORD dwLossRate
);
protected:
const WCHAR * m_szName;
const GUID * m_pClsidPHFilter;
const GUID * m_pClsidCodecFilter;
const GUID * m_pRPHInputMinorType; // only used in receiving stream.
BOOL m_fNeedsToOpenChannel;
BOOL m_fIsConfigured;
STREAMSETTINGS m_Settings;
IBaseFilter * m_pEdgeFilter;
HANDLE m_htChannel;
};
#endif