2025-11-28 00:35:46 +09:00

205 lines
4.9 KiB
C++

// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
#include "stdafx.h"
#include "VCExplore.h"
#include "UtilitiesDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define UTILITY_TYPE_UNDEFINED -1
#define UTILITY_TYPE_ROUTER 0
#define UTILITY_TYPE_JNEC 1
#define UTILITY_OPTION_UNDEFINED -1
#define UTILITY_OPTION_START 0
#define UTILITY_OPTION_STOP 1
#define UTILITY_OPTION_REFRESH 2
/////////////////////////////////////////////////////////////////////////////
// CUtilitiesDlg dialog
CUtilitiesDlg::CUtilitiesDlg(CWnd* pParent /*=NULL*/)
: CDialog(CUtilitiesDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CUtilitiesDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
// Set the dialogs icon
m_hIcon = AfxGetApp()->LoadIcon(IDI_UTILITIES);
// Initialize the members
m_pCatalog = NULL;
m_nUtilityType = UTILITY_TYPE_UNDEFINED;
m_nUtilityOption = UTILITY_OPTION_UNDEFINED;
}
void CUtilitiesDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CUtilitiesDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CUtilitiesDlg, CDialog)
//{{AFX_MSG_MAP(CUtilitiesDlg)
ON_WM_CLOSE()
ON_BN_CLICKED(IDC_RADIO_JNEC, OnJNEC)
ON_BN_CLICKED(IDC_RADIO_REFRESH, OnRefresh)
ON_BN_CLICKED(IDC_RADIO_ROUTER, OnRouter)
ON_BN_CLICKED(IDC_RADIO_START, OnStart)
ON_BN_CLICKED(IDC_RADIO_STOP, OnStop)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CUtilitiesDlg message handlers
void CUtilitiesDlg::set_Catalog(ICOMAdminCatalog *pCatalog)
{
// Only can have one Catalog object reference... release all prior references before assignment
ReleaseCatalog();
// Assign the new Catalog reference
m_pCatalog = pCatalog;
}
void CUtilitiesDlg::OnClose()
{
// Release the reference to the Catalog object if needed
ReleaseCatalog();
CDialog::OnClose();
}
BOOL CUtilitiesDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Setup the dialogs icon resource
SetIcon(m_hIcon, true); // 32x32 Icon
SetIcon(m_hIcon, false); // 16x16 Icon
// Check the default radio buttons, set default UI state, and set appropriate member variables
// used to manage UI state
CheckRadioButton(IDC_RADIO_ROUTER, IDC_RADIO_JNEC, IDC_RADIO_ROUTER);
// Set the import type and description to match the current selection
OnRouter();
// Enable the "Refresh" option
CWnd* pWnd = GetDlgItem(IDC_RADIO_REFRESH);
if (NULL != pWnd)
pWnd->EnableWindow(true);
CheckRadioButton(IDC_RADIO_START, IDC_RADIO_REFRESH, IDC_RADIO_START);
m_nUtilityOption = UTILITY_OPTION_START;
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CUtilitiesDlg::OnJNEC()
{
}
void CUtilitiesDlg::OnRefresh()
{
m_nUtilityOption = UTILITY_OPTION_REFRESH;
}
void CUtilitiesDlg::OnRouter()
{
// Set the utility type
m_nUtilityType = UTILITY_TYPE_ROUTER;
// Enable the "Refresh" option
CWnd* pWnd = GetDlgItem(IDC_RADIO_REFRESH);
if (NULL != pWnd)
pWnd->EnableWindow(true);
// Set default option
CheckRadioButton(IDC_RADIO_START, IDC_RADIO_REFRESH, IDC_RADIO_START);
}
void CUtilitiesDlg::OnStart()
{
m_nUtilityOption = UTILITY_OPTION_START;
}
void CUtilitiesDlg::OnStop()
{
m_nUtilityOption = UTILITY_OPTION_STOP;
}
void CUtilitiesDlg::OnOK()
{
// Continue only if we have a valid Catalog pointer
if (NULL != m_pCatalog)
{
// Perform actions depending upon specified utility type (i.e., router )
switch (m_nUtilityType)
{
case UTILITY_TYPE_ROUTER:
switch (m_nUtilityOption)
{
case UTILITY_OPTION_START:
m_pCatalog->StartRouter();
break;
case UTILITY_OPTION_STOP:
m_pCatalog->StopRouter();
break;
case UTILITY_OPTION_REFRESH:
m_pCatalog->RefreshRouter();
break;
default:
MessageBox("Invalid utility option.\n\nNo processing will be performed.\n\nPress OK to continue.",
"Error",
(MB_OK | MB_ICONERROR));
break;
}
break;
case UTILITY_TYPE_JNEC:
break;
default:
MessageBox("Invalid utility type.\n\nNo processing will be performed.\n\nPress OK to continue.",
"Error",
(MB_OK | MB_ICONERROR));
}
}
else
MessageBox("Invalid Catalog reference.\n\nNo processing will be performed.\n\nPress OK to continue.",
"Error",
(MB_OK | MB_ICONERROR));
// Release the reference to the Catalog object
ReleaseCatalog();
CDialog::OnOK();
}
void CUtilitiesDlg::ReleaseCatalog()
{
// Release the reference to the Catalog object if needed
if (NULL != m_pCatalog)
m_pCatalog->Release();
}