/* Remove quotation marks */
if (szTempData[0] == _T('"'))
{
- lpStart = szValueData + 1;
+ lpStart = szTempData + 1;
szTempData[_tcslen(szTempData) - 1] = 0;
}
else
if (nSel == 0)
{
szSchemeName[0] = 0;
+ szNewSchemeName[0] = 0;
}
else
{
lpSchemeData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, nLength * sizeof(TCHAR));
+ if(!lpSchemeData)
+ return FALSE;
+
for (index = IDS_ARROW, i = 0; index <= IDS_HAND; index++, i++)
{
CompressPath(szTempPath, g_CursorData[i].szCursorPath);
}
if (RegOpenCurrentUser(KEY_READ | KEY_SET_VALUE, &hCuKey) != ERROR_SUCCESS)
+ {
+ HeapFree(GetProcessHeap(), 0, lpSchemeData);
return FALSE;
+ }
if (RegOpenKeyEx(hCuKey, _T("Control Panel\\Cursors\\Schemes"), 0, KEY_READ | KEY_SET_VALUE, &hCuCursorKey) != ERROR_SUCCESS)
{
RegCloseKey(hCuKey);
+ HeapFree(GetProcessHeap(), 0, lpSchemeData);
return FALSE;
}
ofn.nMaxFile = MAX_PATH;
ofn.lpstrInitialDir = _T("%WINDIR%\\Cursors");
ofn.lpstrTitle = szTitle;
- ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST;
+ ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
if (!GetOpenFileName(&ofn))
return FALSE;
static VOID
LoadInitialCursorScheme(HWND hwndDlg)
{
- TCHAR szSchemeName[256];
- TCHAR szSystemScheme[256];
- TCHAR szCursorPath[256];
+ TCHAR szSchemeName[MAX_PATH];
+ TCHAR szSystemScheme[MAX_PATH];
+ TCHAR szCursorPath[MAX_PATH];
HKEY hCursorKey;
LONG lError;
DWORD dwDataSize;
if (dwSchemeSource != 0)
{
- dwDataSize = 256 * sizeof(TCHAR);
+ dwDataSize = MAX_PATH * sizeof(TCHAR);
lError = RegQueryValueEx(hCursorKey,
NULL,
NULL,
else if (dwSchemeSource == 2)
{
LoadString(hApplet, IDS_SYSTEM_SCHEME, szSystemScheme, MAX_PATH);
- _tcscat(szSchemeName, _T(" "));
- _tcscat(szSchemeName, szSystemScheme);
+ _tcsncat(szSchemeName, _T(" "), MAX_PATH - _tcslen(szSchemeName) - 1);
+ _tcsncat(szSchemeName, szSystemScheme, MAX_PATH - _tcslen(szSchemeName) - 1);
}
/* Search and select the curent scheme name from the scheme list */
{
case LBN_SELCHANGE:
nSel = SendMessage((HWND)lParam, LB_GETCURSEL, 0, 0);
+
+ if(nSel == LB_ERR)
+ break;
+
SendDlgItemMessage(hwndDlg, IDC_IMAGE_CURRENT_CURSOR, STM_SETIMAGE, IMAGE_CURSOR,
(LPARAM)g_CursorData[nSel].hCursor);
EnableWindow(GetDlgItem(hwndDlg,IDC_BUTTON_USE_DEFAULT_CURSOR),