]> git.saurik.com Git - apple/mdnsresponder.git/blobdiff - mDNSWindows/ControlPanel/ThirdPage.cpp
mDNSResponder-171.4.tar.gz
[apple/mdnsresponder.git] / mDNSWindows / ControlPanel / ThirdPage.cpp
index bfb56bd7dd08a34a76b9f4d60b61cb6dfc448abd..a4834185065ea365f6f86821516913e8e664f7ca 100755 (executable)
@@ -1,28 +1,28 @@
-/*
+/* -*- 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
 
@@ -40,7 +40,7 @@ Revision 1.2  2005/03/03 19:55:22  shersche
 
 #include <WinServices.h>
     
-#define MAX_KEY_LENGTH 255\r
+#define MAX_KEY_LENGTH 255
 
 
 IMPLEMENT_DYNCREATE(CThirdPage, CPropertyPage)
@@ -79,16 +79,16 @@ void CThirdPage::DoDataExchange(CDataExchange* pDX)
        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()
 
 
@@ -117,11 +117,11 @@ CThirdPage::OnSetActive()
        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();
 
@@ -148,39 +148,39 @@ CThirdPage::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:
 
@@ -198,8 +198,8 @@ exit:
 
        return b;
 }
-\r
\r
+
 
 //---------------------------------------------------------------------------------------------------------------------------
 //     CThirdPage::OnOK
@@ -225,31 +225,31 @@ CThirdPage::Commit()
 {
        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
@@ -297,9 +297,9 @@ CThirdPage::OnBnClickedAddBrowseDomain()
                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();
@@ -316,141 +316,141 @@ CThirdPage::OnBnClickedAddBrowseDomain()
 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()
+