mirror of
https://github.com/reactos/reactos.git
synced 2025-05-08 11:24:14 +00:00
[REGEDIT]
- Fix a handle leak. Patch by Edijs Kolesnikovičs. CORE-6853 #resolve svn path=/trunk/; revision=58069
This commit is contained in:
parent
bef50fc841
commit
d82df6ac05
1 changed files with 35 additions and 39 deletions
|
@ -116,49 +116,45 @@ extern void SaveSettings(void)
|
||||||
|
|
||||||
if (RegCreateKeyW(HKEY_CURRENT_USER, g_szGeneralRegKey, &hKey) == ERROR_SUCCESS)
|
if (RegCreateKeyW(HKEY_CURRENT_USER, g_szGeneralRegKey, &hKey) == ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
if (RegOpenKeyW(HKEY_CURRENT_USER, g_szGeneralRegKey, &hKey) == ERROR_SUCCESS)
|
RegistryBinaryConfig tConfig;
|
||||||
|
DWORD iBufferSize = sizeof(tConfig);
|
||||||
|
WCHAR szBuffer[MAX_PATH];
|
||||||
|
LPCWSTR keyPath, rootName;
|
||||||
|
HKEY hRootKey;
|
||||||
|
|
||||||
|
/* Save key position */
|
||||||
|
keyPath = GetItemPath(g_pChildWnd->hTreeWnd, 0, &hRootKey);
|
||||||
|
if (keyPath)
|
||||||
{
|
{
|
||||||
RegistryBinaryConfig tConfig;
|
rootName = get_root_key_name(hRootKey);
|
||||||
DWORD iBufferSize = sizeof(tConfig);
|
|
||||||
WCHAR szBuffer[MAX_PATH];
|
|
||||||
LPCWSTR keyPath, rootName;
|
|
||||||
HKEY hRootKey;
|
|
||||||
|
|
||||||
/* Save key position */
|
/* Load "My Computer" string and complete it */
|
||||||
keyPath = GetItemPath(g_pChildWnd->hTreeWnd, 0, &hRootKey);
|
LoadStringW(hInst, IDS_MY_COMPUTER, szBuffer, COUNT_OF(szBuffer));
|
||||||
if (keyPath)
|
wcscat(szBuffer, L"\\"); wcscat(szBuffer, rootName);
|
||||||
{
|
wcscat(szBuffer, L"\\"); wcscat(szBuffer, keyPath);
|
||||||
rootName = get_root_key_name(hRootKey);
|
|
||||||
|
|
||||||
/* Load "My Computer" string and complete it */
|
RegSetValueExW(hKey, L"LastKey", 0, REG_SZ, (LPBYTE)szBuffer, (DWORD)wcslen(szBuffer) * sizeof(WCHAR));
|
||||||
LoadStringW(hInst, IDS_MY_COMPUTER, szBuffer, COUNT_OF(szBuffer));
|
|
||||||
wcscat(szBuffer, L"\\"); wcscat(szBuffer, rootName);
|
|
||||||
wcscat(szBuffer, L"\\"); wcscat(szBuffer, keyPath);
|
|
||||||
|
|
||||||
RegSetValueExW(hKey, L"LastKey", 0, REG_SZ, (LPBYTE)szBuffer, (DWORD)wcslen(szBuffer) * sizeof(WCHAR));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Get statusbar settings */
|
|
||||||
tConfig.StatusBarVisible = ((GetMenuState(GetSubMenu(hMenuFrame, ID_VIEW_MENU), ID_VIEW_STATUSBAR, MF_BYCOMMAND) & MF_CHECKED) ? 1 : 0);
|
|
||||||
|
|
||||||
/* Get splitter position */
|
|
||||||
tConfig.TreeViewSize = g_pChildWnd->nSplitPos;
|
|
||||||
|
|
||||||
/* Get list view column width*/
|
|
||||||
tConfig.NameColumnSize = ListView_GetColumnWidth(g_pChildWnd->hListWnd, 0);
|
|
||||||
tConfig.TypeColumnSize = ListView_GetColumnWidth(g_pChildWnd->hListWnd, 1);
|
|
||||||
tConfig.DataColumnSize = ListView_GetColumnWidth(g_pChildWnd->hListWnd, 2);
|
|
||||||
|
|
||||||
/* Get program window settings */
|
|
||||||
tConfig.tPlacement.length = sizeof(WINDOWPLACEMENT);
|
|
||||||
GetWindowPlacement(hFrameWnd , &tConfig.tPlacement);
|
|
||||||
|
|
||||||
/* Save all the data */
|
|
||||||
RegSetValueExW(hKey, L"View", 0, REG_BINARY, (LPBYTE)&tConfig, iBufferSize);
|
|
||||||
|
|
||||||
RegCloseKey(hKey);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Get statusbar settings */
|
||||||
|
tConfig.StatusBarVisible = ((GetMenuState(GetSubMenu(hMenuFrame, ID_VIEW_MENU), ID_VIEW_STATUSBAR, MF_BYCOMMAND) & MF_CHECKED) ? 1 : 0);
|
||||||
|
|
||||||
|
/* Get splitter position */
|
||||||
|
tConfig.TreeViewSize = g_pChildWnd->nSplitPos;
|
||||||
|
|
||||||
|
/* Get list view column width*/
|
||||||
|
tConfig.NameColumnSize = ListView_GetColumnWidth(g_pChildWnd->hListWnd, 0);
|
||||||
|
tConfig.TypeColumnSize = ListView_GetColumnWidth(g_pChildWnd->hListWnd, 1);
|
||||||
|
tConfig.DataColumnSize = ListView_GetColumnWidth(g_pChildWnd->hListWnd, 2);
|
||||||
|
|
||||||
|
/* Get program window settings */
|
||||||
|
tConfig.tPlacement.length = sizeof(WINDOWPLACEMENT);
|
||||||
|
GetWindowPlacement(hFrameWnd , &tConfig.tPlacement);
|
||||||
|
|
||||||
|
/* Save all the data */
|
||||||
|
RegSetValueExW(hKey, L"View", 0, REG_BINARY, (LPBYTE)&tConfig, iBufferSize);
|
||||||
|
|
||||||
|
RegCloseKey(hKey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
Loading…
Reference in a new issue