-/*
+/* -*- Mode: C; tab-width: 4 -*-
+ *
* Copyright (c) 2002-2004 Apple Computer, Inc. All rights reserved.
*
- * @APPLE_LICENSE_HEADER_START@
+ * 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
*
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
+ * 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.
- *
- * @APPLE_LICENSE_HEADER_END@
Change History (most recent first):
$Log: ThirdPage.cpp,v $
+Revision 1.5 2006/08/14 23:25:29 cheshire
+Re-licensed mDNSResponder daemon source code under Apache License, Version 2.0
+
+Revision 1.4 2005/10/05 20:46:50 herscher
+<rdar://problem/4192011> Move Wide-Area preferences to another part of the registry so they don't removed during an update-install.
+
Revision 1.3 2005/03/07 18:27:42 shersche
<rdar://problem/4037940> Fix problem when ControlPanel commits changes to the browse domain list
#include <WinServices.h>
-#define MAX_KEY_LENGTH 255\r
+#define MAX_KEY_LENGTH 255
IMPLEMENT_DYNCREATE(CThirdPage, CPropertyPage)
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CThirdPage)
//}}AFX_DATA_MAP
- DDX_Control(pDX, IDC_BROWSE_LIST, m_browseListCtrl);\r
- DDX_Control(pDX, IDC_REMOVE_BROWSE_DOMAIN, m_removeButton);\r
+ DDX_Control(pDX, IDC_BROWSE_LIST, m_browseListCtrl);
+ DDX_Control(pDX, IDC_REMOVE_BROWSE_DOMAIN, m_removeButton);
}
BEGIN_MESSAGE_MAP(CThirdPage, CPropertyPage)
//{{AFX_MSG_MAP(CThirdPage)
//}}AFX_MSG_MAP
- ON_BN_CLICKED(IDC_ADD_BROWSE_DOMAIN, OnBnClickedAddBrowseDomain)\r
- ON_BN_CLICKED(IDC_REMOVE_BROWSE_DOMAIN, OnBnClickedRemoveBrowseDomain)\r
- ON_NOTIFY(LVN_ITEMCHANGED, IDC_BROWSE_LIST, OnLvnItemchangedBrowseList)\r
+ ON_BN_CLICKED(IDC_ADD_BROWSE_DOMAIN, OnBnClickedAddBrowseDomain)
+ ON_BN_CLICKED(IDC_REMOVE_BROWSE_DOMAIN, OnBnClickedRemoveBrowseDomain)
+ ON_NOTIFY(LVN_ITEMCHANGED, IDC_BROWSE_LIST, OnLvnItemchangedBrowseList)
END_MESSAGE_MAP()
DWORD dwSize;
DWORD enabled;
DWORD err;
- TCHAR subKeyName[MAX_KEY_LENGTH];\r
- DWORD cSubKeys = 0;\r
- DWORD cbMaxSubKey;\r
- DWORD cchMaxClass;\r
- int nIndex;\r
+ TCHAR subKeyName[MAX_KEY_LENGTH];
+ DWORD cSubKeys = 0;
+ DWORD cbMaxSubKey;
+ DWORD cchMaxClass;
+ int nIndex;
DWORD i;
BOOL b = CPropertyPage::OnSetActive();
// Now populate the browse domain box
- err = RegCreateKey( HKEY_LOCAL_MACHINE, L"SYSTEM\\CurrentControlSet\\Services\\" kServiceName L"\\Parameters\\DynDNS\\Setup\\" kServiceDynDNSBrowseDomains, &key );
+ err = RegCreateKey( HKEY_LOCAL_MACHINE, kServiceParametersNode L"\\DynDNS\\Setup\\" kServiceDynDNSBrowseDomains, &key );
require_noerr( err, exit );
- // Get information about this node\r
-\r
- err = RegQueryInfoKey( key, NULL, NULL, NULL, &cSubKeys, &cbMaxSubKey, &cchMaxClass, NULL, NULL, NULL, NULL, NULL ); \r
+ // Get information about this node
+
+ err = RegQueryInfoKey( key, NULL, NULL, NULL, &cSubKeys, &cbMaxSubKey, &cchMaxClass, NULL, NULL, NULL, NULL, NULL );
require_noerr( err, exit );
-\r
- for ( i = 0; i < cSubKeys; i++)\r
- { \r
- dwSize = MAX_KEY_LENGTH;\r
- \r
- err = RegEnumKeyEx( key, i, subKeyName, &dwSize, NULL, NULL, NULL, NULL );\r
- require_noerr( err, exit );\r
-\r
- err = RegOpenKey( key, subKeyName, &subKey );\r
- require_noerr( err, exit );\r
-\r
- dwSize = sizeof( DWORD );\r
- err = RegQueryValueEx( subKey, L"Enabled", NULL, NULL, (LPBYTE) &enabled, &dwSize );\r
- require_noerr( err, exit );\r
-\r
+
+ for ( i = 0; i < cSubKeys; i++)
+ {
+ dwSize = MAX_KEY_LENGTH;
+
+ err = RegEnumKeyEx( key, i, subKeyName, &dwSize, NULL, NULL, NULL, NULL );
+ require_noerr( err, exit );
+
+ err = RegOpenKey( key, subKeyName, &subKey );
+ require_noerr( err, exit );
+
+ dwSize = sizeof( DWORD );
+ err = RegQueryValueEx( subKey, L"Enabled", NULL, NULL, (LPBYTE) &enabled, &dwSize );
+ require_noerr( err, exit );
+
nIndex = m_browseListCtrl.InsertItem( m_browseListCtrl.GetItemCount(), L"");
- m_browseListCtrl.SetItemText( nIndex, 1, subKeyName );\r
- m_browseListCtrl.SetCheck( nIndex, enabled );\r
-\r
- RegCloseKey( subKey );\r
- subKey = NULL;\r
- }\r
-\r
- m_browseListCtrl.SortItems( SortFunc, (DWORD_PTR) this );\r
-\r
- m_removeButton.EnableWindow( FALSE );\r
+ m_browseListCtrl.SetItemText( nIndex, 1, subKeyName );
+ m_browseListCtrl.SetCheck( nIndex, enabled );
+
+ RegCloseKey( subKey );
+ subKey = NULL;
+ }
+
+ m_browseListCtrl.SortItems( SortFunc, (DWORD_PTR) this );
+
+ m_removeButton.EnableWindow( FALSE );
exit:
return b;
}
-\r
- \r
+
+
//---------------------------------------------------------------------------------------------------------------------------
// CThirdPage::OnOK
{
HKEY key = NULL;
HKEY subKey = NULL;
- TCHAR subKeyName[MAX_KEY_LENGTH];\r
- DWORD cSubKeys = 0;\r
- DWORD cbMaxSubKey;\r
+ TCHAR subKeyName[MAX_KEY_LENGTH];
+ DWORD cSubKeys = 0;
+ DWORD cbMaxSubKey;
DWORD cchMaxClass;
DWORD dwSize;
int i;
DWORD err;
- err = RegCreateKey( HKEY_LOCAL_MACHINE, L"SYSTEM\\CurrentControlSet\\Services\\" kServiceName L"\\Parameters\\DynDNS\\Setup\\" kServiceDynDNSBrowseDomains, &key );
+ err = RegCreateKey( HKEY_LOCAL_MACHINE, kServiceParametersNode L"\\DynDNS\\Setup\\" kServiceDynDNSBrowseDomains, &key );
require_noerr( err, exit );
- // First, remove all the entries that are there\r
-\r
- err = RegQueryInfoKey( key, NULL, NULL, NULL, &cSubKeys, &cbMaxSubKey, &cchMaxClass, NULL, NULL, NULL, NULL, NULL ); \r
+ // First, remove all the entries that are there
+
+ err = RegQueryInfoKey( key, NULL, NULL, NULL, &cSubKeys, &cbMaxSubKey, &cchMaxClass, NULL, NULL, NULL, NULL, NULL );
require_noerr( err, exit );
-\r
- for ( i = 0; i < (int) cSubKeys; i++ )\r
- { \r
- dwSize = MAX_KEY_LENGTH;\r
- \r
- err = RegEnumKeyEx( key, 0, subKeyName, &dwSize, NULL, NULL, NULL, NULL );\r
- require_noerr( err, exit );\r
- \r
- err = RegDeleteKey( key, subKeyName );\r
- require_noerr( err, exit );\r
+
+ for ( i = 0; i < (int) cSubKeys; i++ )
+ {
+ dwSize = MAX_KEY_LENGTH;
+
+ err = RegEnumKeyEx( key, 0, subKeyName, &dwSize, NULL, NULL, NULL, NULL );
+ require_noerr( err, exit );
+
+ err = RegDeleteKey( key, subKeyName );
+ require_noerr( err, exit );
}
// Now re-populate
int nIndex;
nIndex = m_browseListCtrl.InsertItem( m_browseListCtrl.GetItemCount(), L"");
- m_browseListCtrl.SetItemText( nIndex, 1, dlg.m_text );\r
- m_browseListCtrl.SetCheck( nIndex, 1 );\r
-\r
+ m_browseListCtrl.SetItemText( nIndex, 1, dlg.m_text );
+ m_browseListCtrl.SetCheck( nIndex, 1 );
+
m_browseListCtrl.SortItems( SortFunc, (DWORD_PTR) this );
m_browseListCtrl.Invalidate();
void
CThirdPage::OnBnClickedRemoveBrowseDomain()
{
- UINT selectedCount = m_browseListCtrl.GetSelectedCount();\r
- int nItem = -1;\r
- UINT i;\r
-\r
- // Update all of the selected items.\r
-\r
- for ( i = 0; i < selectedCount; i++ )\r
- {\r
- nItem = m_browseListCtrl.GetNextItem( -1, LVNI_SELECTED );\r
- check( nItem != -1 );\r
-\r
- m_browseListCtrl.DeleteItem( nItem );\r
-\r
- SetModified( TRUE );\r
- }\r
-\r
- m_removeButton.EnableWindow( FALSE );\r
+ UINT selectedCount = m_browseListCtrl.GetSelectedCount();
+ int nItem = -1;
+ UINT i;
+
+ // Update all of the selected items.
+
+ for ( i = 0; i < selectedCount; i++ )
+ {
+ nItem = m_browseListCtrl.GetNextItem( -1, LVNI_SELECTED );
+ check( nItem != -1 );
+
+ m_browseListCtrl.DeleteItem( nItem );
+
+ SetModified( TRUE );
+ }
+
+ m_removeButton.EnableWindow( FALSE );
}
-void\r
-CThirdPage::OnLvnItemchangedBrowseList(NMHDR *pNMHDR, LRESULT *pResult)\r
-{\r
- if ( m_browseListCtrl.GetSelectedCount() )\r
- {\r
- m_removeButton.EnableWindow( TRUE );\r
- }\r
-\r
- if ( m_initialized )\r
- {\r
- NM_LISTVIEW * pNMListView = (NM_LISTVIEW*)pNMHDR; \r
- \r
- BOOL bPrevState = (BOOL) ( ( ( pNMListView->uOldState & LVIS_STATEIMAGEMASK ) >> 12 ) - 1 ); \r
- \r
- if ( bPrevState < 0 )\r
- {\r
- bPrevState = 0;\r
- }\r
-\r
-\r
- BOOL bChecked = ( BOOL ) ( ( ( pNMListView->uNewState & LVIS_STATEIMAGEMASK ) >> 12) - 1 ); \r
- \r
- if ( bChecked < 0 )\r
- {\r
- bChecked = 0;\r
- }\r
-\r
- if ( bPrevState != bChecked )\r
- {\r
- SetModified( TRUE );\r
- }\r
- }\r
-\r
- *pResult = 0;\r
+void
+CThirdPage::OnLvnItemchangedBrowseList(NMHDR *pNMHDR, LRESULT *pResult)
+{
+ if ( m_browseListCtrl.GetSelectedCount() )
+ {
+ m_removeButton.EnableWindow( TRUE );
+ }
+
+ if ( m_initialized )
+ {
+ NM_LISTVIEW * pNMListView = (NM_LISTVIEW*)pNMHDR;
+
+ BOOL bPrevState = (BOOL) ( ( ( pNMListView->uOldState & LVIS_STATEIMAGEMASK ) >> 12 ) - 1 );
+
+ if ( bPrevState < 0 )
+ {
+ bPrevState = 0;
+ }
+
+
+ BOOL bChecked = ( BOOL ) ( ( ( pNMListView->uNewState & LVIS_STATEIMAGEMASK ) >> 12) - 1 );
+
+ if ( bChecked < 0 )
+ {
+ bChecked = 0;
+ }
+
+ if ( bPrevState != bChecked )
+ {
+ SetModified( TRUE );
+ }
+ }
+
+ *pResult = 0;
}
-int CALLBACK \r
-CThirdPage::SortFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)\r
-{\r
- CString str1;\r
- CString str2;\r
- int ret = 0;\r
-\r
+int CALLBACK
+CThirdPage::SortFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
+{
+ CString str1;
+ CString str2;
+ int ret = 0;
+
CThirdPage * self = reinterpret_cast<CThirdPage*>( lParamSort );
require_quiet( self, exit );
-\r
- str1 = self->m_browseListCtrl.GetItemText( (int) lParam1, 1 );\r
- str2 = self->m_browseListCtrl.GetItemText( (int) lParam2, 1 );\r
-\r
- ret = str1.Compare( str2 );\r
-\r
-exit:\r
-\r
- return ret;\r
+
+ str1 = self->m_browseListCtrl.GetItemText( (int) lParam1, 1 );
+ str2 = self->m_browseListCtrl.GetItemText( (int) lParam2, 1 );
+
+ ret = str1.Compare( str2 );
+
+exit:
+
+ return ret;
+}
+
+
+// CAddBrowseDomain dialog
+
+IMPLEMENT_DYNAMIC(CAddBrowseDomain, CDialog)
+CAddBrowseDomain::CAddBrowseDomain(CWnd* pParent /*=NULL*/)
+ : CDialog(CAddBrowseDomain::IDD, pParent)
+{
}
-\r
-\r
-// CAddBrowseDomain dialog\r
-\r
-IMPLEMENT_DYNAMIC(CAddBrowseDomain, CDialog)\r
-CAddBrowseDomain::CAddBrowseDomain(CWnd* pParent /*=NULL*/)\r
- : CDialog(CAddBrowseDomain::IDD, pParent)\r
-{\r
-}\r
-\r
-CAddBrowseDomain::~CAddBrowseDomain()\r
-{\r
-}\r
-\r
-void CAddBrowseDomain::DoDataExchange(CDataExchange* pDX)\r
-{\r
- CDialog::DoDataExchange(pDX);\r
- DDX_Control(pDX, IDC_COMBO1, m_comboBox);\r
-}\r
-\r
-\r
-BOOL\r
-CAddBrowseDomain::OnInitDialog()\r
-{\r
- CConfigPropertySheet * psheet;\r
- CConfigPropertySheet::StringList::iterator it;\r
- \r
- BOOL b = CDialog::OnInitDialog();\r
-\r
+
+CAddBrowseDomain::~CAddBrowseDomain()
+{
+}
+
+void CAddBrowseDomain::DoDataExchange(CDataExchange* pDX)
+{
+ CDialog::DoDataExchange(pDX);
+ DDX_Control(pDX, IDC_COMBO1, m_comboBox);
+}
+
+
+BOOL
+CAddBrowseDomain::OnInitDialog()
+{
+ CConfigPropertySheet * psheet;
+ CConfigPropertySheet::StringList::iterator it;
+
+ BOOL b = CDialog::OnInitDialog();
+
psheet = reinterpret_cast<CConfigPropertySheet*>(GetParent());
- require_quiet( psheet, exit );\r
-\r
- for ( it = psheet->m_browseDomains.begin(); it != psheet->m_browseDomains.end(); it++ )\r
- {\r
- CString text = *it;\r
-\r
+ require_quiet( psheet, exit );
+
+ for ( it = psheet->m_browseDomains.begin(); it != psheet->m_browseDomains.end(); it++ )
+ {
+ CString text = *it;
+
if ( m_comboBox.FindStringExact( -1, *it ) == CB_ERR )
{
m_comboBox.AddString( *it );
- }\r
- }\r
-\r
-exit:\r
-\r
- return b;\r
-}\r
-\r
-\r
-void\r
-CAddBrowseDomain::OnOK()\r
-{\r
- m_comboBox.GetWindowText( m_text );\r
-\r
- CDialog::OnOK();\r
-}\r
-\r
-\r
-\r
-BEGIN_MESSAGE_MAP(CAddBrowseDomain, CDialog)\r
-END_MESSAGE_MAP()\r
-\r
+ }
+ }
+
+exit:
+
+ return b;
+}
+
+
+void
+CAddBrowseDomain::OnOK()
+{
+ m_comboBox.GetWindowText( m_text );
+
+ CDialog::OnOK();
+}
+
+
+
+BEGIN_MESSAGE_MAP(CAddBrowseDomain, CDialog)
+END_MESSAGE_MAP()
+