Query and set the display string using data length counted in bytes.
authorEric Kohl <eric.kohl@reactos.org>
Tue, 25 Dec 2007 13:59:57 +0000 (13:59 +0000)
committerEric Kohl <eric.kohl@reactos.org>
Tue, 25 Dec 2007 13:59:57 +0000 (13:59 +0000)
svn path=/trunk/; revision=31433

reactos/base/applications/screensavers/3dtext/settings.c

index c00ed5f..ac4d8cd 100644 (file)
@@ -29,14 +29,14 @@ TCHAR m_Text[MAX_PATH];
 void LoadSettings()
 {
        HKEY hkey;
-       DWORD len = MAX_PATH;
+       DWORD len = MAX_PATH * sizeof(WCHAR);
 
        RegCreateKeyEx(HKEY_CURRENT_USER, _T("Software\\Microsoft\\ScreenSavers\\Text3D"), 0,
                _T(""), 0, KEY_READ, NULL, &hkey, NULL);
 
-       if(RegQueryValueEx(hkey, _T("DisplayString"),  0, 0, (LPBYTE)m_Text, &len) != ERROR_SUCCESS)
+       if (RegQueryValueEx(hkey, _T("DisplayString"), NULL, NULL, (LPBYTE)m_Text, &len) != ERROR_SUCCESS)
        {
-               _tcscpy(m_Text  , _TEXT("ReactOS Rocks!"));
+               _tcscpy(m_Text, _TEXT("ReactOS Rocks!"));
        }
 
        RegCloseKey(hkey);
@@ -49,7 +49,7 @@ void SaveSettings()
        RegCreateKeyEx(HKEY_CURRENT_USER, _T("Software\\Microsoft\\ScreenSavers\\Text3D"), 0,
                _T(""), 0, KEY_WRITE, NULL, &hkey, NULL);
 
-       RegSetValueEx(hkey, _T("DisplayString"), 0, REG_SZ, (BYTE *)&m_Text, sizeof (m_Text));
+       RegSetValueEx(hkey, _T("DisplayString"), 0, REG_SZ, (LPBYTE)m_Text, (_tcslen(m_Text) + 1) * sizeof(WCHAR));
 
        RegCloseKey(hkey);
 }