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

📄 command.cpp

📁 csta协议的开发
💻 CPP
📖 第 1 页 / 共 3 页
字号:
/////////////////////////////////////////////////////////////////////////////
// CMainWind 

#include "stdafx.h"

#include "acs.h"
#include "csta.h"
#include "AlcPriV2.h"

#include "resource.h"       // main symbols
#include "cstatst32.h"
#include "dialog.h"                                                             
#include "mdump.h"

#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif


//StreamType_t	my_streamType;

extern CCstatst32App  theApp;

IMPLEMENT_DYNCREATE(CMainWind, CFrameWnd)

CMainWind::CMainWind()
{
  m_bPrivateData = FALSE;
  m_bEventFile = FALSE;
  pPrivateData = NULL;
  m_bEventListOn = FALSE;
  theApp.m_bCessionOn = TRUE;
  m_bOpenedStream = FALSE;
  m_bEsrSet = FALSE;
  m_bDisplayingSession = TRUE;
  my_setTimer = 0;
  m_bAutoKeepAlive = FALSE;
  my_periodicTimer =0;
/*YB 240800+*/
  m_bAutoReconnect = FALSE;
  my_reconnectTimer = 0;
/*YB 240800-*/

}

CMainWind::~CMainWind() {
  theApp.m_bCessionOn = FALSE;
  m_bEventListOn = FALSE;
  delete (m_pEventList);
}

