예제 #1
0
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
}
예제 #2
0
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;
    }
}