|
|
/////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1996-1997 Microsoft Corporation
//
// Module Name:
// GenSvc.cpp
//
// Abstract:
// Implementation of the CGenericSvcParamsPage class.
//
// Author:
// David Potter (davidp) June 28, 1996
//
// Revision History:
//
// Notes:
//
/////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "CluAdmX.h"
#include "ExtObj.h"
#include "GenSvc.h"
#include "DDxDDv.h"
#include "HelpData.h"
#include "ExcOper.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
/////////////////////////////////////////////////////////////////////////////
// CGenericSvcParamsPage property page
/////////////////////////////////////////////////////////////////////////////
IMPLEMENT_DYNCREATE(CGenericSvcParamsPage, CBasePropertyPage)
/////////////////////////////////////////////////////////////////////////////
// Message Maps
BEGIN_MESSAGE_MAP(CGenericSvcParamsPage, CBasePropertyPage) //{{AFX_MSG_MAP(CGenericSvcParamsPage)
ON_EN_CHANGE(IDC_PP_GENSVC_PARAMS_SERVICE_NAME, OnChangeServiceName) //}}AFX_MSG_MAP
ON_EN_CHANGE(IDC_PP_GENSVC_PARAMS_COMMAND_LINE, CBasePropertyPage::OnChangeCtrl) ON_BN_CLICKED(IDC_PP_GENSVC_PARAMS_USE_NETWORK_NAME, CBasePropertyPage::OnChangeCtrl) END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//++
//
// CGenericSvcParamsPage::CGenericSvcParamsPage
//
// Routine Description:
// Default constructor.
//
// Arguments:
// None.
//
// Return Value:
// None.
//
//--
/////////////////////////////////////////////////////////////////////////////
CGenericSvcParamsPage::CGenericSvcParamsPage(void) : CBasePropertyPage(g_aHelpIDs_IDD_PP_GENSVC_PARAMETERS, g_aHelpIDs_IDD_WIZ_GENSVC_PARAMETERS) { // TODO: Modify the following lines to represent the data displayed on this page.
//{{AFX_DATA_INIT(CGenericSvcParamsPage)
m_strServiceName = _T(""); m_strCommandLine = _T(""); m_bUseNetworkName = FALSE; //}}AFX_DATA_INIT
m_bPrevUseNetworkName = FALSE;
// Setup the property array.
{ m_rgProps[epropServiceName].Set(REGPARAM_GENSVC_SERVICE_NAME, m_strServiceName, m_strPrevServiceName); m_rgProps[epropCommandLine].Set(REGPARAM_GENSVC_COMMAND_LINE, m_strCommandLine, m_strPrevCommandLine); m_rgProps[epropUseNetworkName].Set(REGPARAM_GENSVC_USE_NETWORK_NAME, m_bUseNetworkName, m_bPrevUseNetworkName); } // Setup the property array
m_iddPropertyPage = IDD_PP_GENSVC_PARAMETERS; m_iddWizardPage = IDD_WIZ_GENSVC_PARAMETERS;
} //*** CGenericSvcParamsPage::CGenericSvcParamsPage()
/////////////////////////////////////////////////////////////////////////////
//++
//
// CGenericSvcParamsPage::DoDataExchange
//
// Routine Description:
// Do data exchange between the dialog and the class.
//
// Arguments:
// pDX [IN OUT] Data exchange object
//
// Return Value:
// None.
//
//--
/////////////////////////////////////////////////////////////////////////////
void CGenericSvcParamsPage::DoDataExchange(CDataExchange * pDX) { if (!pDX->m_bSaveAndValidate || !BSaved()) { AFX_MANAGE_STATE(AfxGetStaticModuleState());
// TODO: Modify the following lines to represent the data displayed on this page.
//{{AFX_DATA_MAP(CGenericSvcParamsPage)
DDX_Control(pDX, IDC_PP_GENSVC_PARAMS_USE_NETWORK_NAME, m_ckbUseNetworkName); DDX_Control(pDX, IDC_PP_GENSVC_PARAMS_SERVICE_NAME, m_editServiceName); DDX_Text(pDX, IDC_PP_GENSVC_PARAMS_SERVICE_NAME, m_strServiceName); DDX_Text(pDX, IDC_PP_GENSVC_PARAMS_COMMAND_LINE, m_strCommandLine); DDX_Check(pDX, IDC_PP_GENSVC_PARAMS_USE_NETWORK_NAME, m_bUseNetworkName); //}}AFX_DATA_MAP
if (!BBackPressed()) DDV_RequiredText(pDX, IDC_PP_GENSVC_PARAMS_SERVICE_NAME, IDC_PP_GENSVC_PARAMS_SERVICE_NAME_LABEL, m_strServiceName); } // if: not saving or haven't saved yet
CBasePropertyPage::DoDataExchange(pDX);
} //*** CGenericSvcParamsPage::DoDataExchange()
/////////////////////////////////////////////////////////////////////////////
//++
//
// CGenericSvcParamsPage::OnSetActive
//
// Routine Description:
// Handler for the PSN_SETACTIVE message.
//
// Arguments:
// None.
//
// Return Value:
// TRUE Page successfully initialized.
// FALSE Page not initialized.
//
//--
/////////////////////////////////////////////////////////////////////////////
BOOL CGenericSvcParamsPage::OnSetActive(void) { AFX_MANAGE_STATE(AfxGetStaticModuleState());
// If there is no network name, hide the UseNetworkName control.
{ WCHAR wszNetName[MAX_COMPUTERNAME_LENGTH + 1]; DWORD nSize = sizeof(wszNetName) / sizeof(WCHAR); BOOL bNetNameExists;
bNetNameExists = Peo()->BGetResourceNetworkName( wszNetName, &nSize ); m_ckbUseNetworkName.EnableWindow(bNetNameExists); } // If there is no network name, hide the UseNetworkName control
// Enable/disable the Next/Finish button.
if (BWizard()) { if (m_strServiceName.GetLength() == 0) EnableNext(FALSE); else EnableNext(TRUE); } // if: enable/disable the Next button
return CBasePropertyPage::OnSetActive();
} //*** CGenericSvcParamsPage::OnSetActive()
/////////////////////////////////////////////////////////////////////////////
//++
//
// CGenericSvcParamsPage::OnChangeSignature
//
// Routine Description:
// Handler for the EN_CHANGE message on the Service Name edit control.
//
// Arguments:
// None.
//
// Return Value:
// None.
//
//--
/////////////////////////////////////////////////////////////////////////////
void CGenericSvcParamsPage::OnChangeServiceName(void) { AFX_MANAGE_STATE(AfxGetStaticModuleState());
OnChangeCtrl();
if (BWizard()) { if (m_editServiceName.GetWindowTextLength() == 0) EnableNext(FALSE); else EnableNext(TRUE); } // if: in a wizard
} //*** CGenericSvcParamsPage::OnChangeServiceName()
/////////////////////////////////////////////////////////////////////////////
//++
//
// CGenericSvcParamsPage::DisplaySetPropsError
//
// Routine Description:
// Display an error caused by setting or validating properties.
//
// Arguments:
// dwStatus [IN] Status to display error on.
//
// Return Value:
// dwStatus ERROR_SUCCESS = success, !0 = failure
//
//--
/////////////////////////////////////////////////////////////////////////////
void CGenericSvcParamsPage::DisplaySetPropsError(IN DWORD dwStatus) const { CString strMsg;
if (dwStatus == ERROR_NOT_SUPPORTED) strMsg.FormatMessage(IDS_INVALID_GENERIC_SERVICE, m_strServiceName); else FormatError(strMsg, dwStatus);
AfxMessageBox(strMsg, MB_OK | MB_ICONSTOP);
} //*** CGenericSvcParamsPage::DisplaySetPropsError()
|