TCHAR *token;
HWND hwndBackgroundList;
TCHAR *p;
+ HRESULT hr;
hwndBackgroundList = GetDlgItem(hwndDlg, IDC_BACKGROUND_LIST);
/* Allow environment variables in file name */
if (ExpandEnvironmentStrings(wallpaperFilename, buffer, MAX_PATH))
{
- _tcscpy(wallpaperFilename, buffer);
+ hr = StringCbCopy(wallpaperFilename, sizeof(wallpaperFilename), buffer);
+ if (FAILED(hr))
+ {
+ RegCloseKey(regKey);
+ return;
+ }
}
himl = (HIMAGELIST)SHGetFileInfo(wallpaperFilename,
backgroundItem->bWallpaper = TRUE;
- _tcscpy(backgroundItem->szDisplayName, sfi.szDisplayName);
+ hr = StringCbCopy(backgroundItem->szDisplayName, sizeof(backgroundItem->szDisplayName), sfi.szDisplayName);
+ if (FAILED(hr))
+ {
+ RegCloseKey(regKey);
+ return;
+ }
+
p = _tcsrchr(backgroundItem->szDisplayName, _T('.'));
if (p)
*p = (TCHAR)0;
- _tcscpy(backgroundItem->szFilename, wallpaperFilename);
+
+ hr = StringCbCopy(backgroundItem->szFilename, sizeof(backgroundItem->szFilename), wallpaperFilename);
+ if (FAILED(hr))
+ {
+ RegCloseKey(regKey);
+ return;
+ }
ZeroMemory(&listItem, sizeof(LV_ITEM));
listItem.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE;
while (token != NULL)
{
GetWindowsDirectory(szSearchPath, MAX_PATH);
- _tcscat(szSearchPath, TEXT("\\"));
- _tcscat(szSearchPath, token);
+
+ hr = StringCbCat(szSearchPath, sizeof(szSearchPath), TEXT("\\"));
+ if (FAILED(hr))
+ return;
+ hr = StringCbCat(szSearchPath, sizeof(szSearchPath), token);
+ if (FAILED(hr))
+ return;
hFind = FindFirstFile(szSearchPath, &fd);
while (hFind != INVALID_HANDLE_VALUE)
GetWindowsDirectory(filename, MAX_PATH);
- _tcscat(filename, TEXT("\\"));
- _tcscat(filename, fd.cFileName);
+ hr = StringCbCat(filename, sizeof(filename), TEXT("\\"));
+ if (FAILED(hr))
+ {
+ FindClose(hFind);
+ return;
+ }
+ hr = StringCbCat(filename, sizeof(filename), fd.cFileName);
+ if (FAILED(hr))
+ {
+ FindClose(hFind);
+ return;
+ }
/* Don't add any hidden bitmaps. Also don't add current wallpaper once more. */
if (((fd.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) == 0) && (_tcscmp(wallpaperFilename, filename) != 0))
backgroundItem->bWallpaper = TRUE;
- _tcscpy(backgroundItem->szDisplayName, sfi.szDisplayName);
+ hr = StringCbCopy(backgroundItem->szDisplayName, sizeof(backgroundItem->szDisplayName), sfi.szDisplayName);
+ if (FAILED(hr))
+ {
+ FindClose(hFind);
+ return;
+ }
p = _tcsrchr(backgroundItem->szDisplayName, _T('.'));
if (p)
*p = (TCHAR)0;
- _tcscpy(backgroundItem->szFilename, filename);
+ hr = StringCbCopy(backgroundItem->szFilename, sizeof(backgroundItem->szFilename), filename);
+ if (FAILED(hr))
+ {
+ FindClose(hFind);
+ return;
+ }
ZeroMemory(&listItem, sizeof(LV_ITEM));
listItem.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE;
}
token = _tcstok(NULL, separators);
+ FindClose(hFind);
}
}
LV_ITEM listItem;
HWND hwndBackgroundList;
TCHAR *p;
+ HRESULT hr;
hwndBackgroundList = GetDlgItem(hwndDlg, IDC_BACKGROUND_LIST);
backgroundItem->bWallpaper = TRUE;
- _tcscpy(backgroundItem->szDisplayName, sfi.szDisplayName);
+ hr = StringCbCopy(backgroundItem->szDisplayName, sizeof(backgroundItem->szDisplayName), sfi.szDisplayName);
+ if (FAILED(hr))
+ return;
p = _tcsrchr(backgroundItem->szDisplayName, _T('.'));
if (p)
*p = (TCHAR)0;
- _tcscpy(backgroundItem->szFilename, filename);
+ hr = StringCbCopy(backgroundItem->szFilename, sizeof(backgroundItem->szFilename), filename);
+ if (FAILED(hr))
+ return;
ZeroMemory(&listItem, sizeof(LV_ITEM));
listItem.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE;
green = GetGValue(g_GlobalData.desktop_color);
blue = GetBValue(g_GlobalData.desktop_color);
/* Format string to be set to registry */
- wsprintf(clText, TEXT("%d %d %d"), red, green, blue);
+ StringCbPrintf(clText, sizeof(clText), TEXT("%d %d %d"), red, green, blue);
RegSetValueEx(hKey, TEXT("Background"), 0, REG_SZ, (BYTE *)clText,
(lstrlen(clText) + 1) * sizeof(TCHAR));
RegCloseKey(hKey);
ScreenSaverItem *ScreenSaverItem;
HANDLE hModule;
UINT i, ScreenSaverCount;
+ HRESULT hr;
ScreenSaverCount = pData->ScreenSaverCount;
- _tcscpy(szSearchPath, pszSearchPath);
- _tcscat(szSearchPath, TEXT("\\*.scr"));
+
+ hr = StringCbCopy(szSearchPath, sizeof(szSearchPath), pszSearchPath);
+ if (FAILED(hr))
+ return;
+ hr = StringCbCat(szSearchPath, sizeof(szSearchPath), TEXT("\\*.scr"));
+ if (FAILED(hr))
+ return;
hFind = FindFirstFile(szSearchPath, &fd);
{
TCHAR filename[MAX_PATH];
- _tcscpy(filename, pszSearchPath);
- _tcscat(filename, _T("\\"));
- _tcscat(filename, fd.cFileName);
+ hr = StringCbCopy(filename, sizeof(filename), pszSearchPath);
+ if (FAILED(hr))
+ {
+ FindClose(hFind);
+ return;
+ }
+ hr = StringCbCat(filename, sizeof(filename), _T("\\"));
+ if (FAILED(hr))
+ {
+ FindClose(hFind);
+ return;
+ }
+ hr = StringCbCat(filename, sizeof(filename), fd.cFileName);
+ if (FAILED(hr))
+ {
+ FindClose(hFind);
+ return;
+ }
ScreenSaverItem = pData->ScreenSaverItems + ScreenSaverCount;
sizeof(ScreenSaverItem->szDisplayName) / sizeof(TCHAR)))
{
// If the string does not exists, copy the name of the file
- _tcscpy(ScreenSaverItem->szDisplayName, fd.cFileName);
+ hr = StringCbCopy(ScreenSaverItem->szDisplayName, sizeof(ScreenSaverItem->szDisplayName), fd.cFileName);
+ if (FAILED(hr))
+ {
+ FreeLibrary(hModule);
+ FindClose(hFind);
+ return;
+ }
ScreenSaverItem->szDisplayName[_tcslen(fd.cFileName)-4] = '\0';
}
FreeLibrary(hModule);
}
else
{
- _tcscpy(ScreenSaverItem->szDisplayName, _T("Unknown"));
+ hr = StringCbCopy(ScreenSaverItem->szDisplayName, sizeof(ScreenSaverItem->szDisplayName), _T("Unknown"));
+ if (FAILED(hr))
+ {
+ FindClose(hFind);
+ return;
+ }
}
- _tcscpy(ScreenSaverItem->szFilename, filename);
+ hr = StringCbCopy(ScreenSaverItem->szFilename, sizeof(ScreenSaverItem->szFilename), filename);
+ if (FAILED(hr))
+ {
+ FindClose(hFind);
+ return;
+ }
i = SendMessage(hwndScreenSavers,
CB_ADDSTRING,