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

📄 tapicall.h

📁 TAPI编程应用
💻 H
字号:
// tapicall.h : header file
// (c) Dialogic corp 1995, 1996
//

// simplified call states
#ifndef IDLE
#define IDLE			0
#endif
#define MAKING			1
#define STOP_MAKING		2
#define PROGRESS		3
#define DIALING			4
#define OFFERING		5
#define ANSWERING		6
#define CONNECTED		7
#define	HOLD			8
#define DROPPING		9
#define DISCONNECTED 	10

// digits monitoring/gathering states
#define	MONITOR_DIGITS			0x0001
#define START_GATHER			0x0002
#define RESET_MONITOR_DIGITS	0x0004
#define END_GATHER_DIGITS		0x0008
#define RESET_GATHER_RESULT		0x0010

// call direction
#define INBOUND 		1
#define OUTBOUND		2

// errors occuring in call progress
#define MAKE_FAILED			0x00000001
#define ANSWER_FAILED		0x00000002
#define DROP_FAILED			0x00000004
#define DEALLOCATE_FAILED	0x00000008
// to be continued. . .

typedef struct _callstate {
	WORD wCallState;
	WORD wCallDirection;
	DWORD dwTapiCallState;
	DWORD dwErrors;
	} TAPICALLSTATE, *PTAPICALLSTATE;

typedef struct _monitorstate {
	WORD wState;
	WORD wLastDigit;
	DWORD dwDigitMode;
	DWORD dwGatherResult;
	WORD wMonitorCount;
	} MONITORSTATE, *PMONITORSTATE;

/////////////////////////////////////////////////////////////////////////////
// CTapiCall command target

class CTapiWave;	

class CTapiCall : public CObject
{
	DECLARE_DYNCREATE(CTapiCall)
protected:
	CTapiCall();           // protected constructor used by dynamic creation
	//virtual ~CTapiCall();

// Attributes
public:
	HCALL m_hCall;
	char m_szDigits[32];	//digits for gathering
	HWND m_hStatusWnd;	// status window handle
	HWND m_hCallAlertWnd;	// status window handle
	DWORD m_dwCallAlert;	// status window aler identifier	
	UINT m_uiAlertMsg;		// special message for alerting callinfo window

protected:
	CTapiLine *m_pctLine;
	TAPICALLSTATE m_CallState;
	MONITORSTATE m_MonitorState;
	HANDLE	m_hStateSem;
	HANDLE  m_hMonitorStateSem;
	CTapiWave *m_pWave;

// Operations
public:
	virtual ~CTapiCall();
	CTapiCall(HCALL hCall, CTapiLine *lpLine=NULL);           // public constructor
	const TAPICALLSTATE& GetFullCallState()
	{return m_CallState;}
	WORD GetCallState()
	{return m_CallState.wCallState;}
	WORD GetCallDirection()
	{return m_CallState.wCallDirection;}
	DWORD GetCallError()
	{return m_CallState.dwErrors;}
	BOOL UpdateCallState(WORD wCallState=0xffff, WORD wDirection=0xffff,
		 DWORD dwTapiCallState = 0xffff, DWORD dwErrors=0L);	  	// verify & update the full state
	void SetLine(CTapiLine *pLine)			// wrapper for m_pctLine
	{m_pctLine = pLine;}
	CTapiLine *GetLine()
	{return m_pctLine;}
	HANDLE GetStateSemHandle()	// get state sem
	{return m_hStateSem;}
	BOOL InitWave();
	BOOL ResetWave();
	BOOL Play(LPSTR lpName);
	BOOL Record(int nFormatID=10, DWORD dwSize=65534);
	BOOL PlayEx(LPCTSTR lpName);
	BOOL RecordEx(LPCTSTR lpName, DWORD dwRecTime, int nFormatID=10);
	BOOL Pause();
	BOOL Resume();
	BOOL StopWave();
	void FinishPlay(WPARAM wParam, LPARAM lParam);
	void FinishRecord(WPARAM wParam, LPARAM lParam, LPSTR lpName=NULL);
	DWORD GetHWaveIn();
	DWORD GetHWaveOut();
	DWORD GetWaveStatus();
	DWORD GetWaveVolume();
	void  SetWaveVolume(DWORD dwVol=0xffff);
	LONG GatherDigits(DWORD dwNumDigits, LPCSTR lpszTermDigits, 
    			DWORD dwFirstDigitTimeout, DWORD dwInterDigitTimeout, LPSTR lpBuf);
	LONG MonitorDigits(DWORD dwMode);
	BOOL UpdateMonitorState(WORD wType, DWORD dwDigit, DWORD dwMode);
	BOOL GetMonitorState(PMONITORSTATE pMonState);
	DWORD GetRecPlayStatus();
	virtual void NotifyCallWindow()		// post a message that status has changed	
	{::PostMessage(m_hStatusWnd, WM_COMMAND, MAKELONG(m_dwCallAlert,BN_CLICKED), (LPARAM)m_hCallAlertWnd);}
	virtual void NotifyCallWindow(UINT wParam, LONG lParam)		// post a message that status has changed	
	{::PostMessage(m_hStatusWnd, m_uiAlertMsg, wParam, lParam);}



// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CTapiCall)
	//}}AFX_VIRTUAL

// Implementation
//protected:
//	virtual ~CTapiCall();

	// Generated message map functions
	//{{AFX_MSG(CTapiCall)
		// NOTE - the ClassWizard will add and remove member functions here.
	//}}AFX_MSG

//	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

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