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

📄 tapiline.h

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

// Functions defs
#define FUNCTION_MAKECALL	1
#define FUNCTION_DROP		2
#define FUNCTION_ANSWER		3
#define FUNCTION_DIAL		4
#define FUNCTION_DEVSPEC	5
#define FUNCTION_FORWARD	6

// Wave IN/OUT defs
#define WAVEIN		1
#define WAVEOUT		2

// Device specific action steps
#define DEVSPEC_IDLE			0		
#define DEVSPEC_STARTING		1	// before LINE_REPLY arrived
#define DEVSPEC_PROGRESS		2	
#define DEVSPEC_SUCCESS			4	
#define DEVSPEC_STARTFAILED		8	// failed to start
#define DEVSPEC_RESULTFAILED	16	// failed to finish

class CTapiCall;

BOOL IsLineRemote(LPLINEDEVCAPS lpDC);		// no longer need this

//typedef CMap<HCALL, HCALL, CTapiCall *, (CTapiCall *)&> CallList; // list of calls on line

/////////////////////////////////////////////////////////////////////////////
// CTapiLine command target

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

// Attributes
public:
	CTapiLine(DWORD dwLineID);
	virtual ~CTapiLine();
	CString m_csName;		// Readable name		

protected:
	CTapiApp *m_pApp;		// Main app handle
	DWORD m_dwLineID;	   	// device ID
	HLINE m_hLine;		   	// Line handle
	UINT m_uiWaveInID;		// WAVE/In ID
	UINT m_uiWaveOutID;		// WAVE/Out ID
	DWORD m_dwApiVersion;  	// TAPI version supported
	DWORD m_dwExtVersion; 	// Extension version
	// for now, until one call is destroyed, don't establish another
	CTapiCall *m_pActiveCall; // Active call -to be replaced by List
	LINECALLPARAMS *m_lpCallParms;
	HANDLE m_hCallSem;
	DWORD m_dwDevSpecStat;	// Status of devspec function
	DWORD m_dwDevSpecFunc;	// Currrently executed devspec function
	BOOL  m_bRemote;
	
// Operations
public:
	DWORD ctlLineOpen(DWORD dwLineID);
	DWORD ctlLineClose();
	LONG ctlLineForward(LPSTR lpDest);
	HLINE ctlGetHLine()
	{return m_hLine;}
	DWORD ctlGetLineID()
	{return m_dwLineID;}
	DWORD ctlGetWaveInID()
	{return m_uiWaveInID;}
	DWORD ctlGetWaveOutID()
	{return m_uiWaveOutID;}
	CTapiCall *ctlGetActiveCall() // Protect by mutex together w/setcall
	{return m_pActiveCall;}
	DWORD ctlLineGetCaps(LPLINEDEVCAPS *lppDevCaps);
	BOOL ctlSetCallParms(LINECALLPARAMS *lpCallParms);	// set the internal structure if needed
	LONG ctlLineMakeCall(LPCSTR lpDestAddress, DWORD dwCountryCode);
	LONG ctlLineAnswer(HCALL hCall = NULL);
	LONG ctlLineDrop(CTapiCall *pCall = NULL);
	LONG ctlLineDeallocateCall(CTapiCall *pCall = NULL);
	LONG ctlOfferCall(HCALL hCall);
	LONG ctlLineDial(CTapiCall *pCall, LPCSTR lpAddr, DWORD dwCountryCode);
	virtual void ctlPurgeCalls();		// free memory & other resources
	virtual void ctlUpdateCallStatus(WORD wFunction, DWORD dwStatus, CTapiCall *pCall);
	virtual BOOL ctlUpdateCallInfo(HCALL hCall, LPLINECALLINFO lpCallInfo);
	LPLINEDEVSTATUS ctlGetLineDevStatus();
	void ctlConfigDialog(HWND hWnd, LPSTR lpClass);
	LONG ctlLineDevSpecific(DWORD dwFunc, DWORD dwAddressID, HCALL hCall, LPVOID lParams, DWORD dwSize);
	void ctlUpdateDevSpecStatus(DWORD dwDevSpecStat = 0xffffffff)
	{if(dwDevSpecStat != 0xffffffff) InterlockedExchange((LONG *)&m_dwDevSpecStat, dwDevSpecStat);} 
	DWORD ctlGetDevSpecStatus()
	{return m_dwDevSpecStat;}
	void ctlUpdateDevSpecFunction(DWORD dwDevSpecFunc = 0xffffffff)
	{if(dwDevSpecFunc != 0xffffffff) InterlockedExchange((LONG *)&m_dwDevSpecFunc, dwDevSpecFunc);} 
	DWORD ctlGetDevSpecFunc()
	{return m_dwDevSpecFunc;}
	DWORD ctlGetApiVersion()
	{return m_dwApiVersion;}
	DWORD ctlGetExtVersion()
	{return m_dwExtVersion;}
	BOOL IsRemote(){return m_bRemote;}

protected:
	LONG AddCall(HCALL hCall=NULL);
	void RemoveCall(CTapiCall *pCall = NULL);
	void ctlGetWaveDeviceID (WORD wType);
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CTapiLine)
	//}}AFX_VIRTUAL

// Implementation
protected:
	// Generated message map functions
	//{{AFX_MSG(CTapiLine)
		// 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 + -