📄 mytapi_.c
字号:
EnableMenuItem( hMenu, IDM_ANSWER, MF_GRAYED | MF_DISABLED | MF_BYCOMMAND ) ;
break;
default:
break;
} //end switch
switch (dwParam1) {
case LINECALLSTATE_IDLE:
// deallocate call resources
lineDeallocateCall (mytapi.hCall);
// re-enable make call
// update menus
hMenu = GetMenu(hTTYWnd);
if (mytapi.pLineaddressstatus->dwAddressFeatures & LINEADDRFEATURE_MAKECALL)
EnableMenuItem( hMenu, IDM_MAKECALL, MF_ENABLED | MF_BYCOMMAND ) ;
else
EnableMenuItem( hMenu, IDM_MAKECALL, MF_GRAYED | MF_DISABLED | MF_BYCOMMAND ) ;
break;
case LINECALLSTATE_OFFERING:
if (mytapi.bWaitForCall) {
// answer incoming calls
lrc = lineAnswer(mytapi.hCall,NULL,0);
if (!(lrc >0 )) {
ProcessTAPIError(lrc);
myMessageBox("Error answering call");
}
}
break;
case LINECALLSTATE_ACCEPTED:
break;
case LINECALLSTATE_DIALTONE:
switch (dwParam2) {
case LINEDIALTONEMODE_NORMAL:
break;
case LINEDIALTONEMODE_SPECIAL:
break;
case LINEDIALTONEMODE_INTERNAL:
break;
case LINEDIALTONEMODE_EXTERNAL:
break;
case LINEDIALTONEMODE_UNKNOWN:
break;
case LINEDIALTONEMODE_UNAVAIL:
break;
default:
break;
} //end switch
break;
case LINECALLSTATE_DIALING:
break;
case LINECALLSTATE_RINGBACK:
break;
case LINECALLSTATE_BUSY:
switch (dwParam2) {
case LINEBUSYMODE_STATION:
break;
case LINEBUSYMODE_TRUNK:
break;
case LINEBUSYMODE_UNKNOWN:
break;
case LINEBUSYMODE_UNAVAIL:
break;
default:
break;
} //end switch
break;
case LINECALLSTATE_SPECIALINFO:
switch (dwParam2) {
case LINESPECIALINFO_NOCIRCUIT:
break;
case LINESPECIALINFO_CUSTIRREG:
break;
case LINESPECIALINFO_REORDER:
break;
case LINESPECIALINFO_UNKNOWN:
break;
case LINESPECIALINFO_UNAVAIL:
break;
default:
break;
} //end switch
break;
case LINECALLSTATE_CONNECTED:
/* create the thread for reading bytes */
mytapi.bReading = TRUE;
if ((mytapi.hThread=CreateThread
(NULL, /*def security */
0, /* def stack size */
(LPTHREAD_START_ROUTINE)ReadThread,
NULL, /* param to pass to thread */
0, &id)) == INVALID_HANDLE_VALUE) {
/* handle error */
MessageBox (NULL, "Error creating READ thread","",MB_OK);
break;
} /* end if (error creating read thread) */
break;
case LINECALLSTATE_PROCEEDING:
break;
case LINECALLSTATE_ONHOLD:
break;
case LINECALLSTATE_CONFERENCED:
break;
case LINECALLSTATE_ONHOLDPENDCONF:
break;
case LINECALLSTATE_DISCONNECTED:
/* kill the read thread */
if (mytapi.bReading) {
mytapi.bReading = FALSE;
/* wait for thread to die... */
while (GetExitCodeThread(mytapi.hThread, &id)) {
if (id == STILL_ACTIVE)
continue;
else
break;
} /* end while (no error reading thread exit code) */
CloseHandle (mytapi.hThread);
}
switch (dwParam2) {
case LINEDISCONNECTMODE_NORMAL:
break;
case LINEDISCONNECTMODE_UNKNOWN:
break;
case LINEDISCONNECTMODE_REJECT:
break;
case LINEDISCONNECTMODE_PICKUP:
break;
case LINEDISCONNECTMODE_FORWARDED:
break;
case LINEDISCONNECTMODE_BUSY:
break;
case LINEDISCONNECTMODE_NOANSWER:
break;
case LINEDISCONNECTMODE_BADADDRESS:
break;
case LINEDISCONNECTMODE_UNREACHABLE:
break;
case LINEDISCONNECTMODE_CONGESTION:
break;
case LINEDISCONNECTMODE_INCOMPATIBLE:
break;
case LINEDISCONNECTMODE_UNAVAIL:
break;
default:
break;
} //end switch
break;
case LINECALLSTATE_UNKNOWN:
break;
default:
break;
} //end switch
break;
case LINE_CLOSE:
break;
case LINE_DEVSPECIFIC:
break;
case LINE_DEVSPECIFICFEATURE:
break;
case LINE_GATHERDIGITS:
switch (dwParam1) {
case LINEGATHERTERM_BUFFERFULL:
break;
case LINEGATHERTERM_TERMDIGIT:
break;
case LINEGATHERTERM_FIRSTTIMEOUT:
break;
case LINEGATHERTERM_INTERTIMEOUT:
break;
case LINEGATHERTERM_CANCEL:
break;
default:
break;
} //end switch
break;
case LINE_GENERATE:
switch (dwParam1) {
case LINEGENERATETERM_DONE:
break;
case LINEGENERATETERM_CANCEL:
break;
default:
break;
} //end switch
break;
case LINE_LINEDEVSTATE:
mylineGetLineDevStatus();
// update menus
hMenu = GetMenu(hTTYWnd);
if (mytapi.pLinedevstatus->dwLineFeatures & LINEFEATURE_MAKECALL)
EnableMenuItem( hMenu, IDM_MAKECALL, MF_ENABLED | MF_BYCOMMAND ) ;
else
EnableMenuItem( hMenu, IDM_MAKECALL, MF_GRAYED | MF_DISABLED | MF_BYCOMMAND ) ;
switch (dwParam1) {
case LINEDEVSTATE_OTHER:
break;
case LINEDEVSTATE_RINGING:
break;
case LINEDEVSTATE_CONNECTED:
break;
case LINEDEVSTATE_DISCONNECTED:
break;
case LINEDEVSTATE_MSGWAITON:
break;
case LINEDEVSTATE_MSGWAITOFF:
break;
case LINEDEVSTATE_NUMCOMPLETIONS:
break;
case LINEDEVSTATE_INSERVICE:
break;
case LINEDEVSTATE_OUTOFSERVICE:
break;
case LINEDEVSTATE_MAINTENANCE:
break;
case LINEDEVSTATE_OPEN:
break;
case LINEDEVSTATE_CLOSE:
break;
case LINEDEVSTATE_NUMCALLS:
break;
case LINEDEVSTATE_TERMINALS:
break;
case LINEDEVSTATE_ROAMMODE:
break;
case LINEDEVSTATE_BATTERY:
break;
case LINEDEVSTATE_SIGNAL:
break;
case LINEDEVSTATE_DEVSPECIFIC:
break;
case LINEDEVSTATE_REINIT:
break;
case LINEDEVSTATE_LOCK:
break;
default:
break;
} //end switch
break;
case LINE_MONITORDIGITS:
switch (dwParam2) {
case LINEDIGITMODE_PULSE:
break;
case LINEDIGITMODE_DTMF:
break;
case LINEDIGITMODE_DTMFEND:
break;
default:
break;
} //end switch
break;
case LINE_MONITORMEDIA:
switch (dwParam1) {
case LINEMEDIAMODE_INTERACTIVEVOICE:
break;
case LINEMEDIAMODE_AUTOMATEDVOICE:
break;
case LINEMEDIAMODE_DATAMODEM:
break;
case LINEMEDIAMODE_G3FAX:
break;
case LINEMEDIAMODE_TDD:
break;
case LINEMEDIAMODE_G4FAX:
break;
case LINEMEDIAMODE_DIGITALDATA:
break;
case LINEMEDIAMODE_TELETEX:
break;
default:
break;
} //end switch
break;
case LINE_MONITORTONE:
break;
case LINE_REPLY:
switch (dwParam2) {
case LINEERR_ALLOCATED:
myMessageBox(" LINEERR_ALLOCATED");
break;
case LINEERR_BADDEVICEID:
myMessageBox(" LINEERR_BADDEVICEID");
break;
case LINEERR_BEARERMODEUNAVAIL:
myMessageBox(" LINEERR_BEARERMODEUNAVAIL");
break;
case LINEERR_CALLUNAVAIL:
myMessageBox(" LINEERR_CALLUNAVAIL");
break;
case LINEERR_COMPLETIONOVERRUN:
myMessageBox(" LINEERR_COMPLETIONOVERRUN");
break;
case LINEERR_CONFERENCEFULL:
myMessageBox(" LINEERR_CONFERENCEFULL");
break;
case LINEERR_DIALBILLING:
myMessageBox(" LINEERR_DIALBILLING");
break;
case LINEERR_DIALDIALTONE:
myMessageBox(" LINEERR_DIALDIALTONE");
break;
case LINEERR_DIALPROMPT:
myMessageBox(" LINEERR_DIALPROMPT");
break;
case LINEERR_DIALQUIET:
myMessageBox(" LINEERR_DIALQUIET");
break;
case LINEERR_INCOMPATIBLEAPIVERSION:
myMessageBox(" LINEERR_INCOMPATIBLEAPIVERSION");
break;
case LINEERR_INCOMPATIBLEEXTVERSION:
myMessageBox(" LINEERR_INCOMPATIBLEEXTVERSION");
break;
case LINEERR_INIFILECORRUPT:
myMessageBox(" LINEERR_INIFILECORRUPT");
break;
case LINEERR_INUSE:
myMessageBox(" LINEERR_INUSE");
break;
case LINEERR_INVALADDRESS:
myMessageBox(" LINEERR_INVALADDRESS");
break;
case LINEERR_INVALADDRESSID:
myMessageBox(" LINEERR_INVALADDRESSID");
break;
case LINEERR_INVALADDRESSMODE:
myMessageBox(" LINEERR_INVALADDRESSMODE");
break;
case LINEERR_INVALADDRESSSTATE:
myMessageBox(" LINEERR_INVALADDRESSSTATE");
break;
case LINEERR_INVALAPPHANDLE:
myMessageBox(" LINEERR_INVALAPPHANDLE");
break;
case LINEERR_INVALAPPNAME:
myMessageBox(" LINEERR_INVALAPPNAME");
break;
case LINEERR_INVALBEARERMODE:
myMessageBox(" LINEERR_INVALBEARERMODE");
break;
case LINEERR_INVALCALLCOMPLMODE:
myMessageBox(" LINEERR_INVALCALLCOMPLMODE");
break;
case LINEERR_INVALCALLHANDLE:
myMessageBox(" LINEERR_INVALCALLHANDLE");
break;
case LINEERR_INVALCALLPARAMS:
myMessageBox(" LINEERR_INVALCALLPARAMS");
break;
case LINEERR_INVALCALLPRIVILEGE:
myMessageBox(" LINEERR_INVALCALLPRIVILEGE");
break;
case LINEERR_INVALCALLSELECT:
myMessageBox(" LINEERR_INVALCALLSELECT");
break;
case LINEERR_INVALCALLSTATE:
myMessageBox(" LINEERR_INVALCALLSTATE");
break;
case LINEERR_INVALCALLSTATELIST:
myMessageBox(" LINEERR_INVALCALLSTATELIST");
break;
case LINEERR_INVALCARD:
myMessageBox(" LINEERR_INVALCARD");
break;
case LINEERR_INVALCOMPLETIONID:
myMessageBox(" LINEERR_INVALCOMPLETIONID");
break;
case LINEERR_INVALCONFCALLHANDLE:
myMessageBox(" LINEERR_INVALCONFCALLHANDLE");
break;
case LINEERR_INVALCONSULTCALLHANDLE:
myMessageBox(" LINEERR_INVALCONSULTCALLHANDLE");
break;
case LINEERR_INVALCOUNTRYCODE:
myMessageBox(" LINEERR_INVALCOUNTRYCODE");
break;
case LINEERR_INVALDEVICECLASS:
myMessageBox(" LINEERR_INVALDEVICECLASS");
break;
case LINEERR_INVALDEVICEHANDLE:
myMessageBox(" LINEERR_INVALDEVICEHANDLE");
break;
case LINEERR_INVALDIALPARAMS:
myMessageBox(" LINEERR_INVALDIALPARAMS");
break;
case LINEERR_INVALDIGITLIST:
myMessageBox(" LINEERR_INVALDIGITLIST");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -