[ros-diffs] [gedmurphy] 28056: - don't write more bytes to the reg key than is required. fixes bug 2402 - use unicode explicitly See issue #2402 for more details.

gedmurphy at svn.reactos.org gedmurphy at svn.reactos.org
Tue Jul 31 23:17:58 CEST 2007


Author: gedmurphy
Date: Wed Aug  1 01:17:57 2007
New Revision: 28056

URL: http://svn.reactos.org/svn/reactos?rev=28056&view=rev
Log:
- don't write more bytes to the reg key than is required. fixes bug 2402
- use unicode explicitly
See issue #2402 for more details.

Modified:
    trunk/reactos/dll/cpl/timedate/internettime.c

Modified: trunk/reactos/dll/cpl/timedate/internettime.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/timedate/internettime.c?rev=28056&r1=28055&r2=28056&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/timedate/internettime.c (original)
+++ trunk/reactos/dll/cpl/timedate/internettime.c Wed Aug  1 01:17:57 2007
@@ -13,8 +13,8 @@
 CreateNTPServerList(HWND hwnd)
 {
     HWND hList;
-    TCHAR szValName[MAX_VALUE_NAME];
-    TCHAR szData[256];
+    WCHAR szValName[MAX_VALUE_NAME];
+    WCHAR szData[256];
     DWORD dwIndex = 0;
     DWORD dwValSize;
     DWORD dwNameSize;
@@ -25,8 +25,8 @@
     hList = GetDlgItem(hwnd,
                        IDC_SERVERLIST);
 
-    lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-                        _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\DateTime\\Servers"),
+    lRet = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
+                        L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\DateTime\\Servers",
                         0,
                         KEY_QUERY_VALUE,
                         &hKey);
@@ -35,30 +35,30 @@
 
     while (TRUE)
     {
-        dwValSize = MAX_VALUE_NAME * sizeof(TCHAR);
-        szValName[0] = '\0';
-        lRet = RegEnumValue(hKey,
-                            dwIndex,
-                            szValName,
-                            &dwValSize,
-                            NULL,
-                            NULL,
-                            (LPBYTE)szData,
-                            &dwNameSize);
+        dwValSize = MAX_VALUE_NAME * sizeof(WCHAR);
+        szValName[0] = L'\0';
+        lRet = RegEnumValueW(hKey,
+                             dwIndex,
+                             szValName,
+                             &dwValSize,
+                             NULL,
+                             NULL,
+                             (LPBYTE)szData,
+                             &dwNameSize);
         if (lRet == ERROR_SUCCESS)
         {
             /* get date from default reg value */
-            if (_tcscmp(szValName, _T("")) == 0) // if (Index == 0)
+            if (wcscmp(szValName, L"") == 0) // if (Index == 0)
             {
-                dwDefault = _ttoi(szData);
+                dwDefault = _wtoi(szData);
                 dwIndex++;
             }
             else
             {
-                SendMessage(hList,
-                            CB_ADDSTRING,
-                            0,
-                            (LPARAM)szData);
+                SendMessageW(hList,
+                             CB_ADDSTRING,
+                             0,
+                             (LPARAM)szData);
                 dwIndex++;
             }
         }
@@ -75,10 +75,10 @@
      * combo boxes count from 0 */
     dwDefault--;
 
-    SendMessage(hList,
-                CB_SETCURSEL,
-                dwDefault,
-                0);
+    SendMessageW(hList,
+                 CB_SETCURSEL,
+                 dwDefault,
+                 0);
 
     RegCloseKey(hKey);
 }
@@ -91,13 +91,13 @@
     HKEY hKey;
     HWND hList;
     UINT uSel;
-    TCHAR szSel[4];
+    WCHAR szSel[4];
     LONG lRet;
 
     hList = GetDlgItem(hwnd,
                        IDC_SERVERLIST);
 
-    uSel = (UINT)SendMessage(hList, CB_GETCURSEL, 0, 0);
+    uSel = (UINT)SendMessageW(hList, CB_GETCURSEL, 0, 0);
 
     /* server reg entries count from 1,
      * combo boxes count from 0 */
@@ -106,11 +106,11 @@
     /* convert to wide char */
     _itow(uSel, szSel, 10);
 
-    lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-                        _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\DateTime\\Servers"),
-                        0,
-                        KEY_SET_VALUE,
-                        &hKey);
+    lRet = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
+                         L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\DateTime\\Servers",
+                         0,
+                         KEY_SET_VALUE,
+                         &hKey);
     if (lRet != ERROR_SUCCESS)
     {
         DisplayWin32Error(lRet);
@@ -118,11 +118,11 @@
     }
 
     lRet = RegSetValueExW(hKey,
-                          _T(""),
+                          L"",
                           0,
                           REG_SZ,
                           (LPBYTE)szSel,
-                          sizeof(szSel));
+                          (wcslen(szSel) + 1) * sizeof(WCHAR));
     if (lRet != ERROR_SUCCESS)
         DisplayWin32Error(lRet);
 
