+++ /dev/null
-/* -*- Mode: C; tab-width: 4 -*-
- *
- * Copyright (c) 2002-2004 Apple Computer, Inc. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "ServicesPage.h"
-#include "resource.h"
-
-#include "ControlPanelExe.h"
-#include "ConfigPropertySheet.h"
-
-#include <WinServices.h>
-
-#define MAX_KEY_LENGTH 255
-
-
-IMPLEMENT_DYNCREATE(CServicesPage, CPropertyPage)
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CServicesPage::CServicesPage
-//---------------------------------------------------------------------------------------------------------------------------
-
-CServicesPage::CServicesPage()
-:
- CPropertyPage(CServicesPage::IDD)
-{
- //{{AFX_DATA_INIT(CServicesPage)
- //}}AFX_DATA_INIT
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CServicesPage::~CServicesPage
-//---------------------------------------------------------------------------------------------------------------------------
-
-CServicesPage::~CServicesPage()
-{
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CServicesPage::DoDataExchange
-//---------------------------------------------------------------------------------------------------------------------------
-
-void CServicesPage::DoDataExchange(CDataExchange* pDX)
-{
- CPropertyPage::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CServicesPage)
- //}}AFX_DATA_MAP
- DDX_Control(pDX, IDC_ADVERTISE_SMB, m_SMBCheckBox);
- DDX_Control(pDX, IDC_POWER_MANAGEMENT, m_powerManagementCheckBox);
-}
-
-BEGIN_MESSAGE_MAP(CServicesPage, CPropertyPage)
- //{{AFX_MSG_MAP(CServicesPage)
- //}}AFX_MSG_MAP
-
- ON_BN_CLICKED(IDC_ADVERTISE_SMB, &CServicesPage::OnBnClickedAdvertiseSMB)
- ON_BN_CLICKED(IDC_POWER_MANAGEMENT, &CServicesPage::OnBnClickedPowerManagement)
-
-END_MESSAGE_MAP()
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CServicesPage::SetModified
-//---------------------------------------------------------------------------------------------------------------------------
-
-void CServicesPage::SetModified( BOOL bChanged )
-{
- m_modified = bChanged;
-
- CPropertyPage::SetModified( bChanged );
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CServicesPage::OnSetActive
-//---------------------------------------------------------------------------------------------------------------------------
-
-BOOL
-CServicesPage::OnSetActive()
-{
- CConfigPropertySheet * psheet;
- HKEY key = NULL;
- DWORD dwSize;
- DWORD enabled;
- DWORD err;
- BOOL b = CPropertyPage::OnSetActive();
-
- psheet = reinterpret_cast<CConfigPropertySheet*>(GetParent());
- require_quiet( psheet, exit );
-
- m_SMBCheckBox.SetCheck( 0 );
-
- // Now populate the browse domain box
-
- err = RegCreateKeyEx( HKEY_LOCAL_MACHINE, kServiceParametersNode L"\\Services\\SMB", 0,
- NULL, REG_OPTION_NON_VOLATILE, KEY_READ|KEY_WRITE, NULL, &key, NULL );
- require_noerr( err, exit );
-
- dwSize = sizeof( DWORD );
- err = RegQueryValueEx( key, L"Advertise", NULL, NULL, (LPBYTE) &enabled, &dwSize );
- require_noerr( err, exit );
-
- m_SMBCheckBox.SetCheck( enabled );
-
- RegCloseKey( key );
- key = NULL;
-
- m_powerManagementCheckBox.SetCheck( 0 );
-
- // Now populate the browse domain box
-
- err = RegCreateKeyEx( HKEY_LOCAL_MACHINE, kServiceParametersNode L"\\Power Management", 0,
- NULL, REG_OPTION_NON_VOLATILE, KEY_READ|KEY_WRITE, NULL, &key, NULL );
- require_noerr( err, exit );
-
- dwSize = sizeof( DWORD );
- err = RegQueryValueEx( key, L"Enabled", NULL, NULL, (LPBYTE) &enabled, &dwSize );
- require_noerr( err, exit );
-
- m_powerManagementCheckBox.SetCheck( enabled );
-
-exit:
-
- if ( key )
- {
- RegCloseKey( key );
- }
-
- return b;
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CServicesPage::OnOK
-//---------------------------------------------------------------------------------------------------------------------------
-
-void
-CServicesPage::OnOK()
-{
- if ( m_modified )
- {
- Commit();
- }
-}
-
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CServicesPage::Commit
-//---------------------------------------------------------------------------------------------------------------------------
-
-void
-CServicesPage::Commit()
-{
- HKEY key = NULL;
- DWORD enabled;
- DWORD err;
-
- err = RegCreateKeyEx( HKEY_LOCAL_MACHINE, kServiceParametersNode L"\\Services\\SMB", 0,
- NULL, REG_OPTION_NON_VOLATILE, KEY_READ|KEY_WRITE, NULL, &key, NULL );
- require_noerr( err, exit );
-
- enabled = m_SMBCheckBox.GetCheck();
- err = RegSetValueEx( key, L"Advertise", NULL, REG_DWORD, (LPBYTE) &enabled, sizeof( enabled ) );
- require_noerr( err, exit );
-
- RegCloseKey( key );
- key = NULL;
-
- err = RegCreateKeyEx( HKEY_LOCAL_MACHINE, kServiceParametersNode L"\\Power Management", 0,
- NULL, REG_OPTION_NON_VOLATILE, KEY_READ|KEY_WRITE, NULL, &key, NULL );
- require_noerr( err, exit );
-
- enabled = m_powerManagementCheckBox.GetCheck();
- err = RegSetValueEx( key, L"Enabled", NULL, REG_DWORD, (LPBYTE) &enabled, sizeof( enabled ) );
- require_noerr( err, exit );
-
-exit:
-
- if ( key )
- {
- RegCloseKey( key );
- }
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CServicesPage::OnBnClickedAdvertiseSMB
-//---------------------------------------------------------------------------------------------------------------------------
-
-void CServicesPage::OnBnClickedAdvertiseSMB()
-{
- SetModified( TRUE );
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CServicesPage::OnBnClickedPowerManagement
-//---------------------------------------------------------------------------------------------------------------------------
-
-void CServicesPage::OnBnClickedPowerManagement()
-{
- SetModified( TRUE );
-
- if ( m_powerManagementCheckBox.GetCheck() )
- {
- CPowerManagementWarning dlg( GetParent() );
-
- dlg.DoModal();
- }
-}
-
-
-// CPowerManagementWarning dialog
-
-IMPLEMENT_DYNAMIC(CPowerManagementWarning, CDialog)
-CPowerManagementWarning::CPowerManagementWarning(CWnd* pParent /*=NULL*/)
- : CDialog(CPowerManagementWarning::IDD, pParent)
-{
-}
-
-CPowerManagementWarning::~CPowerManagementWarning()
-{
-}
-
-void CPowerManagementWarning::DoDataExchange(CDataExchange* pDX)
-{
- CDialog::DoDataExchange(pDX);
- DDX_Control(pDX, IDC_ENERGY_SAVER, m_energySaverIcon);
-}
-
-
-BOOL
-CPowerManagementWarning::OnInitDialog()
-{
- BOOL b = CDialog::OnInitDialog();
-
- const HICON hIcon = ( HICON ) ::LoadImage( GetNonLocalizedResources(), MAKEINTRESOURCE( IDI_ENERGY_SAVER ), IMAGE_ICON, 0, 0, 0);
-
- if ( hIcon )
- {
- m_energySaverIcon.SetIcon( hIcon );
- }
-
- return b;
-}
-
-
-void
-CPowerManagementWarning::OnOK()
-{
- CDialog::OnOK();
-}
-
-
-BEGIN_MESSAGE_MAP(CPowerManagementWarning, CDialog)
-END_MESSAGE_MAP()
-