BEGIN_MESSAGE_MAP(CMainWind, CFrameWnd)
  //{{AFX_MSG_MAP(CMainWind)
  ON_WM_SIZE()
  ON_MESSAGE(WM_ACSEVENT, OnServiceRoutine)
  ON_COMMAND(ID_CONNECTSERVER, OnConnectserver)
  ON_COMMAND(ID_DISCONNECTSERVER, OnDisconnectserver)
  ON_COMMAND(ID_SESSION_EXIT, OnSessionExit)
  ON_COMMAND(ID_MONITORDEVICE, OnMonitordevice)
  ON_COMMAND(ID_STOPMONITORDEVICE, OnStopmonitordevice)
  ON_COMMAND(ID_MAKECALL, OnMakecall)
  ON_COMMAND(ID_CLEARCALL, OnClearcall)
  ON_COMMAND(ID_CLEARCONNECTION, OnClearconnection)
  ON_COMMAND(ID_CONSULTATIONCALL, OnConsultationcall)
  ON_COMMAND(ID_RECONNECTCALL, OnReconnectcall)
  ON_COMMAND(ID_TRANSFERTCALL, OnTransfertcall)
  ON_COMMAND(ID_HOLDCALL, OnHoldcall)
  ON_COMMAND(ID_RETRIEVECALL, OnRetrievecall)
  ON_COMMAND(ID_SETAGENTSTATE, OnSetagentstate)
  ON_COMMAND(ID_MESSAGEWAITING, OnMessagewaiting)
  ON_COMMAND(ID_FORWARDING, OnForwarding)
  ON_COMMAND(ID_DONOTDISTURB, OnDonotdisturb)
  ON_COMMAND(ID_ANSWERCALL, OnAnswercall)
  ON_COMMAND(ID_ABORTSTREAM, OnAbortstream)
  ON_COMMAND(ID_GETAPICAPS, OnGetapicaps)
  ON_COMMAND(ID_QUERYCALLMONITOR, OnQuerycallmonitor)
  ON_COMMAND(ID_QUERY_AGENTSTATE, OnQueryAgentstate)
  ON_COMMAND(ID_QUERY_DEVICEINFO, OnQueryDeviceinfo)
  ON_COMMAND(ID_QUERY_DONOTDISTURB, OnQueryDonotdisturb)
  ON_COMMAND(ID_QUERY_FORWARDING, OnQueryForwarding)
  ON_COMMAND(ID_QUERY_LASTNUMBER, OnQueryLastnumber)
  ON_COMMAND(ID_QUERY_MESSAGEWAITING, OnQueryMessagewaiting)
  ON_COMMAND(ID_CHANGEFILTER, OnChangefilter)
  ON_COMMAND(ID_PRIVATEDATA, OnPrivatedata)
  ON_UPDATE_COMMAND_UI(ID_PRIVATEDATA, OnUpdatePrivatedata)
  ON_COMMAND(ID_SETPRIVATEDATA, OnSetprivatedata)
  ON_COMMAND(ID_ESCAPESERVICECONF, OnEscapeserviceconf)
  ON_COMMAND(ID_ESCAPESERVICE, OnEscapeservice)
  ON_COMMAND(ID_SENDPRIVATEEVENT, OnSendprivateevent)
  ON_COMMAND(ID_SENDSYSTEMSTATUSEVENT, OnSendsystemstatusevent)
  ON_COMMAND(ID_SYSTEMSTATUSCONFIRMATION, OnSystemstatusconfirmation)
  ON_COMMAND(ID_SYSTEMSTATUSREQUEST, OnSystemstatusrequest)
  ON_COMMAND(ID_SYSTEMSTATUSSTART, OnSystemstatusstart)
  ON_COMMAND(ID_SYSTEMSTATUSSTOP, OnSystemstatusstop)
  ON_COMMAND(ID_SYSTEMSTATUSCHANGEFILTER, OnSystemstatuschangefilter)
  ON_COMMAND(ID_CLEARSCREEN, OnClearscreen)
  ON_UPDATE_COMMAND_UI(ID_DISCONNECTSERVER, OnUpdateDisconnectserver)
  ON_UPDATE_COMMAND_UI(ID_ABORTSTREAM, OnUpdateAbortstream)
  ON_UPDATE_COMMAND_UI(ID_MONITORDEVICE, OnUpdateMonitordevice)
  ON_UPDATE_COMMAND_UI(ID_CHANGEFILTER, OnUpdateChangefilter)
  ON_UPDATE_COMMAND_UI(ID_STOPMONITORDEVICE, OnUpdateStopmonitordevice)
  ON_UPDATE_COMMAND_UI(ID_CONNECTSERVER, OnUpdateConnectserver)
  ON_UPDATE_COMMAND_UI(ID_ANSWERCALL, OnUpdateAnswercall)
  ON_UPDATE_COMMAND_UI(ID_MAKECALL, OnUpdateMakecall)
  ON_UPDATE_COMMAND_UI(ID_CLEARCALL, OnUpdateClearcall)
  ON_UPDATE_COMMAND_UI(ID_CLEARCONNECTION, OnUpdateClearconnection)
  ON_UPDATE_COMMAND_UI(ID_HOLDCALL, OnUpdateHoldcall)
  ON_UPDATE_COMMAND_UI(ID_RETRIEVECALL, OnUpdateRetrievecall)
  ON_UPDATE_COMMAND_UI(ID_RECONNECTCALL, OnUpdateReconnectcall)
  ON_UPDATE_COMMAND_UI(ID_TRANSFERTCALL, OnUpdateTransfertcall)
  ON_UPDATE_COMMAND_UI(ID_CONSULTATIONCALL, OnUpdateConsultationcall)
  ON_UPDATE_COMMAND_UI(ID_GETAPICAPS, OnUpdateGetapicaps)
  ON_UPDATE_COMMAND_UI(ID_QUERYCALLMONITOR, OnUpdateQuerycallmonitor)
  ON_UPDATE_COMMAND_UI(ID_ESCAPESERVICE, OnUpdateEscapeservice)
  ON_UPDATE_COMMAND_UI(ID_ESCAPESERVICECONF, OnUpdateEscapeserviceconf)
  ON_UPDATE_COMMAND_UI(ID_SENDPRIVATEEVENT, OnUpdateSendprivateevent)
  ON_UPDATE_COMMAND_UI(ID_SYSTEMSTATUSREQUEST, OnUpdateSystemstatusrequest)
  ON_UPDATE_COMMAND_UI(ID_SYSTEMSTATUSSTART, OnUpdateSystemstatusstart)
  ON_UPDATE_COMMAND_UI(ID_SYSTEMSTATUSSTOP, OnUpdateSystemstatusstop)
  ON_UPDATE_COMMAND_UI(ID_SYSTEMSTATUSCHANGEFILTER, OnUpdateSystemstatuschangefilter)
  ON_UPDATE_COMMAND_UI(ID_SYSTEMSTATUSCONFIRMATION, OnUpdateSystemstatusconfirmation)
  ON_UPDATE_COMMAND_UI(ID_SENDSYSTEMSTATUSEVENT, OnUpdateSendsystemstatusevent)
  ON_UPDATE_COMMAND_UI(ID_MESSAGEWAITING, OnUpdateMessagewaiting)
  ON_UPDATE_COMMAND_UI(ID_DONOTDISTURB, OnUpdateDonotdisturb)
  ON_UPDATE_COMMAND_UI(ID_FORWARDING, OnUpdateForwarding)
  ON_UPDATE_COMMAND_UI(ID_SETAGENTSTATE, OnUpdateSetagentstate)
  ON_UPDATE_COMMAND_UI(ID_QUERY_MESSAGEWAITING, OnUpdateQueryMessagewaiting)
  ON_UPDATE_COMMAND_UI(ID_QUERY_DONOTDISTURB, OnUpdateQueryDonotdisturb)
  ON_UPDATE_COMMAND_UI(ID_QUERY_FORWARDING, OnUpdateQueryForwarding)
  ON_UPDATE_COMMAND_UI(ID_QUERY_AGENTSTATE, OnUpdateQueryAgentstate)
  ON_UPDATE_COMMAND_UI(ID_QUERY_LASTNUMBER, OnUpdateQueryLastnumber)
  ON_UPDATE_COMMAND_UI(ID_QUERY_DEVICEINFO, OnUpdateQueryDeviceinfo)
  ON_COMMAND(ID_ALTERNATECALL, OnAlternatecall)
  ON_UPDATE_COMMAND_UI(ID_ALTERNATECALL, OnUpdateAlternatecall)
  ON_COMMAND(ID_CALLCOMPLETION, OnCallcompletion)
  ON_UPDATE_COMMAND_UI(ID_CALLCOMPLETION, OnUpdateCallcompletion)
  ON_COMMAND(ID_CONFERENCECALL, OnConferencecall)
  ON_UPDATE_COMMAND_UI(ID_CONFERENCECALL, OnUpdateConferencecall)
  ON_WM_DESTROY()
  ON_COMMAND(ID_DEFLECTCALL, OnDeflectcall)
  ON_UPDATE_COMMAND_UI(ID_DEFLECTCALL, OnUpdateDeflectcall)
  ON_COMMAND(ID_GROUP_PICKUP_CALL, OnGroupPickupCall)
  ON_UPDATE_COMMAND_UI(ID_GROUP_PICKUP_CALL, OnUpdateGroupPickupCall)
  ON_COMMAND(ID_MAKE_PREDICTIVE_CALL, OnMakePredictiveCall)
  ON_UPDATE_COMMAND_UI(ID_MAKE_PREDICTIVE_CALL, OnUpdateMakePredictiveCall)
  ON_COMMAND(ID_PICKUP_CALL, OnPickupCall)
  ON_UPDATE_COMMAND_UI(ID_PICKUP_CALL, OnUpdatePickupCall)
  ON_COMMAND(ID_ENABLE_EVENTS_FILE, OnEnableEventsFile)
  ON_UPDATE_COMMAND_UI(ID_ENABLE_EVENTS_FILE, OnUpdateEnableEventsFile)
  ON_COMMAND(ID_CLEAR_EVENTS_FILE, OnClearEventsFile)
  ON_COMMAND(ID_GET_DEVICE_LIST, OnGetDeviceList)
  ON_UPDATE_COMMAND_UI(ID_GET_DEVICE_LIST, OnUpdateGetDeviceList)
  ON_COMMAND(ID_SNAPSHOT_CALL, OnSnapshotCall)
  ON_UPDATE_COMMAND_UI(ID_SNAPSHOT_CALL, OnUpdateSnapshotCall)
  ON_COMMAND(ID_SNAPSHOT_DEVICE, OnSnapshotDevice)
  ON_UPDATE_COMMAND_UI(ID_SNAPSHOT_DEVICE, OnUpdateSnapshotDevice)
  ON_COMMAND(ID_MONITOR_CALL, OnMonitorCall)
  ON_UPDATE_COMMAND_UI(ID_MONITOR_CALL, OnUpdateMonitorCall)
  ON_COMMAND(ID_MONITOR_CALL_VIA_DEVICE, OnMonitorCallViaDevice)
  ON_UPDATE_COMMAND_UI(ID_MONITOR_CALL_VIA_DEVICE, OnUpdateMonitorCallViaDevice)
  ON_COMMAND(ID_ROUTESELECT, OnRouteselect)
  ON_UPDATE_COMMAND_UI(ID_ROUTESELECT, OnUpdateRouteselect)
  ON_COMMAND(ID_ROUTEEND, OnRouteend)
  ON_UPDATE_COMMAND_UI(ID_ROUTEEND, OnUpdateRouteend)
  ON_COMMAND(ID_ROUTEREGISTER, OnRouteregister)
  ON_UPDATE_COMMAND_UI(ID_ROUTEREGISTER, OnUpdateRouteregister)
  ON_COMMAND(ID_ROUTEREGISTERCANCEL, OnRouteregistercancel)
  ON_UPDATE_COMMAND_UI(ID_ROUTEREGISTERCANCEL, OnUpdateRouteregistercancel)
	ON_COMMAND(ID_SENDDTMFTONES, OnSendDTMFTones)
	ON_UPDATE_COMMAND_UI(ID_SENDDTMFTONES, OnUpdateSendDTMFTones)
	ON_COMMAND(ID_SINGLESTEPCONFERENCE, OnSingleStepConference)
	ON_UPDATE_COMMAND_UI(ID_SINGLESTEPCONFERENCE, OnUpdateSingleStepConference)
	ON_COMMAND(ID_STOP, OnStop)
	ON_UPDATE_COMMAND_UI(ID_STOP, OnUpdateStop)
	ON_COMMAND(ID_RECORDMESSAGE, OnRecordMessage)
	ON_UPDATE_COMMAND_UI(ID_RECORDMESSAGE, OnUpdateRecordMessage)
	ON_COMMAND(ID_CONSULTATION_CALL_V2, OnConsultationCallV2)
	ON_UPDATE_COMMAND_UI(ID_CONSULTATION_CALL_V2, OnUpdateConsultationCallV2)
	ON_COMMAND(ID_ESCAPESERVICEINT, OnEscapeserviceint)
	ON_UPDATE_COMMAND_UI(ID_ESCAPESERVICEINT, OnUpdateEscapeserviceint)
	ON_COMMAND(IDD_ESCAPESETDEVICEINSERVICE, OnEscapesetdeviceinservice)
	ON_UPDATE_COMMAND_UI(IDD_ESCAPESETDEVICEINSERVICE, OnUpdateEscapesetdeviceinservice)
	ON_COMMAND(ID_ASSOCIATEDATA, OnAssociatedata)
	ON_UPDATE_COMMAND_UI(ID_ASSOCIATEDATA, OnUpdateAssociatedata)
	ON_COMMAND(ID_ESCAPEHOSTINFORMATION, OnEscapehostinformation)
	ON_UPDATE_COMMAND_UI(ID_ESCAPEHOSTINFORMATION, OnUpdateEscapehostinformation)
	ON_COMMAND(ID_SUPER_ASSIST_REQUEST, OnSuperAssistRequest)
	ON_UPDATE_COMMAND_UI(ID_SUPER_ASSIST_REQUEST, OnUpdateSuperAssistRequest)
	ON_COMMAND(ID_SUPER_ASSIST_CANCEL, OnSuperAssistCancel)
	ON_UPDATE_COMMAND_UI(ID_SUPER_ASSIST_CANCEL, OnUpdateSuperAssistCancel)
	ON_COMMAND(ID_AUTO_KEEP_ALIVE, OnAutoKeepAlive)
	ON_UPDATE_COMMAND_UI(ID_AUTO_KEEP_ALIVE, OnUpdateAutoKeepAlive)
	ON_COMMAND(ID_ESCAPE_OTHER_OPERATION, OnEscapeOtherOperation)
	ON_UPDATE_COMMAND_UI(ID_ESCAPE_OTHER_OPERATION, OnUpdateEscapeOtherOperation)
	ON_COMMAND(ID_SERVICE_REGISTER_REQUEST, OnServiceRegisterRequest)
	ON_UPDATE_COMMAND_UI(ID_SERVICE_REGISTER_REQUEST, OnUpdateServiceRegisterRequest)
	ON_COMMAND(ID_SERVICE_REGISTER_CANCEL, OnServiceRegisterCancel)
	ON_UPDATE_COMMAND_UI(ID_SERVICE_REGISTER_CANCEL, OnUpdateServiceRegisterCancel)
	ON_COMMAND(ID_START_LISTENING, OnStartListening)
	ON_UPDATE_COMMAND_UI(ID_START_LISTENING, OnUpdateStartListening)
	ON_COMMAND(ID_STOP_LISTENING, OnStopListening)
	ON_UPDATE_COMMAND_UI(ID_STOP_LISTENING, OnUpdateStopListening)
	ON_COMMAND(ID_BIP_TONE, OnBipTone)
	ON_UPDATE_COMMAND_UI(ID_BIP_TONE, OnUpdateBipTone)
	ON_COMMAND(ID_CCTREATMENT_REQUEST, OnCctreatmentRequest)
	ON_UPDATE_COMMAND_UI(ID_CCTREATMENT_REQUEST, OnUpdateCctreatmentRequest)
	ON_COMMAND(ID_PERMANENT_LISTENING, OnPermanentListening)
	ON_UPDATE_COMMAND_UI(ID_PERMANENT_LISTENING, OnUpdatePermanentListening)
	ON_COMMAND(ID_PARKCALL, OnParkcall)
	ON_UPDATE_COMMAND_UI(ID_PARKCALL, OnUpdateParkcall)
	ON_COMMAND(ID_GENERATETONE, OnGeneratetone)
	ON_UPDATE_COMMAND_UI(ID_GENERATETONE, OnUpdateGeneratetone)
	ON_COMMAND(ID_CANCELTONE, OnCanceltone)
	ON_UPDATE_COMMAND_UI(ID_CANCELTONE, OnUpdateCanceltone)
	ON_COMMAND(ID_STARTDATACOLL, OnStartdatacoll)
	ON_UPDATE_COMMAND_UI(ID_STARTDATACOLL, OnUpdateStartdatacoll)
	ON_COMMAND(ID_STOPDATACOLL, OnStopdatacoll)
	ON_UPDATE_COMMAND_UI(ID_STOPDATACOLL, OnUpdateStopdatacoll)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