@@ -132,43 +132,43 @@
 
 /* get the domain name from the registry */
 static BOOL
-GetNTPServerAddress(LPTSTR *lpAddress)
+GetNTPServerAddress(LPWSTR *lpAddress)
 {
     HKEY hKey;
-    TCHAR szSel[4];
+    WCHAR szSel[4];
     DWORD dwSize;
     LONG lRet;
 
-    lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-                        _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\DateTime\\Servers"),
-                        0,
-                        KEY_QUERY_VALUE,
-                        &hKey);
+    lRet = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
+                         L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\DateTime\\Servers",
+                         0,
+                         KEY_QUERY_VALUE,
+                         &hKey);
     if (lRet != ERROR_SUCCESS)
         goto fail;
 
     /* Get data from default value */
-    dwSize = 4 * sizeof(TCHAR);
-    lRet = RegQueryValueEx(hKey,
-                           _T(""),
-                           NULL,
-                           NULL,
-                           (LPBYTE)szSel,
-                           &dwSize);
+    dwSize = 4 * sizeof(WCHAR);
+    lRet = RegQueryValueExW(hKey,
+                            NULL,
+                            NULL,
+                            NULL,
+                            (LPBYTE)szSel,
+                            &dwSize);
     if (lRet != ERROR_SUCCESS)
         goto fail;
 
     dwSize = 0;
-    lRet = RegQueryValueEx(hKey,
-                           szSel,
-                           NULL,
-                           NULL,
-                           NULL,
-                           &dwSize);
-    if (lRet != ERROR_SUCCESS)
-        goto fail;
-
-    (*lpAddress) = (LPTSTR)HeapAlloc(GetProcessHeap(),
+    lRet = RegQueryValueExW(hKey,
+                            szSel,
+                            NULL,
+                            NULL,
+                            NULL,
+                            &dwSize);
+    if (lRet != ERROR_SUCCESS)
+        goto fail;
+
+    (*lpAddress) = (LPWSTR)HeapAlloc(GetProcessHeap(),
                                      0,
                                      dwSize);
     if ((*lpAddress) == NULL)
@@ -177,12 +177,12 @@
         goto fail;
     }
 
-    lRet = RegQueryValueEx(hKey,
-                           szSel,
-                           NULL,
-                           NULL,
-                           (LPBYTE)*lpAddress,
-                           &dwSize);
+    lRet = RegQueryValueExW(hKey,
+                            szSel,
+                            NULL,
+                            NULL,
+                            (LPBYTE)*lpAddress,
+                            &dwSize);
     if (lRet != ERROR_SUCCESS)
         goto fail;
 
@@ -203,7 +203,7 @@
 static ULONG
 GetTimeFromServer(VOID)
 {
-    LPTSTR lpAddress = NULL;
+    LPWSTR lpAddress = NULL;
     ULONG ulTime = 0;
 
     if (GetNTPServerAddress(&lpAddress))
@@ -269,7 +269,7 @@
     BOOL bChecked;
     UINT uCheck;
 
-    uCheck = (UINT)SendDlgItemMessage(hwnd, IDC_AUTOSYNC, BM_GETCHECK, 0, 0);
+    uCheck = (UINT)SendDlgItemMessageW(hwnd, IDC_AUTOSYNC, BM_GETCHECK, 0, 0);
     bChecked = (uCheck == BST_CHECKED) ? TRUE : FALSE;
 
     EnableWindow(GetDlgItem(hwnd, IDC_SERVERTEXT), bChecked);
@@ -284,25 +284,25 @@
 GetSyncSetting(HWND hwnd)
 {
     HKEY hKey;
-    TCHAR szData[8];
+    WCHAR szData[8];
     DWORD dwSize;
 
-    if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-                     _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\DateTime\\Parameters"),
-                     0,
-                     KEY_QUERY_VALUE,
-                     &hKey) == ERROR_SUCCESS)
-    {
-        dwSize = 8 * sizeof(TCHAR);
-        if (RegQueryValueEx(hKey,
-                            _T("Type"),
-                            NULL,
-                            NULL,
-                            (LPBYTE)szData,
-                            &dwSize) == ERROR_SUCCESS)
+    if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,
+                      L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\DateTime\\Parameters",
+                      0,
+                      KEY_QUERY_VALUE,
+                      &hKey) == ERROR_SUCCESS)
+    {
+        dwSize = 8 * sizeof(WCHAR);
+        if (RegQueryValueExW(hKey,
+                             L"Type",
+                             NULL,
+                             NULL,
+                             (LPBYTE)szData,
+                             &dwSize) == ERROR_SUCCESS)
         {
-            if (_tcscmp(szData, _T("NTP")) == 0)
-                SendDlgItemMessage(hwnd, IDC_AUTOSYNC, BM_SETCHECK, 0, 0);
+            if (wcscmp(szData, L"NTP") == 0)
+                SendDlgItemMessageW(hwnd, IDC_AUTOSYNC, BM_SETCHECK, 0, 0);
         }
 
         RegCloseKey(hKey);




More information about the Ros-diffs mailing list