LRESULT CMainDlg::OnTrayNotification(WPARAM wParam, LPARAM lParam) { if(wParam == IDR_MAINFRAME && (lParam == WM_LBUTTONDOWN || lParam == WM_RBUTTONDOWN)) SetTrayIcon(); if(wParam == IDR_MAINFRAME && lParam == WM_RBUTTONUP && theApp.m_dwSubWindowCount > 0) lParam = WM_LBUTTONDOWN; if(wParam == IDR_MAINFRAME && lParam == WM_LBUTTONDOWN) { if(m_MessageIndex != 0) { int tmpIndex = m_MessageIndex; m_MessageIndex = 0; AfxMessageBox(m_OnLine.GetInternet()->m_sMessage[tmpIndex], MB_ICONINFORMATION); m_OnLine.GetInternet()->m_sMessage[tmpIndex][0] = 0; SetTrayIcon(); return 0; } lParam = WM_LBUTTONDBLCLK; } return m_TrayIcon.OnTrayNotification(wParam, lParam); }
void MainDialog::SetTrayIconIndex(int nIndex) { HICON hIcon = NULL; if (nIndex < ICON_TRAY_LOGO || nIndex > ICON_COUNT) SetTrayIcon(0); else SetTrayIcon(m_hIcons[nIndex]); }
int CheckServiceStatus() { SC_HANDLE schSCManager; SC_HANDLE schService; SERVICE_STATUS ssStatus; // Open a handle to the SC Manager database. schSCManager = OpenSCManager( NULL, // local machine NULL, // ServicesActive database SC_MANAGER_CONNECT); // Connect rights if (NULL == schSCManager) { o.service_state = service_noaccess; SetServiceMenuStatus(); return(false); } schService = OpenService( schSCManager, // SCM database _T("OpenVPNService"), // service name SERVICE_QUERY_STATUS); if (schService == NULL) { /* open vpn service failed */ ShowLocalizedMsg(IDS_ERR_OPEN_VPN_SERVICE); o.service_state = service_noaccess; SetServiceMenuStatus(); return(false); } if (!QueryServiceStatus( schService, // handle to service &ssStatus) ) // address of status information structure { /* query failed */ ShowLocalizedMsg(IDS_ERR_QUERY_SERVICE); return(false); } if (ssStatus.dwCurrentState == SERVICE_RUNNING) { o.service_state = service_connected; SetServiceMenuStatus(); SetTrayIcon(connected); return(true); } else { o.service_state = service_disconnected; SetServiceMenuStatus(); SetTrayIcon(disconnected); return(false); } }
void CheckAndSetTrayIcon() { if (o.service_state == service_connected) { SetTrayIcon(connected); return; } if (CountConnState(connected) != 0) { SetTrayIcon(connected); } else { if (CountConnState(connecting) != 0 || CountConnState(reconnecting) != 0 || CountConnState(resuming) != 0 || o.service_state == service_connecting) SetTrayIcon(connecting); else SetTrayIcon(disconnected); } }
void CMainDlg::SetLampSelect(BYTE bWorkMode) { if(m_bWorkMode == bWorkMode) return; if(theApp.m_pDllIoControl == NULL) { AfxMessageBox(GUI_ACL_MESSAGE_FUNCTION_NOT_FOUNT); return; } XFILTER_IO_CONTROL ioControl; ioControl.Byte = bWorkMode; if(theApp.m_pDllIoControl(IO_CONTROL_SET_WORK_MODE, &ioControl) != XERR_SUCCESS) { AfxMessageBox(GUI_ACL_MESSAGE_SET_WORK_MODE_ERROR); return; } if(theApp.m_pDllIoControl(IO_CONTROL_SET_WORK_MODE, &ioControl) != XERR_SUCCESS) { AfxMessageBox(ERROR_STRING_FILE_SAVE_ERROR); } if(m_bWorkMode != 255) { m_ButtonLamp[m_bWorkMode].SetSelect(FALSE); } m_ButtonLamp[bWorkMode].SetSelect(TRUE); m_bWorkMode = bWorkMode; SetTrayIcon(bWorkMode); static BOOL bIsFirst = TRUE; if(bIsFirst) { bIsFirst = FALSE; return; } PXACL_HEADER pHeader = theApp.m_AclFile.GetHeader(); DWORD nPosition = (DWORD)&pHeader->bWorkMode - (DWORD)pHeader; if(!theApp.m_AclFile.UpdateFile(nPosition, &m_bWorkMode, sizeof(m_bWorkMode))) { AfxMessageBox(GUI_ACL_MESSAGE_SET_WORK_MODE_ERROR); return; } pHeader->bWorkMode = m_bWorkMode; }
/* * Handle a state change notification from the OpenVPN management interface * Format <TIMESTAMP>,<STATE>,[<MESSAGE>],[<LOCAL_IP>][,<REMOTE_IP>] */ void OnStateChange(connection_t *c, char *data) { char *pos, *state, *message; pos = strchr(data, ','); if (pos == NULL) return; *pos = '\0'; state = pos + 1; pos = strchr(state, ','); if (pos == NULL) return; *pos = '\0'; message = pos + 1; pos = strchr(message, ','); if (pos == NULL) return; *pos = '\0'; if (strcmp(state, "CONNECTED") == 0) { /* Run Connect Script */ if (c->state == connecting || c->state == resuming) RunConnectScript(c, false); /* Save the local IP address if available */ char *local_ip = pos + 1; pos = strchr(local_ip, ','); if (pos != NULL) *pos = '\0'; /* Convert the IP address to Unicode */ MultiByteToWideChar(CP_ACP, 0, local_ip, -1, c->ip, _countof(c->ip)); /* Show connection tray balloon */ if ((c->state == connecting && o.show_balloon != 0) || (c->state == resuming && o.show_balloon != 0) || (c->state == reconnecting && o.show_balloon == 2)) { TCHAR msg[256]; LoadLocalizedStringBuf(msg, _countof(msg), IDS_NFO_NOW_CONNECTED, c->config_name); ShowTrayBalloon(msg, (_tcslen(c->ip) ? LoadLocalizedString(IDS_NFO_ASSIGN_IP, c->ip) : _T(""))); } /* Save time when we got connected. */ c->connected_since = atoi(data); c->failed_psw_attempts = 0; c->state = connected; SetMenuStatus(c, connected); SetTrayIcon(connected); SetDlgItemText(c->hwndStatus, ID_TXT_STATUS, LoadLocalizedString(IDS_NFO_STATE_CONNECTED)); SetStatusWinIcon(c->hwndStatus, ID_ICO_CONNECTED); /* Hide Status Window */ ShowWindow(c->hwndStatus, SW_HIDE); } else if (strcmp(state, "RECONNECTING") == 0) { if (strcmp(message, "auth-failure") == 0 || strcmp(message, "private-key-password-failure") == 0) c->failed_psw_attempts++; if (strcmp(message, "auth-failure") == 0 && (c->flags & FLAG_SAVE_AUTH_PASS)) SaveAuthPass(c->config_name, L""); else if (strcmp(message, "private-key-password-failure") == 0 && (c->flags & FLAG_SAVE_KEY_PASS)) SaveKeyPass(c->config_name, L""); c->state = reconnecting; CheckAndSetTrayIcon(); SetDlgItemText(c->hwndStatus, ID_TXT_STATUS, LoadLocalizedString(IDS_NFO_STATE_RECONNECTING)); SetStatusWinIcon(c->hwndStatus, ID_ICO_CONNECTING); } }