void CMainWind::OnSize(UINT nType, int cx, int cy) {
  CFrameWnd::OnSize(nType, cx, cy);
  if (m_bEventListOn) {
    m_pEventList->SetWindowPos (this, 0, 0, cx, cy, SWP_NOZORDER | SWP_SHOWWINDOW);
  }
  return;
}

/////////////////////////////////////////////////////////////////////////////
// CMainWind message handlers
// These funtions call the CSTA API function in the file "cstatst.cpp

void CMainWind::OnConnectserver() {
  CErrorDlg errorDlg;

  m_bOpenedStream = FALSE;
  m_bEsrSet = FALSE;
  m_bDisplayingSession = TRUE;
  
  // If server are registered

  if (AcsEnumServerNames ())
  {
    CConnectDlg connectDlg;
    CServer *pServer;

    connectDlg.m_bListed = FALSE;
    pServer = (CServer *)m_lServer.GetAt (m_lServer.FindIndex (0)); 
    connectDlg.m_sServerName = pServer->m_sServerName.operator const char *();
    connectDlg.m_sLoginName = pServer->m_sLoginName.operator const char *();
    connectDlg.m_sPassword = pServer->m_sPassword.operator const char *();
   connectDlg.m_nApiType = 1;
	connectDlg.m_nLevel = (int)ACS_LEVEL1 - 1;

    // Activates the connect server dialog box

    if (connectDlg.DoModal () == IDOK) {
      for (int i = 0; i < m_nbServer; i++) {
        pServer = (CServer *)m_lServer.GetAt (m_lServer.FindIndex (i)); 
        if (connectDlg.m_sServerName == pServer->m_sServerName)
          break;
      }
      if (i < m_nbServer)
	  {
			m_sServerName = connectDlg.m_sServerName;
			//m_sServerName = "ALCATEL#maq42#CSTA#bre04-000016242";
			m_sLoginName = connectDlg.m_sLoginName;
			m_sPassword  = connectDlg.m_sPassword;
			m_sProgName = "CstaTst32";
			m_nACSLevel = (Level_t)(connectDlg.m_nLevel + 1); 

//		StreamType_t my_streamType;
			if (connectDlg.m_nApiType == 0)
			{
				theApp.my_streamType =  ST_CSTA;
			}

			else
			{
			theApp.my_streamType =  ST_CSTA2;
			}

			// Try to open the stream
			if (AcsOpenStream (theApp.my_streamType))
			{
              return;
            }
        }
        else
		{
        errorDlg.m_sErrorTitle = "acsOpenStream";
        errorDlg.m_sError = "Invalid server name";
        errorDlg.DoModal ();
		}
    }
  }
  while (!m_lServer.IsEmpty ()) {
    delete (CServer *)m_lServer.RemoveHead (); 
  }
}
 
/*void CMainWind::OnConnectserver() {
  CErrorDlg errorDlg;

  m_bOpenedStream = FALSE;
  m_bEsrSet = FALSE;
  m_bDisplayingSession = TRUE;
  
  // If server are registered

  //glif (AcsEnumServerNames ())
  {
    CConnectDlg connectDlg;
    CServer *pServer;

    connectDlg.m_bListed = FALSE;
    //glpServer = (CServer *)m_lServer.GetAt (m_lServer.FindIndex (0)); 
    //g/connectDlg.m_sServerName = pServer->m_sServerName.operator const char *();
    connectDlg.m_nApiType = 1;
	connectDlg.m_nLevel = (int)ACS_LEVEL1 - 1;

    // Activates the connect server dialog box

    if (connectDlg.DoModal () == IDOK) {
      //for (int i = 0; i < m_nbServer; i++) {
      //  pServer = (CServer *)m_lServer.GetAt (m_lServer.FindIndex (i)); 
      //  if (connectDlg.m_sServerName == pServer->m_sServerName)
      //    break;
      //}
      //if (i < m_nbServer)
	  //{
			m_sServerName = connectDlg.m_sServerName;
			//m_sServerName = "ALCATEL#maq42#CSTA#bre04-000016242";
			m_sLoginName = connectDlg.m_sLoginName;
			m_sPassword  = connectDlg.m_sPassword;
			m_sProgName = "CstaTst32";
			m_nACSLevel = (Level_t)(connectDlg.m_nLevel + 1); 

//		StreamType_t my_streamType;
			if (connectDlg.m_nApiType == 0)
			{
				theApp.my_streamType =  ST_CSTA;
			}

			else
			{
			theApp.my_streamType =  ST_CSTA2;
			}

			// Try to open the stream
			if (AcsOpenStream (theApp.my_streamType))
			{
              return;
            }
        //}
        //else
		//{
        //errorDlg.m_sErrorTitle = "acsOpenStream";
        //errorDlg.m_sError = "Invalid server name";
        //errorDlg.DoModal ();
		//}
    }
  }
  while (!m_lServer.IsEmpty ()) {
    delete (CServer *)m_lServer.RemoveHead (); 
  }
}
*/
 
void CMainWind::OnUpdateConnectserver(CCmdUI* pCmdUI) {
  pCmdUI->Enable (!theApp.m_bPhoneOn);
  return;
}

void CMainWind::OnDisconnectserver() {                           
  while (!m_lServer.IsEmpty ()) {
    delete (CServer *)m_lServer.RemoveHead (); 
  }
  AcsCloseStream ();
  // kill the periodic timer
  m_bAutoKeepAlive = TRUE;
  AutoKeepalive();
  theApp.m_bPhoneOn = FALSE;
}

void CMainWind::OnUpdateDisconnectserver(CCmdUI* pCmdUI) {
  pCmdUI->Enable (theApp.m_bPhoneOn);
  return;
}

void CMainWind::OnAbortstream() {
  while (!m_lServer.IsEmpty ()) {
    delete (CServer *)m_lServer.RemoveHead (); 
  }
  AcsAbortStream ();
  // kill the periodic timer
  m_bAutoKeepAlive = TRUE;
  AutoKeepalive();
  theApp.m_bPhoneOn = FALSE;
}

void CMainWind::OnUpdateAbortstream(CCmdUI* pCmdUI) {
  pCmdUI->Enable (theApp.m_bPhoneOn);
  return;
}

void CMainWind::OnMonitordevice() {
  CstaMonitorDevice ();
  return; 
}

