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

458 lines
9.2 KiB
C++

/*
Copyright (c) 2000 Microsoft Corporation
Module Name:
termevnt.cpp
Abstract:
This module contains declarations for terminal event classes
*/
#ifndef _TERMEVNT_DOT_H_
#define _TERMEVNT_DOT_H_
//
// ASR Terminal Event class
//
class CASRTerminalEvent :
public CTAPIComObjectRoot<CASRTerminalEvent>,
public CComDualImpl<ITASRTerminalEvent, &IID_ITASRTerminalEvent, &LIBID_TAPI3Lib>,
public CObjectSafeImpl
{
public:
DECLARE_MARSHALQI(CASRTerminalEvent)
DECLARE_TRACELOG_CLASS(CASRTerminalEvent)
BEGIN_COM_MAP(CASRTerminalEvent)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(ITASRTerminalEvent)
COM_INTERFACE_ENTRY(IObjectSafety)
COM_INTERFACE_ENTRY_FUNC(IID_IMarshal, 0, IMarshalQI)
COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_pFTM)
END_COM_MAP()
static HRESULT FireEvent(
CTAPI * pTapi,
ITCallInfo *pCall,
ITTerminal * pTerminal,
HRESULT hr
);
CASRTerminalEvent();
virtual ~CASRTerminalEvent();
//
// ITASRTerminalEvent methods
//
virtual HRESULT STDMETHODCALLTYPE get_Terminal(
OUT ITTerminal **ppTerminal
);
virtual HRESULT STDMETHODCALLTYPE get_Call(
OUT ITCallInfo **ppCallInfo
);
virtual HRESULT STDMETHODCALLTYPE get_Error(
OUT HRESULT *phrErrorCode
);
//
// methods for setting data members
//
virtual HRESULT STDMETHODCALLTYPE put_Terminal(
IN ITTerminal *pTerminal
);
virtual HRESULT STDMETHODCALLTYPE put_Call(
IN ITCallInfo *pCallInfo
);
virtual HRESULT STDMETHODCALLTYPE put_ErrorCode(
IN HRESULT hrErrorCode
);
private:
//
// the call on which the event was generated
//
ITCallInfo *m_pCallInfo;
//
// the terminal that caused the event (or whose tracks cause the event)
//
ITTerminal *m_pTerminal;
//
// HRESULT of the last error
//
HRESULT m_hr;
};
//
// File Terminal Event class
//
class CFileTerminalEvent :
public CTAPIComObjectRoot<CFileTerminalEvent, CComMultiThreadModelNoCS>,
public CComDualImpl<ITFileTerminalEvent, &IID_ITFileTerminalEvent, &LIBID_TAPI3Lib>,
public CObjectSafeImpl
{
public:
DECLARE_MARSHALQI(CFileTerminalEvent)
DECLARE_TRACELOG_CLASS(CFileTerminalEvent)
BEGIN_COM_MAP(CFileTerminalEvent)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(ITFileTerminalEvent)
COM_INTERFACE_ENTRY(IObjectSafety)
COM_INTERFACE_ENTRY_FUNC(IID_IMarshal, 0, IMarshalQI)
COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_pFTM)
END_COM_MAP()
static HRESULT FireEvent(
CAddress *pCAddress,
CTAPI * pTapi,
ITCallInfo *pCall,
TERMINAL_MEDIA_STATE tmsMediaState,
FT_STATE_EVENT_CAUSE ftecEventCause,
ITTerminal * pTerminal,
ITFileTrack * pFileTrack,
HRESULT hr
);
CFileTerminalEvent ();
virtual ~CFileTerminalEvent();
//
// ITFileTerminalEvent methods
//
virtual HRESULT STDMETHODCALLTYPE get_Terminal(
OUT ITTerminal **ppTerminal
);
virtual HRESULT STDMETHODCALLTYPE get_Track(
OUT ITFileTrack **ppFileTrack
);
virtual HRESULT STDMETHODCALLTYPE get_Call(
OUT ITCallInfo **ppCallInfo
);
virtual HRESULT STDMETHODCALLTYPE get_State(
OUT TERMINAL_MEDIA_STATE *pMediaState
);
virtual HRESULT STDMETHODCALLTYPE get_Cause(
OUT FT_STATE_EVENT_CAUSE *pCause
);
virtual HRESULT STDMETHODCALLTYPE get_Error(
OUT HRESULT *phrErrorCode
);
//
// methods for setting data members
//
virtual HRESULT STDMETHODCALLTYPE put_Terminal(
IN ITTerminal *pTerminal
);
virtual HRESULT STDMETHODCALLTYPE put_Track(
IN ITFileTrack *pFileTrack
);
virtual HRESULT STDMETHODCALLTYPE put_Call(
IN ITCallInfo *pCallInfo
);
virtual HRESULT STDMETHODCALLTYPE put_State(
IN TERMINAL_MEDIA_STATE tmsTerminalMediaState
);
virtual HRESULT STDMETHODCALLTYPE put_Cause(
IN FT_STATE_EVENT_CAUSE Cause
);
virtual HRESULT STDMETHODCALLTYPE put_ErrorCode(
IN HRESULT hrErrorCode
);
private:
//
// the call on which the event was generated
//
ITCallInfo *m_pCallInfo;
//
// the state to which the terminal transitioned in the result of the action that caused the event
//
TERMINAL_MEDIA_STATE m_tmsTerminalState;
//
// the cause of the event
//
FT_STATE_EVENT_CAUSE m_ftecEventCause;
//
// the controlling parent terminal that caused the event (or whose tracks cause the event)
//
ITTerminal *m_pParentFileTerminal;
//
// the track involved in the event
//
ITFileTrack *m_pFileTrack;
//
// HRESULT of the last error
//
HRESULT m_hr;
};
//
// Tone Terminal Event class
//
class CToneTerminalEvent :
public CTAPIComObjectRoot<CToneTerminalEvent>,
public CComDualImpl<ITToneTerminalEvent, &IID_ITToneTerminalEvent, &LIBID_TAPI3Lib>,
public CObjectSafeImpl
{
public:
DECLARE_MARSHALQI(CToneTerminalEvent)
DECLARE_TRACELOG_CLASS(CToneTerminalEvent)
BEGIN_COM_MAP(CToneTerminalEvent)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(ITToneTerminalEvent)
COM_INTERFACE_ENTRY(IObjectSafety)
COM_INTERFACE_ENTRY_FUNC(IID_IMarshal, 0, IMarshalQI)
COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_pFTM)
END_COM_MAP()
static HRESULT FireEvent(
CTAPI * pTapi,
ITCallInfo *pCall,
ITTerminal * pTerminal,
HRESULT hr
);
CToneTerminalEvent();
virtual ~CToneTerminalEvent();
//
// ITToneTerminalEvent methods
//
virtual HRESULT STDMETHODCALLTYPE get_Terminal(
OUT ITTerminal **ppTerminal
);
virtual HRESULT STDMETHODCALLTYPE get_Call(
OUT ITCallInfo **ppCallInfo
);
virtual HRESULT STDMETHODCALLTYPE get_Error(
OUT HRESULT *phrErrorCode
);
//
// methods for setting data members
//
virtual HRESULT STDMETHODCALLTYPE put_Terminal(
IN ITTerminal *pTerminal
);
virtual HRESULT STDMETHODCALLTYPE put_Call(
IN ITCallInfo *pCallInfo
);
virtual HRESULT STDMETHODCALLTYPE put_ErrorCode(
IN HRESULT hrErrorCode
);
private:
//
// the call on which the event was generated
//
ITCallInfo *m_pCallInfo;
//
// the terminal that caused the event (or whose tracks cause the event)
//
ITTerminal *m_pTerminal;
//
// HRESULT of the last error
//
HRESULT m_hr;
};
//
// text to speech terminal event class
//
class CTTSTerminalEvent :
public CTAPIComObjectRoot<CTTSTerminalEvent>,
public CComDualImpl<ITTTSTerminalEvent, &IID_ITTTSTerminalEvent, &LIBID_TAPI3Lib>,
public CObjectSafeImpl
{
public:
DECLARE_MARSHALQI(CTTSTerminalEvent)
DECLARE_TRACELOG_CLASS(CTTSTerminalEvent)
BEGIN_COM_MAP(CTTSTerminalEvent)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(ITTTSTerminalEvent)
COM_INTERFACE_ENTRY(IObjectSafety)
COM_INTERFACE_ENTRY_FUNC(IID_IMarshal, 0, IMarshalQI)
COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_pFTM)
END_COM_MAP()
static HRESULT FireEvent(
CTAPI * pTapi,
ITCallInfo *pCall,
ITTerminal * pTerminal,
HRESULT hr
);
CTTSTerminalEvent();
virtual ~CTTSTerminalEvent();
//
// ITTTSTerminalEvent methods
//
virtual HRESULT STDMETHODCALLTYPE get_Terminal(
OUT ITTerminal **ppTerminal
);
virtual HRESULT STDMETHODCALLTYPE get_Call(
OUT ITCallInfo **ppCallInfo
);
virtual HRESULT STDMETHODCALLTYPE get_Error(
OUT HRESULT *phrErrorCode
);
//
// methods for setting data members
//
virtual HRESULT STDMETHODCALLTYPE put_Terminal(
IN ITTerminal *pTerminal
);
virtual HRESULT STDMETHODCALLTYPE put_Call(
IN ITCallInfo *pCallInfo
);
virtual HRESULT STDMETHODCALLTYPE put_ErrorCode(
IN HRESULT hrErrorCode
);
private:
//
// the call on which the event was generated
//
ITCallInfo *m_pCallInfo;
//
// the terminal that caused the event (or whose tracks cause the event)
//
ITTerminal *m_pTerminal;
//
// HRESULT of the last error
//
HRESULT m_hr;
};
#endif // _TTS_TERMIAL_EVENT_DOT_H_