diff --git a/programs/regedit/childwnd.c b/programs/regedit/childwnd.c index 55b11de9d34..08eeec1cbf6 100644 --- a/programs/regedit/childwnd.c +++ b/programs/regedit/childwnd.c @@ -419,7 +419,12 @@ LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa } case TVN_BEGINLABELEDITW: { HKEY hRootKey; - LPWSTR path = GetItemPath(g_pChildWnd->hTreeWnd, 0, &hRootKey); + LPWSTR path; + + if (!GetWindowLongPtrW(g_pChildWnd->hTreeWnd, GWLP_USERDATA)) + return 1; + + path = GetItemPath(g_pChildWnd->hTreeWnd, 0, &hRootKey); if (!path || !*path) return 1; return 0; } @@ -440,6 +445,7 @@ LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa HeapFree(GetProcessHeap(), 0, fullPath); } HeapFree(GetProcessHeap(), 0, path); + SetWindowLongPtrW(g_pChildWnd->hTreeWnd, GWLP_USERDATA, 0); return res; } default: diff --git a/programs/regedit/treeview.c b/programs/regedit/treeview.c index 7afc7bffb68..07e9b417ae8 100644 --- a/programs/regedit/treeview.c +++ b/programs/regedit/treeview.c @@ -529,6 +529,7 @@ HWND StartKeyRename(HWND hwndTV) HTREEITEM hItem; if(!(hItem = (HTREEITEM)SendMessageW(hwndTV, TVM_GETNEXTITEM, TVGN_CARET, 0))) return 0; + SetWindowLongPtrW(hwndTV, GWLP_USERDATA, 1); return (HWND)SendMessageW(hwndTV, TVM_EDITLABELW, 0, (LPARAM)hItem); }