⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tapiobj.h

📁 一个使用tapi实现的自动语音应答的例子
💻 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_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -