#include "regedit.h"
+#include <commdlg.h>
+#include <cderr.h>
+#include <objsel.h>
+
/********************************************************************************
* Global and Local Variables:
*/
void UpdateStatusBar(void)
{
- NMHDR nmhdr;
- ZeroMemory(&nmhdr, sizeof(NMHDR));
- nmhdr.code = TVN_SELCHANGED;
- SendMessageW(g_pChildWnd->hWnd, WM_NOTIFY, (WPARAM)TREE_WINDOW, (LPARAM)&nmhdr);
+ HKEY hKeyRoot;
+ LPCWSTR pszKeyPath = GetItemPath(g_pChildWnd->hTreeWnd, 0, &hKeyRoot);
+
+ SendMessageW(hStatusBar, SB_SETTEXTW, 0, (LPARAM)pszKeyPath);
}
static void toggle_child(HWND hWnd, UINT cmd, HWND hchild)
c = 0;
for(i = 0; i < PairCount; i++)
{
- c += LoadStringW(hInst, Pairs[i].DisplayID, &Filter[c], 255 * sizeof(WCHAR));
+ c += LoadStringW(hInst, Pairs[i].DisplayID, &Filter[c], 255);
Filter[++c] = L'\0';
- c += LoadStringW(hInst, Pairs[i].FilterID, &Filter[c], 255 * sizeof(WCHAR));
+ c += LoadStringW(hInst, Pairs[i].FilterID, &Filter[c], 255);
Filter[++c] = L'\0';
}
Filter[++c] = L'\0';
/* build the "All Files" filter up */
filter.DisplayID = IDS_FLT_ALLFILES;
filter.FilterID = IDS_FLT_ALLFILES_FLT;
- BuildFilterStrings(Filter, &filter, sizeof(filter));
+ BuildFilterStrings(Filter, &filter, 1);
ofn.lpstrFilter = Filter;
/* load and set the caption and flags for dialog */
LoadStringW(hInst, IDS_LOAD_HIVE, Caption, COUNT_OF(Caption));
{
BOOL bRet = FALSE;
OPENFILENAME ofn;
- WCHAR ExportKeyPath[_MAX_PATH];
+ WCHAR ExportKeyPath[_MAX_PATH] = {0};
WCHAR Caption[128], szTitle[512], szText[512];
HKEY hKeyRoot;
LPCWSTR pszKeyPath;
if (RegOpenKeyExW(HKEY_CURRENT_USER, s_szFavoritesRegKey, 0, KEY_QUERY_VALUE, &hKey) != ERROR_SUCCESS)
goto done;
- cbData = (sizeof(szFavoritePath) / sizeof(szFavoritePath[0])) - 1;
+ cbData = sizeof(szFavoritePath);
memset(szFavoritePath, 0, sizeof(szFavoritePath));
if (RegQueryValueExW(hKey, pszFavorite, NULL, &dwType, (LPBYTE) szFavoritePath, &cbData) != ERROR_SUCCESS)
goto done;
LPCWSTR valueName;
BOOL result = TRUE;
REGSAM regsam = KEY_READ;
- LONG lRet;
int item;
UNREFERENCED_PARAMETER(lParam);
valueName = GetValueName(g_pChildWnd->hListWnd, -1);
if (keyPath)
{
- lRet = RegOpenKeyExW(hKeyRoot, keyPath, 0, regsam, &hKey);
- if (lRet != ERROR_SUCCESS) hKey = 0;
+ if (RegOpenKeyExW(hKeyRoot, keyPath, 0, regsam, &hKey) != ERROR_SUCCESS)
+ hKey = 0;
}
switch (LOWORD(wParam))
break;
case ID_EDIT_DELETE:
{
- if (GetFocus() == g_pChildWnd->hListWnd)
+ if (GetFocus() == g_pChildWnd->hListWnd && hKey)
{
UINT nSelected = ListView_GetSelectedCount(g_pChildWnd->hListWnd);
if(nSelected >= 1)
}
else if (GetFocus() == g_pChildWnd->hTreeWnd)
{
- if (keyPath == 0 || *keyPath == 0)
+ if (keyPath == NULL || *keyPath == UNICODE_NULL)
{
MessageBeep(MB_ICONHAND);
}
return DefWindowProcW(hWnd, message, wParam, lParam);
break;
case WM_ACTIVATE:
- if (LOWORD(hWnd))
+ if (LOWORD(hWnd) && g_pChildWnd)
SetFocus(g_pChildWnd->hWnd);
break;
case WM_SIZE: