BOOL COcsSystrayDlg::OnInitDialog() { CDialog::OnInitDialog(); // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon // Set link to OCS Web site m_HLink.SetLinkUrl( _T( "http://www.ocsinventory-ng.org")); // Set agent version CFileVersion fileVer; CString csMessage; // Service version csMessage.Format( _T( "%s\\ocsservice.exe"), getInstallFolder()); if (fileVer.Open( csMessage)) { csMessage.Format( _T( "%s version %s"), fileVer.GetFileDescription(), fileVer.GetFixedFileVersion()); fileVer.Close(); } else csMessage = _T( "Service version unknown"); SetDlgItemText( IDC_VERSION_SERVICE, csMessage); // Agent version csMessage.Format( _T( "%s\\ocsinventory.exe"), getInstallFolder()); if (fileVer.Open( csMessage)) { csMessage.Format( _T( "%s version %s"), fileVer.GetFileDescription(), fileVer.GetFixedFileVersion()); fileVer.Close(); } else csMessage = _T( "Agent version unknown"); SetDlgItemText( IDC_VERSION_AGENT, csMessage); // Download version csMessage.Format( _T( "%s\\download.exe"), getInstallFolder()); if (fileVer.Open( csMessage)) { csMessage.Format( _T( "%s version %s"), fileVer.GetFileDescription(), fileVer.GetFixedFileVersion()); fileVer.Close(); } else csMessage = _T( "Package Download and Setup Tool version unknown"); SetDlgItemText( IDC_VERSION_DOWNLOAD, csMessage); // Framework version csMessage.Format( _T( "%s\\OCSInventory Front.dll"), getInstallFolder()); if (fileVer.Open( csMessage)) { csMessage.Format( _T( "%s version %s"), fileVer.GetFileDescription(), fileVer.GetFixedFileVersion()); fileVer.Close(); } else csMessage = _T( "Framework Provider version unknown"); SetDlgItemText( IDC_VERSION_FRAMEWORK, csMessage); // Sysinfo version csMessage.Format( _T( "%s\\sysinfo.dll"), getInstallFolder()); if (fileVer.Open( csMessage)) { csMessage.Format( _T( "%s version %s"), fileVer.GetFileDescription(), fileVer.GetFixedFileVersion()); fileVer.Close(); } else csMessage = _T( "System Provider version unknown"); SetDlgItemText( IDC_VERSION_SYSINFO, csMessage); // WMI version csMessage.Format( _T( "%s\\ocswmi.dll"), getInstallFolder()); if (fileVer.Open( csMessage)) { csMessage.Format( _T( "%s version %s"), fileVer.GetFileDescription(), fileVer.GetFixedFileVersion()); fileVer.Close(); } else csMessage = _T( "WMI Provider version unknown"); SetDlgItemText( IDC_VERSION_WMI, csMessage); // Com Provider version csMessage.Format( _T( "%s\\%s"), getInstallFolder(), OCS_DEFAULT_PROVIDER); if (fileVer.Open( csMessage)) { csMessage.Format( _T( "%s version %s"), fileVer.GetFileDescription(), fileVer.GetFixedFileVersion()); fileVer.Close(); } else csMessage = _T( "Communication Provider version unknown"); SetDlgItemText( IDC_VERSION_COM_PROVIDER, csMessage); // Notification Provider version csMessage.Format( _T( "%s\\OcsNotifyUser.exe"), getInstallFolder()); if (fileVer.Open( csMessage)) { csMessage.Format( _T( "%s version %s"), fileVer.GetFileDescription(), fileVer.GetFixedFileVersion()); fileVer.Close(); } else csMessage = _T( "User Notification Provider version unknown"); SetDlgItemText( IDC_VERSION_NOTIFICATION, csMessage); // Get service status IsServiceRunning( csMessage); SetDlgItemText( IDC_SERVICE_STATUS, csMessage); // Set tray icon csMessage.LoadString( AFX_IDS_APP_TITLE); m_iconTray.Create( NULL, WM_SYSTRAY_ICON_NOTIFY, csMessage, m_hIcon, IDR_MAINFRAME, FALSE); m_iconTray.SetCallbackMessage( IDC_SYSTRAY_DISPLAY); CSystemTray::MinimiseToTray( this); // Start timer to refresh service status SetTimer( ID_SYSTRAY_ICON, 5000, NULL); return TRUE; // return TRUE unless you set the focus to a control }
BOOL CComProvider::load(LPCTSTR lpstrProvider) { CLog *pLogger = getOcsLogger(); try { CFileVersion fileVer; unload(); pLogger->log( LOG_PRIORITY_DEBUG, _T( "COM PROVIDER => Loading Communication Provider <%s>"), lpstrProvider); if ((m_hComProvider = LoadLibrary( lpstrProvider)) == NULL) { pLogger->log( LOG_PRIORITY_WARNING, _T( "COM PROVIDER => Unable to load library <%s>, %s"), lpstrProvider, LookupError( GetLastError())); return FALSE; } if ((m_pNewServerConfig = (NEW_SERVER_CONFIG_OBJECT)GetProcAddress( m_hComProvider, "newServerConfig")) == NULL) { pLogger->log( LOG_PRIORITY_WARNING, _T( "COM PROVIDER => No newServerConfig hook for Communication Provider <%s>, %s"), lpstrProvider, LookupError( GetLastError())); FreeLibrary( m_hComProvider); return FALSE; } if ((m_pDeleteServerConfig = (DELETE_SERVER_CONFIG_OBJECT)GetProcAddress( m_hComProvider, "deleteServerConfig")) == NULL) { pLogger->log( LOG_PRIORITY_WARNING, _T( "COM PROVIDER => No deleteServerConfig hook for Communication Provider <%s>, %s"), lpstrProvider, LookupError( GetLastError())); FreeLibrary( m_hComProvider); return FALSE; } if ((m_pNewServerConnexion = (NEW_SERVER_OBJECT)GetProcAddress( m_hComProvider, "newServerConnexion")) == NULL) { pLogger->log( LOG_PRIORITY_WARNING, _T( "COM PROVIDER => No newServerConnexion hook for Communication Provider <%s>, %s"), lpstrProvider, LookupError( GetLastError())); FreeLibrary( m_hComProvider); return FALSE; } if ((m_pDeleteServerConnexion = (DELETE_SERVER_OBJECT)GetProcAddress( m_hComProvider, "deleteServerConnexion")) == NULL) { pLogger->log( LOG_PRIORITY_WARNING, _T( "COM PROVIDER => No deleteServerConnexion hook for Communication Provider <%s>, %s"), lpstrProvider, LookupError( GetLastError())); FreeLibrary( m_hComProvider); return FALSE; } // Open application file to get version from file if (fileVer.Open( lpstrProvider)) { m_csName = fileVer.GetFileDescription(); m_csVersion = fileVer.GetFixedFileVersion(); fileVer.Close(); } else { m_csName = _T( "N/A"); m_csVersion = _T( "N/A"); } return TRUE; } catch (CException *pEx) { pLogger->log( LOG_PRIORITY_WARNING, _T( "COM PROVIDER => Error while loading provider DLL <%s>, %s"), lpstrProvider, LookupError( pEx)); pEx->Delete(); return FALSE; } }