void CMainWind::OnUpdateMonitordevice(CCmdUI* pCmdUI) {
  pCmdUI->Enable (theApp.m_bPhoneOn);
  return;
}

void CMainWind::OnMonitorCall()
{
	AfxMessageBox("Csta service not implemented yet");
  //CstaMonitorCall();
  return;
}

void CMainWind::OnUpdateMonitorCall(CCmdUI* pCmdUI)
{
  pCmdUI->Enable (theApp.m_bPhoneOn);
  return;
}

void CMainWind::OnMonitorCallViaDevice()
{ 
	AfxMessageBox("Csta service not implemented yet");
  //CstaMonitorCallsViaDevice();
  return;
}

void CMainWind::OnUpdateMonitorCallViaDevice(CCmdUI* pCmdUI)
{
  pCmdUI->Enable (theApp.m_bPhoneOn);
  return;
}

void CMainWind::OnChangefilter() {
	AfxMessageBox("Csta service not implemented yet");
  //CstaChangeMonitorFilter ();
  return; 
}

void CMainWind::OnUpdateChangefilter(CCmdUI* pCmdUI) {
  pCmdUI->Enable (theApp.m_bPhoneOn);
  return;
}

void CMainWind::OnStopmonitordevice() {
  CstaMonitorStop ();
  return; 
}

void CMainWind::OnUpdateStopmonitordevice(CCmdUI* pCmdUI) {
  pCmdUI->Enable (theApp.m_bPhoneOn);
  return;
}

void CMainWind::OnGetDeviceList() {
  m_bFirstPass = TRUE;
  CstaGetDeviceList ();
  return; 
}

⌨️ 快捷键说明

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