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

📄 am.h

📁 VC写的用TAPI实现的自动应答系统(Answering Machine).
💻 H
字号:
#ifndef	_AM_H
#define	_AM_H

//Negotiate the API versions
#define TAPI_VERSION_1_0      0x00010003  //TAPI Ver1.3
#define TAPI_VERSION_1_4      0x00010004  //TAPI Ver1.4
#define TAPI_VERSION_2_0      0x00020000  //TAPI Ver2.0
#define NOERR                 0x00000000
//dwCallState use, to show call state
#define TAPI_HANGUP		    0x00000000	  //call no use 
#define TAPI_PLAYGREET 		0x00000001	  //call play greet
#define TAPI_RECORDICM		0x00000002	  //call record ICM
#define TAPI_PLAYICM		0x00000004	  //call play ICM
#define TAPI_PREPAREPLAYICM 0x00000008	  //call close play greet,then play ICM
//lineSetAppSpecific param2 use, that
//wavecallback use to connect linecallback
#define TAPI_SETAPP_NONE			0x00000000 //default set it
#define TAPI_SETAPP_ENDPLAYGREET	0x00000001 //end of play greet
#define TAPI_SETAPP_ENDRECORDICM	0x00000002 //end of record ICM
#define TAPI_SETAPP_ENDPLAYICM		0x00000004 //end of play ICM
#define TAPI_SETAPP_PREPAREPLAYICM  0x00000008 //end of prepare play ICM
#define TAPI_SETAPP_ADDPLAYSTAGE    0x00000010 //lpWaveHdr is done when play
#define TAPI_SETAPP_ADDPLAYSTAGE2   0x00000011 //lpWaveHdr2 is done when play
#define TAPI_SETAPP_ADDRECORDSTAGE	0x00000012 //lpWaveHdr is done when record
#define TAPI_SETAPP_ADDRECORDSTAGE2 0x00000014 //lpWaveHdr2 is done when record

#define WAVEBUFSIZE	8192	         //buffer size ,use to save wave data

extern HLINEAPP m_hLineApp;			 //application's header
extern LPVARSTRING lpDeviceID;		 //use for lineGetID parameter5

typedef struct linecallback_tag		 //save linecallback's six parameters
{
   DWORD	dwDevice;
   DWORD	nMsg;
   DWORD	dwCallbackInstance;
   DWORD    dwParam1;
   DWORD	dwParam2;
   DWORD	dwParam3;
}ADCALLBACK;

typedef struct lineinfo_tag
{
	HLINE	hLine;					 //line handle
	HCALL   hCall;					 //call handle
	DWORD	dwApiVersion;			 //TAPI version
	DWORD   dwLineID;				 //line Device ID
	DWORD   dwWaveID;				 //wave Device ID
	DWORD   nLineID;				 //line ID
	DWORD   dwCallState;			 //flag to show the call state
 
	HWAVEOUT    hWaveOut;			 //wave out handle
	HWAVEIN     hWaveIn;			 //wave in handle
	LPWAVEHDR	lpWaveHdr;			 //wave header
	LPWAVEHDR	lpWaveHdr2;			 //wave header
	HPSTR		lpWaveDataAlloc;	 //buffer use to save wave data to lpWaveHdr
	HPSTR       lpWaveDataAlloc2;	 //buffer use to save wave data to lpWaveHdr2
	MMCKINFO	mmParent,mmSubchunk; //chunk for wave use
	HMMIO   hmmioH;      
	DWORD   dwPlaySize;	   //wave play or record size in wave header
	DWORD  	dwWaveStage;   //need add data to wave header?
	DWORD	dwDataSize;	   //wave data total size not ready now
	WORD	wWaveBufState; //check which lpWaveHdr(2) is use
	
	char szLineName[50];   //save channel name
	char pszLoginID[5];	   //saving user input DTMF when play greet.wav
	char pszRecStop[20];   //saving user input DTMF when record income.wav
	LPLINECALLINFO lpCallInfo; //save LINECALLINFO 
	ADCALLBACK pCallBack;	   //save linecallback's six parameters
}LINEINFO, FAR *LPLINEINFO;

long InitializeLines(DWORD, DWORD);	 //include lineInitialize , lineNegotiateAPIVersion
void CALLBACK ADmorelineCallbackFunc(DWORD, DWORD, DWORD, DWORD, DWORD, DWORD);
BOOL ExitCtrlHandler(DWORD);		 //exit handler	,use to exit application
									 
#endif

⌨️ 快捷键说明

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