www.pudn.com > CP_IVR.zip > TapiObj.h


// TapiObj.h: interface for the CTapiObj class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_TAPIOBJ_H__BBE5AF64_65DB_4081_91FD_864B9F77F127__INCLUDED_) 
#define AFX_TAPIOBJ_H__BBE5AF64_65DB_4081_91FD_864B9F77F127__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
////////////////////////////////////////////////////////////////////// 
// CTapiObj class. 
////////////////////////////////////////////////////////////////////// 
class CTapiObj 
{ 
protected: 
	 
	void ThrowErr(int id, CString res); 
 
	CString m_appName; 
	DWORD	m_version; 
	DWORD	m_mediaMode; 
 
public: 
	CTapiObj(); 
	virtual ~CTapiObj(); 
 
	// Exception class 
	class TEx { 
	public: 
		TEx(int id, CString res, CString dt, CString tm); 
		int		code; 
		CString result; 
		CString date; 
		CString time; 
	}; 
}; 
 
////////////////////////////////////////////////////////////////////// 
// CLine class. 
////////////////////////////////////////////////////////////////////// 
class CLine : public CTapiObj 
{ 
public: 
	void SetRingCount(UINT nRingCnt); 
	void SetBossMessenger(unsigned long pThreadID); 
	DWORD GetDevWavID(); 
	CString GetCallerID(); 
	BOOL Start(); 
	void ShutDown(); 
	void Restart(); 
	long Init(); 
	long Open(); 
 
	CLine(); 
	virtual ~CLine(); 
private: 
	void OnDetectDTMF(char tone); 
	long GetDevCaps(); 
	void ProcessEvent(); 
	long GetWaveID(); 
 
	static DWORD WINAPI EventThread(LPVOID pParam); 
 
 
	UINT				m_ID; 
	BOOL				m_bInitialized; 
	BOOL				m_bOpened; 
	BOOL				m_bContinueEventThread; 
 
	HLINEAPP			m_hLineApp; 
	HLINE				m_hLine; 
	HCALL				m_hCall; 
	HANDLE				m_hLineEvent; 
	HANDLE				m_hLineMsgThread; 
	HWAVEOUT			m_hWOut; 
	LINEEXTENSIONID		m_extID; 
	LINEDEVCAPS*		m_pLineDevCaps; 
	DWORD				m_dwApiVersion; 
	DWORD				m_dwWaveOutID; 
	DWORD				m_dwRingCnt; 
	DWORD				m_nLineCnt; 
	CString				m_cid; 
	unsigned long		m_lBossThreadID; 
}; 
 
////////////////////////////////////////////////////////////////////// 
// CPhone class. 
////////////////////////////////////////////////////////////////////// 
class CPhone : public CTapiObj   
{ 
public: 
	void ShutDown(); 
	BOOL Start(); 
	void Reset(); 
	LONG SwichToMicSpk(); 
	long Init(); 
	long Open(); 
 
	CPhone(); 
	virtual ~CPhone(); 
 
private: 
 
	long GetDevCaps(); 
	void ProcessEvent(); 
 
	static DWORD WINAPI EventThread(LPVOID pParam); 
 
 
	UINT				m_ID; 
	BOOL				m_bInitialized; 
	BOOL				m_bOpened; 
	BOOL				m_bContinueEventThread; 
 
	HPHONEAPP			m_hPhoneApp; 
	HPHONE				m_hPhone; 
	HANDLE				m_hPhoneEvent; 
	HANDLE				m_hPhoneMsgThread; 
	PHONEEXTENSIONID	m_extID; 
	PHONECAPS*			m_pPhoneDevCaps; 
	DWORD				m_dwApiVersion; 
}; 
 
#endif // !defined(AFX_TAPIOBJ_H__BBE5AF64_65DB_4081_91FD_864B9F77F127__INCLUDED_)