www.pudn.com > AM.rar > AM.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