[0.4.9][REGEDIT] Port back several improvements and crash-fixes

0.4.15-dev-5985-g 31fdaca8c0 [REGEDIT] Strip redundant include, minor formatting (#5264)
0.4.15-dev-5970-g 9d7d3314b3 [REGEDIT] Check whether pszSelectKey is NULL on CDN_FILEOK (#5255)
0.4.15-dev-5898-g 84e580b67e [REGEDIT] Fix ListView selection and finding (#5150)
(superseded) 0.4.15-dev-5802-g cce3eb9393 Fix buffer read past end problem. (#5146) CORE-15896 and CORE-18230
partially 0.4.15-dev-5753-g 1ee9ea4518 [REGEDIT] Avoid buffer overflow in SelectNode. CORE-18602 (I left the wscpy-replacement at the end for the fixed size strings, as they would increase binary size, and are totally safe)
partially 0.4.15-dev-5308-g 5daf5cd057 [REGEDIT] Use shell icons for the tree view (#4841) CORE-10764
0.4.15-dev-4850-g 568383c9b9 [REGEDIT] Fix issue at Find registry key (#4341)
partially 0.4.15-dev-2265-g bebdfda8b7 [REGEDIT]... Use newer file open dialog (#3571)
0.4.15-dev-1470-g 9de8787187 [REGEDIT] Display search finished messagebox when using Find Next (F3) menu item (#3371) CORE-17368
0.4.15-dev-1302-g 6aae5f4fdd [REGEDIT] Make "finished find" messagebox owned by Regedit window (#3369) CORE-17367
0.4.15-dev-169-g 0461de33c5 [REGEDIT] Fix HeapFree() on the wrong variable (#2736)
0.4.14-dev-1484-g c832112771 [REGEDIT] Fix tree view popup menu issues CORE-16887
0.4.14-dev-1468-g 763de230b2 [REGEDIT] Fix inconsistent menu state for 'Permissions' CORE-16889
a more efficient solution than 0.4.14-dev-1467-g b280615b85 [REGEDIT] Crash on selecting 'New' on root item 'My computer' CORE-16888
0.4.14-dev-1466-g 13dd917589 [REGEDIT] CORE-16892 fr-FR Translation update
0.4.13-dev-464-g 6b95727282 [REGEDIT] Adjust ListView column widths (#1663) CORE-15187
0.4.12-dev-47-g 63a0ac0461 [REGEDIT] Set background brush to child window (#1122) CORE-15442
0.4.11-dev-481-g efbebf983c [REGEDIT] Improve the layout of controls (#967) CORE-15187
0.4.11-dev-480-g e4c2cff6c8 [REGEDIT] Don't paint background in WM_PAINT (#970) CORE-15187
0.4.11-dev-458-g 125db5ead9 [REGEDIT] Trivial resizing code fix (#950)
0.4.11-dev-457-g b3231e0bf5 [REGEDIT] Code formatting (#949)
0.4.10-dev-244-g b9415740a1 [REGEDIT] Fix importing very big *.reg files (HEX values commonly) (#618)

a few fragments only of 0.4.15-dev-5304-g 36a7f0dc7c [REGEDIT] framewnd.c resize_frame_rect(), main.h strip externs before func declarations and reordering, treeview.c InitTreeViewImageLists()

also port back a few selected translation improvements, and strip the suggestions-feature in older branches <= 0.4.13 which does not exist in 2k3sp2.
This commit is contained in:
Joachim Henze 2023-05-01 19:58:37 +02:00
parent ae60c1652b
commit 0ec50cf085
49 changed files with 530 additions and 716 deletions

View file

@ -26,7 +26,7 @@ void ShowAboutBox(HWND hWnd)
{
WCHAR AppStr[255];
LoadStringW(hInst, IDS_APP_TITLE, AppStr, COUNT_OF(AppStr));
ShellAboutW(hWnd, AppStr, L"", LoadIconW(hInst, MAKEINTRESOURCEW(IDI_REGEDIT)));
ShellAboutW(hWnd, AppStr, NULL, LoadIconW(hInst, MAKEINTRESOURCEW(IDI_REGEDIT)));
}
/* EOF */

View file

@ -24,7 +24,6 @@ ChildWnd* g_pChildWnd;
static int last_split;
HBITMAP SizingPattern = 0;
HBRUSH SizingBrush = 0;
static WCHAR Suggestions[256];
extern LPCWSTR get_root_key_name(HKEY hRootKey)
{
@ -42,7 +41,10 @@ extern void ResizeWnd(int cx, int cy)
{
HDWP hdwp = BeginDeferWindowPos(4);
RECT rt, rs, rb;
const int tHeight = 22;
const int nButtonWidth = 44;
const int nButtonHeight = 22;
int cyEdge = GetSystemMetrics(SM_CYEDGE);
const UINT uFlags = SWP_NOZORDER | SWP_NOACTIVATE;
SetRect(&rt, 0, 0, cx, cy);
cy = 0;
if (hStatusBar != NULL)
@ -51,12 +53,33 @@ extern void ResizeWnd(int cx, int cy)
cy = rs.bottom - rs.top;
}
GetWindowRect(g_pChildWnd->hAddressBtnWnd, &rb);
cx = g_pChildWnd->nSplitPos + SPLIT_WIDTH/2;
if (hdwp) hdwp = DeferWindowPos(hdwp, g_pChildWnd->hAddressBarWnd, 0, rt.left, rt.top, rt.right-rt.left - 2*tHeight, tHeight, SWP_NOZORDER|SWP_NOACTIVATE);
if (hdwp) hdwp = DeferWindowPos(hdwp, g_pChildWnd->hAddressBtnWnd, 0, rt.right - 2*tHeight, rt.top, 2*tHeight, tHeight, SWP_NOZORDER|SWP_NOACTIVATE);
if (hdwp) hdwp = DeferWindowPos(hdwp, g_pChildWnd->hTreeWnd, 0, rt.left, rt.top + tHeight+2, g_pChildWnd->nSplitPos-SPLIT_WIDTH/2-rt.left, rt.bottom-rt.top-cy, SWP_NOZORDER|SWP_NOACTIVATE);
if (hdwp) hdwp = DeferWindowPos(hdwp, g_pChildWnd->hListWnd, 0, rt.left+cx, rt.top + tHeight+2, rt.right-cx, rt.bottom-rt.top-cy, SWP_NOZORDER|SWP_NOACTIVATE);
if (hdwp) EndDeferWindowPos(hdwp);
cx = g_pChildWnd->nSplitPos + SPLIT_WIDTH / 2;
if (hdwp)
hdwp = DeferWindowPos(hdwp, g_pChildWnd->hAddressBarWnd, NULL,
rt.left, rt.top,
rt.right - rt.left - nButtonWidth, nButtonHeight,
uFlags);
if (hdwp)
hdwp = DeferWindowPos(hdwp, g_pChildWnd->hAddressBtnWnd, NULL,
rt.right - nButtonWidth, rt.top,
nButtonWidth, nButtonHeight,
uFlags);
if (hdwp)
hdwp = DeferWindowPos(hdwp, g_pChildWnd->hTreeWnd, NULL,
rt.left,
rt.top + nButtonHeight + cyEdge,
g_pChildWnd->nSplitPos - SPLIT_WIDTH/2 - rt.left,
rt.bottom - rt.top - cy - 2 * cyEdge,
uFlags);
if (hdwp)
hdwp = DeferWindowPos(hdwp, g_pChildWnd->hListWnd, NULL,
rt.left + cx,
rt.top + nButtonHeight + cyEdge,
rt.right - cx,
rt.bottom - rt.top - cy - 2 * cyEdge,
uFlags);
if (hdwp)
EndDeferWindowPos(hdwp);
}
/*******************************************************************************
@ -87,17 +110,6 @@ static void draw_splitbar(HWND hWnd, int x)
ReleaseDC(hWnd, hdc);
}
static void OnPaint(HWND hWnd)
{
PAINTSTRUCT ps;
RECT rt;
GetClientRect(hWnd, &rt);
BeginPaint(hWnd, &ps);
FillRect(ps.hdc, &rt, GetSysColorBrush(COLOR_BTNFACE));
EndPaint(hWnd, &ps);
}
/*******************************************************************************
* finish_splitbar [internal]
*
@ -116,172 +128,6 @@ static void finish_splitbar(HWND hWnd, int x)
ReleaseCapture();
}
/*******************************************************************************
*
* FUNCTION: ChildWnd_CmdWndProc(HWND, unsigned, WORD, LONG)
*
* PURPOSE: Processes WM_COMMAND messages for the main frame window.
*
*/
static BOOL ChildWnd_CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HTREEITEM hSelection;
HKEY hRootKey;
LPCWSTR keyPath, s;
WORD wID = LOWORD(wParam);
UNREFERENCED_PARAMETER(message);
switch (wID)
{
/* Parse the menu selections: */
case ID_REGISTRY_EXIT:
DestroyWindow(hWnd);
break;
case ID_VIEW_REFRESH:
/* TODO */
break;
case ID_TREE_EXPANDBRANCH:
(void)TreeView_Expand(g_pChildWnd->hTreeWnd, TreeView_GetSelection(g_pChildWnd->hTreeWnd), TVE_EXPAND);
break;
case ID_TREE_COLLAPSEBRANCH:
(void)TreeView_Expand(g_pChildWnd->hTreeWnd, TreeView_GetSelection(g_pChildWnd->hTreeWnd), TVE_COLLAPSE);
break;
case ID_TREE_RENAME:
SetFocus(g_pChildWnd->hTreeWnd);
(void)TreeView_EditLabel(g_pChildWnd->hTreeWnd, TreeView_GetSelection(g_pChildWnd->hTreeWnd));
break;
case ID_TREE_DELETE:
hSelection = TreeView_GetSelection(g_pChildWnd->hTreeWnd);
keyPath = GetItemPath(g_pChildWnd->hTreeWnd, hSelection, &hRootKey);
if (keyPath == 0 || *keyPath == 0)
{
MessageBeep(MB_ICONHAND);
}
else if (DeleteKey(hWnd, hRootKey, keyPath))
DeleteNode(g_pChildWnd->hTreeWnd, 0);
break;
case ID_TREE_EXPORT:
ExportRegistryFile(g_pChildWnd->hTreeWnd);
break;
case ID_EDIT_FIND:
FindDialog(hWnd);
break;
case ID_EDIT_COPYKEYNAME:
hSelection = TreeView_GetSelection(g_pChildWnd->hTreeWnd);
keyPath = GetItemPath(g_pChildWnd->hTreeWnd, hSelection, &hRootKey);
CopyKeyName(hWnd, hRootKey, keyPath);
break;
case ID_EDIT_NEW_KEY:
CreateNewKey(g_pChildWnd->hTreeWnd, TreeView_GetSelection(g_pChildWnd->hTreeWnd));
break;
case ID_EDIT_NEW_STRINGVALUE:
case ID_EDIT_NEW_BINARYVALUE:
case ID_EDIT_NEW_DWORDVALUE:
SendMessageW(hFrameWnd, WM_COMMAND, wParam, lParam);
break;
case ID_SWITCH_PANELS:
g_pChildWnd->nFocusPanel = !g_pChildWnd->nFocusPanel;
SetFocus(g_pChildWnd->nFocusPanel? g_pChildWnd->hListWnd: g_pChildWnd->hTreeWnd);
break;
default:
if ((wID >= ID_TREE_SUGGESTION_MIN) && (wID <= ID_TREE_SUGGESTION_MAX))
{
s = Suggestions;
while(wID > ID_TREE_SUGGESTION_MIN)
{
if (*s)
s += wcslen(s) + 1;
wID--;
}
SelectNode(g_pChildWnd->hTreeWnd, s);
break;
}
return FALSE;
}
return TRUE;
}
/*******************************************************************************
*
* Key suggestion
*/
#define MIN(a,b) ((a < b) ? (a) : (b))
static void SuggestKeys(HKEY hRootKey, LPCWSTR pszKeyPath, LPWSTR pszSuggestions,
size_t iSuggestionsLength)
{
WCHAR szBuffer[256];
WCHAR szLastFound[256];
size_t i;
HKEY hOtherKey, hSubKey;
BOOL bFound;
memset(pszSuggestions, 0, iSuggestionsLength * sizeof(*pszSuggestions));
iSuggestionsLength--;
/* Are we a root key in HKEY_CLASSES_ROOT? */
if ((hRootKey == HKEY_CLASSES_ROOT) && pszKeyPath[0] && !wcschr(pszKeyPath, L'\\'))
{
do
{
bFound = FALSE;
/* Check default key */
if (QueryStringValue(hRootKey, pszKeyPath, NULL,
szBuffer, COUNT_OF(szBuffer)) == ERROR_SUCCESS)
{
/* Sanity check this key; it cannot be empty, nor can it be a
* loop back */
if ((szBuffer[0] != L'\0') && _wcsicmp(szBuffer, pszKeyPath))
{
if (RegOpenKeyW(hRootKey, szBuffer, &hOtherKey) == ERROR_SUCCESS)
{
lstrcpynW(pszSuggestions, L"HKCR\\", (int) iSuggestionsLength);
i = wcslen(pszSuggestions);
pszSuggestions += i;
iSuggestionsLength -= i;
lstrcpynW(pszSuggestions, szBuffer, (int) iSuggestionsLength);
i = MIN(wcslen(pszSuggestions) + 1, iSuggestionsLength);
pszSuggestions += i;
iSuggestionsLength -= i;
RegCloseKey(hOtherKey);
bFound = TRUE;
wcscpy(szLastFound, szBuffer);
pszKeyPath = szLastFound;
}
}
}
}
while(bFound && (iSuggestionsLength > 0));
/* Check CLSID key */
if (RegOpenKeyW(hRootKey, pszKeyPath, &hSubKey) == ERROR_SUCCESS)
{
if (QueryStringValue(hSubKey, L"CLSID", NULL, szBuffer,
COUNT_OF(szBuffer)) == ERROR_SUCCESS)
{
lstrcpynW(pszSuggestions, L"HKCR\\CLSID\\", (int)iSuggestionsLength);
i = wcslen(pszSuggestions);
pszSuggestions += i;
iSuggestionsLength -= i;
lstrcpynW(pszSuggestions, szBuffer, (int)iSuggestionsLength);
i = MIN(wcslen(pszSuggestions) + 1, iSuggestionsLength);
pszSuggestions += i;
iSuggestionsLength -= i;
}
RegCloseKey(hSubKey);
}
}
}
LRESULT CALLBACK AddressBarProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
WNDPROC oldwndproc;
@ -303,16 +149,17 @@ LRESULT CALLBACK AddressBarProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lPar
return CallWindowProcW(oldwndproc, hwnd, uMsg, wParam, lParam);
}
static VOID
UpdateAddress(HTREEITEM hItem, HKEY hRootKey, LPCWSTR pszPath)
VOID
UpdateAddress(HTREEITEM hItem, HKEY hRootKey, LPCWSTR pszPath, BOOL bSelectNone)
{
LPCWSTR keyPath, rootName;
LPWSTR fullPath;
DWORD cbFullPath;
/* Wipe the listview, the status bar and the address bar if the root key was selected */
if (TreeView_GetParent(g_pChildWnd->hTreeWnd, hItem) == NULL)
{
(void)ListView_DeleteAllItems(g_pChildWnd->hListWnd);
ListView_DeleteAllItems(g_pChildWnd->hListWnd);
SendMessageW(hStatusBar, SB_SETTEXTW, 0, (LPARAM)NULL);
SendMessageW(g_pChildWnd->hAddressBarWnd, WM_SETTEXT, 0, (LPARAM)NULL);
return;
@ -325,35 +172,36 @@ UpdateAddress(HTREEITEM hItem, HKEY hRootKey, LPCWSTR pszPath)
if (keyPath)
{
RefreshListView(g_pChildWnd->hListWnd, hRootKey, keyPath);
RefreshListView(g_pChildWnd->hListWnd, hRootKey, keyPath, bSelectNone);
rootName = get_root_key_name(hRootKey);
fullPath = HeapAlloc(GetProcessHeap(), 0, (wcslen(rootName) + 1 + wcslen(keyPath) + 1) * sizeof(WCHAR));
cbFullPath = (wcslen(rootName) + 1 + wcslen(keyPath) + 1) * sizeof(WCHAR);
fullPath = malloc(cbFullPath);
if (fullPath)
{
/* set (correct) the address bar text */
if (keyPath[0] != L'\0')
swprintf(fullPath, L"%s\\%s", rootName, keyPath);
swprintf(fullPath, L"%s%s%s", rootName, keyPath[0]==L'\\'?L"":L"\\", keyPath);
else
fullPath = wcscpy(fullPath, rootName);
SendMessageW(hStatusBar, SB_SETTEXTW, 0, (LPARAM)fullPath);
SendMessageW(g_pChildWnd->hAddressBarWnd, WM_SETTEXT, 0, (LPARAM)fullPath);
HeapFree(GetProcessHeap(), 0, fullPath);
free(fullPath);
/* disable hive manipulation items temporarily (enable only if necessary) */
EnableMenuItem(GetSubMenu(hMenuFrame,0), ID_REGISTRY_LOADHIVE, MF_BYCOMMAND | MF_GRAYED);
EnableMenuItem(GetSubMenu(hMenuFrame,0), ID_REGISTRY_UNLOADHIVE, MF_BYCOMMAND | MF_GRAYED);
EnableMenuItem(hMenuFrame, ID_REGISTRY_LOADHIVE, MF_BYCOMMAND | MF_GRAYED);
EnableMenuItem(hMenuFrame, ID_REGISTRY_UNLOADHIVE, MF_BYCOMMAND | MF_GRAYED);
/* compare the strings to see if we should enable/disable the "Load Hive" menus accordingly */
if (!(_wcsicmp(rootName, L"HKEY_LOCAL_MACHINE") &&
_wcsicmp(rootName, L"HKEY_USERS")))
if (_wcsicmp(rootName, L"HKEY_LOCAL_MACHINE") != 0 ||
_wcsicmp(rootName, L"HKEY_USERS") != 0)
{
/*
* enable the unload menu item if at the root, otherwise
* enable the load menu item if there is no slash in
* keyPath (ie. immediate child selected)
*/
if(keyPath[0] == L'\0')
EnableMenuItem(GetSubMenu(hMenuFrame,0), ID_REGISTRY_LOADHIVE, MF_BYCOMMAND | MF_ENABLED);
if (keyPath[0] == UNICODE_NULL)
EnableMenuItem(hMenuFrame, ID_REGISTRY_LOADHIVE, MF_BYCOMMAND | MF_ENABLED);
else if(!wcschr(keyPath, L'\\'))
EnableMenuItem(GetSubMenu(hMenuFrame,0), ID_REGISTRY_UNLOADHIVE, MF_BYCOMMAND | MF_ENABLED);
EnableMenuItem(hMenuFrame, ID_REGISTRY_UNLOADHIVE, MF_BYCOMMAND | MF_ENABLED);
}
}
}
@ -366,13 +214,13 @@ UpdateAddress(HTREEITEM hItem, HKEY hRootKey, LPCWSTR pszPath)
* PURPOSE: Processes messages for the child windows.
*
* WM_COMMAND - process the application menu
* WM_PAINT - Paint the main window
* WM_DESTROY - post a quit message and return
*
*/
LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
BOOL Result;
RECT rc;
switch (message)
{
@ -389,7 +237,7 @@ LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa
if (!g_pChildWnd) return 0;
wcsncpy(g_pChildWnd->szPath, buffer, MAX_PATH);
g_pChildWnd->nSplitPos = 250;
g_pChildWnd->nSplitPos = 190;
g_pChildWnd->hWnd = hWnd;
g_pChildWnd->hAddressBarWnd = CreateWindowExW(WS_EX_CLIENTEDGE, L"Edit", NULL, WS_CHILD | WS_VISIBLE | WS_CHILDWINDOW | WS_TABSTOP,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
@ -397,8 +245,9 @@ LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa
g_pChildWnd->hAddressBtnWnd = CreateWindowExW(0, L"Button", L"\x00BB", WS_CHILD | WS_VISIBLE | WS_CHILDWINDOW | WS_TABSTOP | BS_TEXT | BS_CENTER | BS_VCENTER | BS_FLAT | BS_DEFPUSHBUTTON,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
hWnd, (HMENU)0, hInst, 0);
GetClientRect(hWnd, &rc);
g_pChildWnd->hTreeWnd = CreateTreeView(hWnd, g_pChildWnd->szPath, (HMENU) TREE_WINDOW);
g_pChildWnd->hListWnd = CreateListView(hWnd, (HMENU) LIST_WINDOW/*, g_pChildWnd->szPath*/);
g_pChildWnd->hListWnd = CreateListView(hWnd, (HMENU) LIST_WINDOW, rc.right - g_pChildWnd->nSplitPos);
SetFocus(g_pChildWnd->hTreeWnd);
/* set the address bar and button font */
@ -425,15 +274,7 @@ LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa
{
PostMessageW(g_pChildWnd->hAddressBarWnd, WM_KEYUP, VK_RETURN, 0);
}
if (!ChildWnd_CmdWndProc(hWnd, message, wParam, lParam))
{
goto def;
}
break;
case WM_PAINT:
OnPaint(hWnd);
return 0;
case WM_SETCURSOR:
if (LOWORD(lParam) == HTCLIENT)
{
@ -543,107 +384,26 @@ LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa
break;
case WM_NOTIFY:
if ((int)wParam == TREE_WINDOW && g_pChildWnd != NULL)
if (g_pChildWnd == NULL) break;
if (((LPNMHDR)lParam)->idFrom == TREE_WINDOW)
{
switch (((LPNMHDR)lParam)->code)
{
case TVN_ITEMEXPANDING:
return !OnTreeExpanding(g_pChildWnd->hTreeWnd, (NMTREEVIEW*)lParam);
case TVN_SELCHANGED:
{
NMTREEVIEW* pnmtv = (NMTREEVIEW*)lParam;
/* Get the parent of the current item */
HTREEITEM hParentItem = TreeView_GetParent(g_pChildWnd->hTreeWnd, pnmtv->itemNew.hItem);
if (!TreeWndNotifyProc(g_pChildWnd->hListWnd, wParam, lParam, &Result))
goto def;
UpdateAddress(pnmtv->itemNew.hItem, NULL, NULL);
/*
* Disable Delete/Rename menu options for 'My Computer' (first item so doesn't have any parent)
* and HKEY_* keys (their parent is 'My Computer' and the previous remark applies).
*/
if (!hParentItem || !TreeView_GetParent(g_pChildWnd->hTreeWnd, hParentItem))
{
EnableMenuItem(hMenuFrame , ID_EDIT_DELETE, MF_BYCOMMAND | MF_GRAYED);
EnableMenuItem(hMenuFrame , ID_EDIT_RENAME, MF_BYCOMMAND | MF_GRAYED);
EnableMenuItem(hPopupMenus, ID_TREE_DELETE, MF_BYCOMMAND | MF_GRAYED);
EnableMenuItem(hPopupMenus, ID_TREE_RENAME, MF_BYCOMMAND | MF_GRAYED);
}
else
{
EnableMenuItem(hMenuFrame , ID_EDIT_DELETE, MF_BYCOMMAND | MF_ENABLED);
EnableMenuItem(hMenuFrame , ID_EDIT_RENAME, MF_BYCOMMAND | MF_ENABLED);
EnableMenuItem(hPopupMenus, ID_TREE_DELETE, MF_BYCOMMAND | MF_ENABLED);
EnableMenuItem(hPopupMenus, ID_TREE_RENAME, MF_BYCOMMAND | MF_ENABLED);
}
break;
}
case NM_SETFOCUS:
g_pChildWnd->nFocusPanel = 0;
break;
case TVN_BEGINLABELEDIT:
{
LPNMTVDISPINFO ptvdi;
/* cancel label edit for rootkeys */
ptvdi = (LPNMTVDISPINFO) lParam;
if (!TreeView_GetParent(g_pChildWnd->hTreeWnd, ptvdi->item.hItem) ||
!TreeView_GetParent(g_pChildWnd->hTreeWnd, TreeView_GetParent(g_pChildWnd->hTreeWnd, ptvdi->item.hItem)))
return TRUE;
break;
}
case TVN_ENDLABELEDIT:
{
LPCWSTR keyPath;
HKEY hRootKey;
HKEY hKey = NULL;
LPNMTVDISPINFO ptvdi;
LONG lResult = TRUE;
WCHAR szBuffer[MAX_PATH];
ptvdi = (LPNMTVDISPINFO) lParam;
if (ptvdi->item.pszText)
{
keyPath = GetItemPath(g_pChildWnd->hTreeWnd, TreeView_GetParent(g_pChildWnd->hTreeWnd, ptvdi->item.hItem), &hRootKey);
_snwprintf(szBuffer, COUNT_OF(szBuffer), L"%s\\%s", keyPath, ptvdi->item.pszText);
keyPath = GetItemPath(g_pChildWnd->hTreeWnd, ptvdi->item.hItem, &hRootKey);
if (RegOpenKeyExW(hRootKey, szBuffer, 0, KEY_READ, &hKey) == ERROR_SUCCESS)
{
lResult = FALSE;
RegCloseKey(hKey);
(void)TreeView_EditLabel(g_pChildWnd->hTreeWnd, ptvdi->item.hItem);
}
else
{
if (RenameKey(hRootKey, keyPath, ptvdi->item.pszText) != ERROR_SUCCESS)
lResult = FALSE;
else
UpdateAddress(ptvdi->item.hItem, hRootKey, szBuffer);
}
return lResult;
}
}
default:
return 0;
}
return Result;
}
else
{
if ((int)wParam == LIST_WINDOW && g_pChildWnd != NULL)
if (((LPNMHDR)lParam)->idFrom == LIST_WINDOW)
{
switch (((LPNMHDR)lParam)->code)
{
case NM_SETFOCUS:
g_pChildWnd->nFocusPanel = 1;
break;
default:
if(!ListWndNotifyProc(g_pChildWnd->hListWnd, wParam, lParam, &Result))
{
goto def;
}
return Result;
break;
}
if (!ListWndNotifyProc(g_pChildWnd->hListWnd, wParam, lParam, &Result))
goto def;
return Result;
}
else
goto def;
}
break;
@ -697,13 +457,8 @@ LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa
HMENU hContextMenu;
TVITEMW item;
MENUITEMINFOW mii;
WCHAR resource[256];
WCHAR buffer[256];
LPWSTR s;
LPCWSTR keyPath;
HKEY hRootKey;
int iLastPos;
WORD wID;
BOOL isRoot;
pt.x = (short) LOWORD(lParam);
pt.y = (short) HIWORD(lParam);
@ -728,18 +483,25 @@ LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa
hti.pt.x = pt.x;
hti.pt.y = pt.y;
ScreenToClient(g_pChildWnd->hTreeWnd, &hti.pt);
(void)TreeView_HitTest(g_pChildWnd->hTreeWnd, &hti);
TreeView_HitTest(g_pChildWnd->hTreeWnd, &hti);
}
if (hti.flags & TVHT_ONITEM)
{
TreeView_SelectItem(g_pChildWnd->hTreeWnd, hti.hItem);
isRoot = (TreeView_GetParent(g_pChildWnd->hTreeWnd, hti.hItem) == NULL);
hContextMenu = GetSubMenu(hPopupMenus, PM_TREECONTEXT);
(void)TreeView_SelectItem(g_pChildWnd->hTreeWnd, hti.hItem);
/* idx1 'New' PopupMenu */
EnableMenuItem(hContextMenu, 1, isRoot? MF_BYPOSITION|MF_DISABLED|MF_GRAYED : MF_BYPOSITION|MF_ENABLED);
/* idx8 'Permissions' */
EnableMenuItem(hContextMenu, 8, isRoot? MF_BYPOSITION|MF_DISABLED|MF_GRAYED : MF_BYPOSITION|MF_ENABLED);
memset(&item, 0, sizeof(item));
item.mask = TVIF_STATE | TVIF_CHILDREN;
item.hItem = hti.hItem;
(void)TreeView_GetItem(g_pChildWnd->hTreeWnd, &item);
TreeView_GetItem(g_pChildWnd->hTreeWnd, &item);
/* Set the Expand/Collapse menu item appropriately */
LoadStringW(hInst, (item.state & TVIS_EXPANDED) ? IDS_COLLAPSE : IDS_EXPAND, buffer, COUNT_OF(buffer));
@ -750,49 +512,7 @@ LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa
mii.wID = (item.state & TVIS_EXPANDED) ? ID_TREE_COLLAPSEBRANCH : ID_TREE_EXPANDBRANCH;
mii.dwTypeData = (LPWSTR) buffer;
SetMenuItemInfo(hContextMenu, 0, TRUE, &mii);
/* Remove any existing suggestions */
memset(&mii, 0, sizeof(mii));
mii.cbSize = sizeof(mii);
mii.fMask = MIIM_ID;
GetMenuItemInfo(hContextMenu, GetMenuItemCount(hContextMenu) - 1, TRUE, &mii);
if ((mii.wID >= ID_TREE_SUGGESTION_MIN) && (mii.wID <= ID_TREE_SUGGESTION_MAX))
{
do
{
iLastPos = GetMenuItemCount(hContextMenu) - 1;
GetMenuItemInfo(hContextMenu, iLastPos, TRUE, &mii);
RemoveMenu(hContextMenu, iLastPos, MF_BYPOSITION);
}
while((mii.wID >= ID_TREE_SUGGESTION_MIN) && (mii.wID <= ID_TREE_SUGGESTION_MAX));
}
/* Come up with suggestions */
keyPath = GetItemPath(g_pChildWnd->hTreeWnd, NULL, &hRootKey);
SuggestKeys(hRootKey, keyPath, Suggestions, COUNT_OF(Suggestions));
if (Suggestions[0])
{
AppendMenu(hContextMenu, MF_SEPARATOR, 0, NULL);
LoadStringW(hInst, IDS_GOTO_SUGGESTED_KEY, resource, COUNT_OF(resource));
s = Suggestions;
wID = ID_TREE_SUGGESTION_MIN;
while(*s && (wID <= ID_TREE_SUGGESTION_MAX))
{
_snwprintf(buffer, COUNT_OF(buffer), resource, s);
memset(&mii, 0, sizeof(mii));
mii.cbSize = sizeof(mii);
mii.fMask = MIIM_STRING | MIIM_ID;
mii.wID = wID++;
mii.dwTypeData = buffer;
InsertMenuItem(hContextMenu, GetMenuItemCount(hContextMenu), TRUE, &mii);
s += wcslen(s) + 1;
}
}
TrackPopupMenu(hContextMenu, TPM_RIGHTBUTTON, pt.x, pt.y, 0, g_pChildWnd->hWnd, NULL);
TrackPopupMenu(hContextMenu, TPM_RIGHTBUTTON, pt.x, pt.y, 0, hFrameWnd, NULL);
}
}
break;

View file

@ -10,13 +10,13 @@ BEGIN
CHECKBOX "&Batas", 1713, 10, 30, 34, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "&Urut", 1705, 10, 40, 26, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Berita&hu", 1706, 10, 50, 32, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "V&ert. Bar Gulung", 1707, 10, 60, 64, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "&Multipel Pilihan", -1, 79, 20, 72, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP | WS_DISABLED
CHECKBOX "&Vert. Bar Gulung", 1707, 10, 60, 64, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Mu&ltipel Pilihan", -1, 79, 20, 72, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP | WS_DISABLED
CHECKBOX "&Perluasan Pilihan", -1, 79, 30, 77, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP | WS_DISABLED
CHECKBOX "&Popout Headings", 1714, 79, 40, 68, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "&Springy Kolom", 1715, 79, 50, 66, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "&Judul Popout", 1714, 79, 40, 68, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "&Kolom kenyal", 1715, 79, 50, 66, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
GROUPBOX "Gaya Dasar", -1, 6, 80, 158, 34
CHECKBOX "&Terlihat", 1701, 10, 92, 34, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "T&erlihat", 1701, 10, 92, 34, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "&Dimatikan", 1702, 10, 102, 41, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "&Grup", 1703, 79, 92, 32, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "&Tab Henti", 1704, 79, 102, 44, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP

View file

@ -3,7 +3,7 @@
* caemyr@gmail.com
* https://sourceforge.net/projects/reactospl
* Updated by Saibamen - Adam Stachowicz (saibamenppl@gmail.com) (August, 2011)
* UTF-8 conversion by Caemyr (May, 2011)
* UTF-8 conversion by Caemyr (May, 2011)
*/
LANGUAGE LANG_POLISH, SUBLANG_DEFAULT

View file

@ -1,6 +1,6 @@
/* TRANSLATOR : Mário Kačmár /Mario Kacmar/ aka Kario (kario@szm.sk)
* DATE OF TR.: 07-07-2008
*/
*/
LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT

View file

@ -4,10 +4,10 @@ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
IDD_COLUMNLISTBOXSTYLES DIALOGEX 0, 0, 227, 215
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Dikeçli Dizelge Kutusu Biçimleri"
CAPTION "Sütun Listesi Kutusu Biçimleri"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
GROUPBOX "Dikeçli Dizelge Kutusu Biçimleri", -1, 6, 7, 158, 71
GROUPBOX "Sütün Listesi Kutusu Biçimleri", -1, 6, 7, 158, 71
CHECKBOX "&Ölçünlü", 1710, 10, 20, 42, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "&Hudut", 1713, 10, 30, 34, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "&Diz", 1705, 10, 40, 26, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
@ -16,8 +16,8 @@ BEGIN
CHECKBOX "&Çoklu Seçim", -1, 79, 20, 72, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP | WS_DISABLED
CHECKBOX "&Genişletilmiş Seçim", -1, 79, 30, 77, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP | WS_DISABLED
CHECKBOX "&Açılan Başlıklar", 1714, 79, 40, 68, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "&Esnek Dikeçler", 1715, 79, 50, 66, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
GROUPBOX "Başlıca Biçimler", -1, 6, 80, 158, 34
CHECKBOX "&Esnek Sütunlar", 1715, 79, 50, 66, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
GROUPBOX "Temel Biçimler", -1, 6, 80, 158, 34
CHECKBOX "Gö&rünür", 1701, 10, 92, 34, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Edi&lgin", 1702, 10, 102, 41, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Öbe&kleme", 1703, 79, 92, 32, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP

View file

@ -32,7 +32,7 @@ static BOOL s_bAbort;
static DWORD s_dwFlags;
static WCHAR s_szName[MAX_PATH];
static DWORD s_cbName;
static DWORD s_cchName;
static const WCHAR s_empty[] = L"";
static const WCHAR s_backslash[] = L"\\";
@ -87,41 +87,31 @@ static BOOL CompareName(LPCWSTR pszName1, LPCWSTR pszName2)
}
}
static BOOL
CompareData(
DWORD dwType,
LPCWSTR psz1,
LPCWSTR psz2)
static BOOL MatchString(LPCWCH pch1, INT cch1, LPCWCH pch2, INT cch2)
{
INT i, cch1 = wcslen(psz1), cch2 = wcslen(psz2);
if (dwType == REG_SZ || dwType == REG_EXPAND_SZ)
{
if (s_dwFlags & RSF_WHOLESTRING)
{
if (s_dwFlags & RSF_MATCHCASE)
return 2 == CompareStringW(LOCALE_SYSTEM_DEFAULT, 0,
psz1, cch1, psz2, cch2);
else
return 2 == CompareStringW(LOCALE_SYSTEM_DEFAULT,
NORM_IGNORECASE, psz1, cch1, psz2, cch2);
}
INT i;
DWORD dwNorm = ((s_dwFlags & RSF_MATCHCASE) ? NORM_IGNORECASE : 0);
for(i = 0; i <= cch1 - cch2; i++)
{
if (s_dwFlags & RSF_MATCHCASE)
{
if (2 == CompareStringW(LOCALE_SYSTEM_DEFAULT, 0,
psz1 + i, cch2, psz2, cch2))
return TRUE;
}
else
{
if (2 == CompareStringW(LOCALE_SYSTEM_DEFAULT,
NORM_IGNORECASE, psz1 + i, cch2, psz2, cch2))
return TRUE;
}
}
if (s_dwFlags & RSF_WHOLESTRING)
return 2 == CompareStringW(LOCALE_SYSTEM_DEFAULT, dwNorm, pch1, cch1, pch2, cch2);
if (cch1 < cch2)
return FALSE;
for (i = 0; i <= cch1 - cch2; i++)
{
if (2 == CompareStringW(LOCALE_SYSTEM_DEFAULT, dwNorm, pch1 + i, cch2, pch2, cch2))
return TRUE;
}
return FALSE;
}
static BOOL MatchData(DWORD dwType, LPCVOID pv1, DWORD cb1)
{
if (dwType == REG_SZ || dwType == REG_EXPAND_SZ || dwType == REG_MULTI_SZ)
return MatchString(pv1, (INT)(cb1 / sizeof(WCHAR)), s_szFindWhat, lstrlenW(s_szFindWhat));
return FALSE;
}
@ -143,7 +133,7 @@ BOOL RegFindRecurse(
LONG lResult;
WCHAR szSubKey[MAX_PATH];
DWORD i, c, cb, type;
BOOL fPast = FALSE;
BOOL fPast;
LPWSTR *ppszNames = NULL;
LPBYTE pb = NULL;
@ -160,9 +150,6 @@ BOOL RegFindRecurse(
if (lResult != ERROR_SUCCESS)
return FALSE;
if (pszValueName == NULL)
pszValueName = s_empty;
lResult = RegQueryInfoKeyW(hSubKey, NULL, NULL, NULL, NULL, NULL, NULL,
&c, NULL, NULL, NULL, NULL);
if (lResult != ERROR_SUCCESS)
@ -177,8 +164,8 @@ BOOL RegFindRecurse(
if (DoEvents())
goto err;
s_cbName = MAX_PATH * sizeof(WCHAR);
lResult = RegEnumValueW(hSubKey, i, s_szName, &s_cbName, NULL, NULL,
s_cchName = _countof(s_szName);
lResult = RegEnumValueW(hSubKey, i, s_szName, &s_cchName, NULL, NULL,
NULL, &cb);
if (lResult == ERROR_NO_MORE_ITEMS)
{
@ -187,7 +174,7 @@ BOOL RegFindRecurse(
}
if (lResult != ERROR_SUCCESS)
goto err;
if (s_cbName >= MAX_PATH * sizeof(WCHAR))
if (s_cchName >= _countof(s_szName))
continue;
ppszNames[i] = _wcsdup(s_szName);
@ -195,6 +182,7 @@ BOOL RegFindRecurse(
qsort(ppszNames, c, sizeof(LPWSTR), compare);
fPast = (pszValueName == NULL);
for(i = 0; i < c; i++)
{
if (DoEvents())
@ -212,10 +200,7 @@ BOOL RegFindRecurse(
CompareName(ppszNames[i], s_szFindWhat))
{
*ppszFoundSubKey = _wcsdup(szSubKey);
if (ppszNames[i][0] == 0)
*ppszFoundValueName = NULL;
else
*ppszFoundValueName = _wcsdup(ppszNames[i]);
*ppszFoundValueName = _wcsdup(ppszNames[i]);
goto success;
}
@ -231,14 +216,10 @@ BOOL RegFindRecurse(
if (lResult != ERROR_SUCCESS)
goto err;
if ((s_dwFlags & RSF_LOOKATDATA) &&
CompareData(type, (LPWSTR) pb, s_szFindWhat))
if ((s_dwFlags & RSF_LOOKATDATA) && MatchData(type, pb, cb))
{
*ppszFoundSubKey = _wcsdup(szSubKey);
if (ppszNames[i][0] == 0)
*ppszFoundValueName = NULL;
else
*ppszFoundValueName = _wcsdup(ppszNames[i]);
*ppszFoundValueName = _wcsdup(ppszNames[i]);
goto success;
}
free(pb);
@ -267,8 +248,8 @@ BOOL RegFindRecurse(
if (DoEvents())
goto err;
s_cbName = MAX_PATH * sizeof(WCHAR);
lResult = RegEnumKeyExW(hSubKey, i, s_szName, &s_cbName, NULL, NULL,
s_cchName = _countof(s_szName);
lResult = RegEnumKeyExW(hSubKey, i, s_szName, &s_cchName, NULL, NULL,
NULL, NULL);
if (lResult == ERROR_NO_MORE_ITEMS)
{
@ -277,7 +258,7 @@ BOOL RegFindRecurse(
}
if (lResult != ERROR_SUCCESS)
goto err;
if (s_cbName >= MAX_PATH * sizeof(WCHAR))
if (s_cchName >= _countof(s_szName))
continue;
ppszNames[i] = _wcsdup(s_szName);
@ -366,17 +347,18 @@ BOOL RegFindWalk(
WCHAR szKeyName[MAX_PATH];
WCHAR szSubKey[MAX_PATH];
LPWSTR pch;
BOOL fPast;
BOOL fPast, fKeyMatched;
LPWSTR *ppszNames = NULL;
hBaseKey = *phKey;
if (wcslen(pszSubKey) >= _countof(szSubKey))
return FALSE;
if (RegFindRecurse(hBaseKey, pszSubKey, pszValueName, ppszFoundSubKey,
ppszFoundValueName))
return TRUE;
if (wcslen(pszSubKey) >= MAX_PATH)
return FALSE;
wcscpy(szSubKey, pszSubKey);
while(szSubKey[0] != 0)
{
@ -415,8 +397,8 @@ BOOL RegFindWalk(
if (DoEvents())
goto err;
s_cbName = MAX_PATH * sizeof(WCHAR);
lResult = RegEnumKeyExW(hSubKey, i, s_szName, &s_cbName,
s_cchName = _countof(s_szName);
lResult = RegEnumKeyExW(hSubKey, i, s_szName, &s_cchName,
NULL, NULL, NULL, NULL);
if (lResult == ERROR_NO_MORE_ITEMS)
{
@ -464,7 +446,8 @@ BOOL RegFindWalk(
goto success;
}
if (RegFindRecurse(hSubKey, ppszNames[i], NULL,
fKeyMatched = (_wcsicmp(ppszNames[i], szKeyName) == 0);
if (RegFindRecurse(hSubKey, ppszNames[i], (fKeyMatched ? pszValueName : NULL),
ppszFoundSubKey, ppszFoundValueName))
{
LPWSTR psz = *ppszFoundSubKey;
@ -687,10 +670,16 @@ BOOL FindNext(HWND hWnd)
{
GetKeyName(szFullKey, COUNT_OF(szFullKey), hKeyRoot, pszFoundSubKey);
SelectNode(g_pChildWnd->hTreeWnd, szFullKey);
SetValueName(g_pChildWnd->hListWnd, pszFoundValueName);
free(pszFoundSubKey);
free(pszFoundValueName);
SetFocus(g_pChildWnd->hListWnd);
if (pszFoundValueName != NULL)
{
SetValueName(g_pChildWnd->hListWnd, pszFoundValueName);
free(pszFoundValueName);
SetFocus(g_pChildWnd->hListWnd);
}
else
SetFocus(g_pChildWnd->hTreeWnd);
}
return fSuccess || s_bAbort;
}
@ -810,18 +799,23 @@ static INT_PTR CALLBACK FindDialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPAR
return iResult;
}
void FindNextMessageBox(HWND hWnd)
{
if (!FindNext(hWnd))
{
WCHAR msg[128], caption[128];
LoadStringW(hInst, IDS_FINISHEDFIND, msg, COUNT_OF(msg));
LoadStringW(hInst, IDS_APP_TITLE, caption, COUNT_OF(caption));
MessageBoxW(hWnd, msg, caption, MB_ICONINFORMATION);
}
}
void FindDialog(HWND hWnd)
{
if (DialogBoxParamW(GetModuleHandle(NULL), MAKEINTRESOURCEW(IDD_FIND),
hWnd, FindDialogProc, 0) != 0)
{
if (!FindNext(hWnd))
{
WCHAR msg[128], caption[128];
LoadStringW(hInst, IDS_FINISHEDFIND, msg, COUNT_OF(msg));
LoadStringW(hInst, IDS_APP_TITLE, caption, COUNT_OF(caption));
MessageBoxW(0, msg, caption, MB_ICONINFORMATION);
}
FindNextMessageBox(hWnd);
}
}

View file

@ -33,27 +33,19 @@
static WCHAR s_szFavoritesRegKey[] = L"Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Regedit\\Favorites";
static BOOL bInMenuLoop = FALSE; /* Tells us if we are in the menu loop */
/*******************************************************************************
* Local module support methods
*/
static void resize_frame_rect(HWND hWnd, PRECT prect)
{
RECT rt;
/*
if (IsWindowVisible(hToolBar)) {
SendMessageW(hToolBar, WM_SIZE, 0, 0);
GetClientRect(hToolBar, &rt);
prect->top = rt.bottom+3;
prect->bottom -= rt.bottom+3;
}
*/
if (IsWindowVisible(hStatusBar))
{
RECT rt;
SetupStatusBar(hWnd, TRUE);
GetClientRect(hStatusBar, &rt);
prect->bottom -= rt.bottom;
GetWindowRect(hStatusBar, &rt);
prect->bottom -= rt.bottom - rt.top;
}
MoveWindow(g_pChildWnd->hWnd, prect->left, prect->top, prect->right, prect->bottom, TRUE);
}
@ -287,7 +279,7 @@ static BOOL InitOpenFileName(HWND hWnd, OPENFILENAME* pofn)
pofn->nMaxFile = _MAX_PATH;
pofn->lpstrFileTitle = FileTitleBuffer;
pofn->nMaxFileTitle = _MAX_PATH;
pofn->Flags = OFN_HIDEREADONLY;
pofn->Flags = OFN_EXPLORER | OFN_HIDEREADONLY;
pofn->lpstrDefExt = L"reg";
return TRUE;
}
@ -389,7 +381,7 @@ static BOOL LoadHive(HWND hWnd)
/* refresh tree and list views */
RefreshTreeView(g_pChildWnd->hTreeWnd);
pszKeyPath = GetItemPath(g_pChildWnd->hTreeWnd, 0, &hRootKey);
RefreshListView(g_pChildWnd->hListWnd, hRootKey, pszKeyPath);
RefreshListView(g_pChildWnd->hListWnd, hRootKey, pszKeyPath, TRUE);
}
else
{
@ -427,7 +419,7 @@ static BOOL UnloadHive(HWND hWnd)
/* refresh tree and list views */
RefreshTreeView(g_pChildWnd->hTreeWnd);
pszKeyPath = GetItemPath(g_pChildWnd->hTreeWnd, 0, &hRootKey);
RefreshListView(g_pChildWnd->hListWnd, hRootKey, pszKeyPath);
RefreshListView(g_pChildWnd->hListWnd, hRootKey, pszKeyPath, TRUE);
}
else
{
@ -524,7 +516,7 @@ static BOOL ImportRegistryFile(HWND hWnd)
/* refresh tree and list views */
RefreshTreeView(g_pChildWnd->hTreeWnd);
pszKeyPath = GetItemPath(g_pChildWnd->hTreeWnd, 0, &hKeyRoot);
RefreshListView(g_pChildWnd->hListWnd, hKeyRoot, pszKeyPath);
RefreshListView(g_pChildWnd->hListWnd, hKeyRoot, pszKeyPath, TRUE);
return bRet;
}
@ -573,7 +565,7 @@ static UINT_PTR CALLBACK ExportRegistryFile_OFNHookProc(HWND hdlg, UINT uiMsg, W
{
GetWindowTextW(hwndExportBranchText, pszSelectedKey, _MAX_PATH);
}
else
else if (pszSelectedKey)
{
pszSelectedKey[0] = L'\0';
}
@ -883,7 +875,7 @@ static BOOL CreateNewValue(HKEY hRootKey, LPCWSTR pszKeyPath, DWORD dwType)
return FALSE;
}
RefreshListView(g_pChildWnd->hListWnd, hRootKey, pszKeyPath);
RefreshListView(g_pChildWnd->hListWnd, hRootKey, pszKeyPath, TRUE);
/* locate the newly added value, and get ready to rename it */
memset(&lvfi, 0, sizeof(lvfi));
@ -891,7 +883,12 @@ static BOOL CreateNewValue(HKEY hRootKey, LPCWSTR pszKeyPath, DWORD dwType)
lvfi.psz = szNewValue;
iIndex = ListView_FindItem(g_pChildWnd->hListWnd, -1, &lvfi);
if (iIndex >= 0)
{
ListView_SetItemState(g_pChildWnd->hListWnd, iIndex,
LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
ListView_EnsureVisible(g_pChildWnd->hListWnd, iIndex, FALSE);
(void)ListView_EditLabel(g_pChildWnd->hListWnd, iIndex);
}
return TRUE;
}
@ -1134,11 +1131,11 @@ static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
case ID_EDIT_MODIFY:
if (valueName && ModifyValue(hWnd, hKey, valueName, FALSE))
RefreshListView(g_pChildWnd->hListWnd, hKeyRoot, keyPath);
RefreshListView(g_pChildWnd->hListWnd, hKeyRoot, keyPath, FALSE);
break;
case ID_EDIT_MODIFY_BIN:
if (valueName && ModifyValue(hWnd, hKey, valueName, TRUE))
RefreshListView(g_pChildWnd->hListWnd, hKeyRoot, keyPath);
RefreshListView(g_pChildWnd->hListWnd, hKeyRoot, keyPath, FALSE);
break;
case ID_EDIT_RENAME:
if (GetFocus() == g_pChildWnd->hListWnd)
@ -1186,7 +1183,7 @@ static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
item = ni;
}
RefreshListView(g_pChildWnd->hListWnd, hKeyRoot, keyPath);
RefreshListView(g_pChildWnd->hListWnd, hKeyRoot, keyPath, FALSE);
if(errs > 0)
{
LoadStringW(hInst, IDS_ERR_DELVAL_CAPTION, caption, COUNT_OF(caption));
@ -1229,7 +1226,7 @@ static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
FindDialog(hWnd);
break;
case ID_EDIT_FINDNEXT:
FindNext(hWnd);
FindNextMessageBox(hWnd);
break;
case ID_EDIT_COPYKEYNAME:
CopyKeyName(hWnd, hKeyRoot, keyPath);
@ -1249,7 +1246,7 @@ static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
case ID_VIEW_REFRESH:
RefreshTreeView(g_pChildWnd->hTreeWnd);
keyPath = GetItemPath(g_pChildWnd->hTreeWnd, 0, &hKeyRoot);
RefreshListView(g_pChildWnd->hListWnd, hKeyRoot, keyPath);
RefreshListView(g_pChildWnd->hListWnd, hKeyRoot, keyPath, TRUE);
break;
/*case ID_OPTIONS_TOOLBAR:*/
/* toggle_child(hWnd, LOWORD(wParam), hToolBar);*/
@ -1257,6 +1254,34 @@ static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
case ID_EDIT_NEW_KEY:
CreateNewKey(g_pChildWnd->hTreeWnd, TreeView_GetSelection(g_pChildWnd->hTreeWnd));
break;
case ID_TREE_EXPANDBRANCH:
TreeView_Expand(g_pChildWnd->hTreeWnd, TreeView_GetSelection(g_pChildWnd->hTreeWnd), TVE_EXPAND);
break;
case ID_TREE_COLLAPSEBRANCH:
TreeView_Expand(g_pChildWnd->hTreeWnd, TreeView_GetSelection(g_pChildWnd->hTreeWnd), TVE_COLLAPSE);
break;
case ID_TREE_RENAME:
SetFocus(g_pChildWnd->hTreeWnd);
TreeView_EditLabel(g_pChildWnd->hTreeWnd, TreeView_GetSelection(g_pChildWnd->hTreeWnd));
break;
case ID_TREE_DELETE:
keyPath = GetItemPath(g_pChildWnd->hTreeWnd, TreeView_GetSelection(g_pChildWnd->hTreeWnd), &hKeyRoot);
if (keyPath == 0 || *keyPath == 0)
MessageBeep(MB_ICONHAND);
else if (DeleteKey(hWnd, hKeyRoot, keyPath))
DeleteNode(g_pChildWnd->hTreeWnd, 0);
break;
case ID_TREE_EXPORT:
ExportRegistryFile(g_pChildWnd->hTreeWnd);
break;
case ID_TREE_PERMISSIONS:
keyPath = GetItemPath(g_pChildWnd->hTreeWnd, TreeView_GetSelection(g_pChildWnd->hTreeWnd), &hKeyRoot);
RegKeyEditPermissions(hWnd, hKeyRoot, NULL, keyPath);
break;
case ID_SWITCH_PANELS:
g_pChildWnd->nFocusPanel = !g_pChildWnd->nFocusPanel;
SetFocus(g_pChildWnd->nFocusPanel? g_pChildWnd->hListWnd: g_pChildWnd->hTreeWnd);
break;
default:
if ((LOWORD(wParam) >= ID_FAVORITES_MIN) && (LOWORD(wParam) <= ID_FAVORITES_MAX))
{
@ -1303,14 +1328,16 @@ static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
LRESULT CALLBACK FrameWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
RECT rc;
switch (message)
{
case WM_CREATE:
// For now, the Help dialog item is disabled because of lacking of HTML Help support
EnableMenuItem(GetMenu(hWnd), ID_HELP_HELPTOPICS, MF_BYCOMMAND | MF_GRAYED);
GetClientRect(hWnd, &rc);
CreateWindowExW(0, szChildClass, NULL, WS_CHILD | WS_VISIBLE,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
hWnd, (HMENU)0, hInst, 0);
rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top,
hWnd, (HMENU)0, hInst, 0);
break;
case WM_COMMAND:
if (!_CmdWndProc(hWnd, message, wParam, lParam))

View file

@ -134,7 +134,7 @@ BEGIN
MENUITEM "&Преименуване", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Износ", ID_TREE_EXPORT
MENUITEM "&Права...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "&Права...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Запомняне стойността на ключа", ID_EDIT_COPYKEYNAME
END
@ -393,7 +393,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "&Разгръщане"
IDS_COLLAPSE "&Свиване"
IDS_GOTO_SUGGESTED_KEY "&Отиване на '%s'"
IDS_FINISHEDFIND "Търсенето в регистъра приключи."
END

View file

@ -129,7 +129,7 @@ BEGIN
MENUITEM "&Přejmenovat", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Exportovat", ID_TREE_EXPORT
MENUITEM "Oprá&vnění...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "Oprá&vnění...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "Z&kopírovat název klíče", ID_EDIT_COPYKEYNAME
END
@ -388,7 +388,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "&Rozbalit"
IDS_COLLAPSE "&Sbalit"
IDS_GOTO_SUGGESTED_KEY "&Jít na '%s'"
IDS_FINISHEDFIND "Prohledávání registru bylo dokončeno."
END

View file

@ -129,7 +129,7 @@ BEGIN
MENUITEM "&Umbenennen", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Exportieren", ID_TREE_EXPORT
MENUITEM "&Berechtigungen...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "&Berechtigungen...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "S&chlüsselnamen kopieren", ID_EDIT_COPYKEYNAME
END
@ -388,7 +388,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "&Expandieren"
IDS_COLLAPSE "&Schließen"
IDS_GOTO_SUGGESTED_KEY "&Gehe zu '%s'"
IDS_FINISHEDFIND "Durchsuchen der Registry beendet."
END

View file

@ -28,7 +28,7 @@ IDR_REGEDIT_MENU MENU
BEGIN
POPUP "&Αρχείο"
BEGIN
MENUITEM "&Εισαγωγή ...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Εισαγωγή...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Εξαγωγή...", ID_REGISTRY_EXPORTREGISTRYFILE
MENUITEM SEPARATOR
MENUITEM "Φόρτωση Hive...", ID_REGISTRY_LOADHIVE, GRAYED
@ -129,7 +129,7 @@ BEGIN
MENUITEM "&Μετονομασία", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Εξαγωγή", ID_TREE_EXPORT
MENUITEM "&Δικαιώματα...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "&Δικαιώματα...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Αντιγραφή Ονόματος Κλειδιού", ID_EDIT_COPYKEYNAME
END
@ -388,7 +388,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "&Expand"
IDS_COLLAPSE "&Collapse"
IDS_GOTO_SUGGESTED_KEY "&Μετάβαση σε '%s'"
IDS_FINISHEDFIND "Τέλος αναζήτησης στη registry."
END

View file

@ -28,7 +28,7 @@ IDR_REGEDIT_MENU MENU
BEGIN
POPUP "&File"
BEGIN
MENUITEM "&Import ...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Import...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Export...", ID_REGISTRY_EXPORTREGISTRYFILE
MENUITEM SEPARATOR
MENUITEM "Load Hive...", ID_REGISTRY_LOADHIVE, GRAYED
@ -129,7 +129,7 @@ BEGIN
MENUITEM "&Rename", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Export", ID_TREE_EXPORT
MENUITEM "&Permissions...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "&Permissions...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Copy Key Name", ID_EDIT_COPYKEYNAME
END
@ -388,7 +388,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "&Expand"
IDS_COLLAPSE "&Collapse"
IDS_GOTO_SUGGESTED_KEY "&Go to '%s'"
IDS_FINISHEDFIND "Finished searching through the registry."
END

View file

@ -29,7 +29,7 @@ END
IDR_REGEDIT_MENU MENU
BEGIN
POPUP "&Registro"
POPUP "&Archivo"
BEGIN
MENUITEM "&Importar archivo...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Exportar archivo...", ID_REGISTRY_EXPORTREGISTRYFILE
@ -132,7 +132,7 @@ BEGIN
MENUITEM "&Renombrar", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Exportar", ID_TREE_EXPORT
MENUITEM "&Permisos...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "&Permisos...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Copiar nombre de clave", ID_EDIT_COPYKEYNAME
END
@ -391,7 +391,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "&Expandir"
IDS_COLLAPSE "&Contraer"
IDS_GOTO_SUGGESTED_KEY "&Ir a '%s'"
IDS_FINISHEDFIND "Ha terminado la búsqueda en el Registro."
END

View file

@ -129,7 +129,7 @@ BEGIN
MENUITEM "&Renommer\tF2", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Exporter", ID_TREE_EXPORT
MENUITEM "&Permissions...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "&Permissions...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Copier le nom de la clé", ID_EDIT_COPYKEYNAME
END
@ -388,7 +388,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "Dérouler"
IDS_COLLAPSE "Réduire"
IDS_GOTO_SUGGESTED_KEY "Aller à '%s'"
IDS_FINISHEDFIND "Recherche dans le registre terminée."
END
@ -507,11 +506,11 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Chercher"
FONT 8, "MS Shell Dlg"
BEGIN
DEFPUSHBUTTON "Chercher le suivant", IDOK, 197, 7, 50, 14
PUSHBUTTON "Annuler", IDCANCEL, 197, 24, 50, 14
DEFPUSHBUTTON "Chercher le suivant", IDOK, 185, 7, 67, 14
PUSHBUTTON "Annuler", IDCANCEL, 185, 24, 67, 14
GROUPBOX "Rechercher", IDC_STATIC, 7, 25, 63, 51
LTEXT "Rechercher :", IDC_STATIC, 7, 8, 37, 10
EDITTEXT IDC_FINDWHAT, 47, 7, 142, 13, ES_AUTOHSCROLL
LTEXT "Rechercher :", IDC_STATIC, 7, 8, 42, 10
EDITTEXT IDC_FINDWHAT, 48, 7, 133, 13, ES_AUTOHSCROLL
CONTROL "Clés", IDC_LOOKAT_KEYS, "Button", BS_AUTOCHECKBOX |
WS_TABSTOP, 14, 36, 35, 8
CONTROL "&Valeurs", IDC_LOOKAT_VALUES, "Button", BS_AUTOCHECKBOX |
@ -519,7 +518,7 @@ BEGIN
CONTROL "&Données", IDC_LOOKAT_DATA, "Button", BS_AUTOCHECKBOX |
WS_TABSTOP, 14, 60, 42, 8
CONTROL "Chaîne complète seulement", IDC_MATCHSTRING, "Button", BS_AUTOCHECKBOX |
WS_TABSTOP, 83, 32, 94, 13
WS_TABSTOP, 83, 32, 99, 13
CONTROL "Sensible à la casse", IDC_MATCHCASE, "Button", BS_AUTOCHECKBOX |
WS_TABSTOP, 83, 48, 90, 12
END

View file

@ -129,7 +129,7 @@ BEGIN
MENUITEM "שנה שם", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "יצא", ID_TREE_EXPORT
MENUITEM "הרשאות...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "הרשאות...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "העתק שם מפתח", ID_EDIT_COPYKEYNAME
END
@ -388,7 +388,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "הרחב"
IDS_COLLAPSE "כווץ"
IDS_GOTO_SUGGESTED_KEY "עבור אל '%s'"
IDS_FINISHEDFIND "Finished searching through the registry."
END

View file

@ -129,7 +129,7 @@ BEGIN
MENUITEM "&Rename", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Export", ID_TREE_EXPORT
MENUITEM "&Permissions...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "&Permissions...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Copy Key Name", ID_EDIT_COPYKEYNAME
END
@ -388,7 +388,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "&Expand"
IDS_COLLAPSE "&Collapse"
IDS_GOTO_SUGGESTED_KEY "&Go to '%s'"
IDS_FINISHEDFIND "Finished searching through the registry."
END

View file

@ -28,10 +28,10 @@ IDR_REGEDIT_MENU MENU
BEGIN
POPUP "&File"
BEGIN
MENUITEM "&Impor ...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Impor...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Ekspor...", ID_REGISTRY_EXPORTREGISTRYFILE
MENUITEM SEPARATOR
MENUITEM "Ambil Hive...", ID_REGISTRY_LOADHIVE, GRAYED
MENUITEM "Muat Hive...", ID_REGISTRY_LOADHIVE, GRAYED
MENUITEM "Buang Hive...", ID_REGISTRY_UNLOADHIVE, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Sambung Registri Jaringan...", ID_REGISTRY_CONNECTNETWORKREGISTRY
@ -43,7 +43,7 @@ BEGIN
END
POPUP "&Edit"
BEGIN
MENUITEM "&Modifikasi", ID_EDIT_MODIFY
MENUITEM "&Ubah", ID_EDIT_MODIFY
MENUITEM SEPARATOR
POPUP "&Baru"
BEGIN
@ -91,8 +91,8 @@ IDR_POPUP_MENUS MENU
BEGIN
POPUP ""
BEGIN
MENUITEM "&Modifikasi", ID_EDIT_MODIFY
MENUITEM "Modifikasi Data Biner", ID_EDIT_MODIFY_BIN
MENUITEM "&Ubah", ID_EDIT_MODIFY
MENUITEM "Ubah Data Biner", ID_EDIT_MODIFY_BIN
MENUITEM SEPARATOR
MENUITEM "&Hapus\tDel", ID_EDIT_DELETE
MENUITEM "&Ganti nama", ID_EDIT_RENAME
@ -129,9 +129,9 @@ BEGIN
MENUITEM "&Ganti nama", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Ekspor", ID_TREE_EXPORT
MENUITEM "&Perijinan...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "&Perijinan...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Copy Nama Kunci", ID_EDIT_COPYKEYNAME
MENUITEM "Copy Nama Kunci", ID_EDIT_COPYKEYNAME
END
POPUP ""
BEGIN
@ -270,7 +270,7 @@ STRINGTABLE
BEGIN
ID_REGISTRY_MENU "Berisi perintah untuk bekerja dengan registri keseluruhan"
ID_EDIT_MENU "Berisi perintah untuk mengedit nilai atau kunci"
ID_VIEW_MENU "Berisi perintah untuk mengkustomisasi jendela registri"
ID_VIEW_MENU "Berisi perintah untuk mengatur jendela registri"
ID_FAVOURITES_MENU "Berisi perintah untuk mengakses kunci yang sering digunakan"
ID_HELP_MENU "Berisi perintah untuk menampilkan bantuan dan informasi mengenai editor registri"
ID_EDIT_NEW_MENU "Berisi perintah untuk membuat kunci atau nilai baru"
@ -278,7 +278,7 @@ END
STRINGTABLE
BEGIN
ID_EDIT_MODIFY "Memodifikasi data nilail"
ID_EDIT_MODIFY "Mengubah data nilai"
ID_EDIT_NEW_KEY "Menambah kunci baru"
ID_EDIT_NEW_STRINGVALUE "Menambah nilai string baru"
ID_EDIT_NEW_BINARYVALUE "Menambah nilai biner baru"
@ -386,9 +386,8 @@ END
STRINGTABLE
BEGIN
IDS_EXPAND "&Lebarkan"
IDS_EXPAND "Pe&rluas"
IDS_COLLAPSE "&Sempitkan"
IDS_GOTO_SUGGESTED_KEY "&Pergi ke '%s'"
IDS_FINISHEDFIND "Selesai mencari seluruh registri."
END

View file

@ -26,7 +26,7 @@ END
IDR_REGEDIT_MENU MENU
BEGIN
POPUP "&Registro"
POPUP "&File"
BEGIN
MENUITEM "&Importa...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Esporta...", ID_REGISTRY_EXPORTREGISTRYFILE
@ -129,7 +129,7 @@ BEGIN
MENUITEM "&Rinomina", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Esporta", ID_TREE_EXPORT
MENUITEM "&Permessi...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "&Permessi...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Copia il nome della chiave", ID_EDIT_COPYKEYNAME
END
@ -388,7 +388,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "&Espandi"
IDS_COLLAPSE "&Raccogli"
IDS_GOTO_SUGGESTED_KEY "&Vai a '%s'"
IDS_FINISHEDFIND "Fine ricerca nel registro."
END

View file

@ -129,7 +129,7 @@ BEGIN
MENUITEM "名前の変更(&R)", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "エクスポート(&E)", ID_TREE_EXPORT
MENUITEM "アクセス許可(&P)...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "アクセス許可(&P)...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "キー名のコピー(&C)", ID_EDIT_COPYKEYNAME
END
@ -388,7 +388,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "展開(&E)"
IDS_COLLAPSE "閉じる(&C)"
IDS_GOTO_SUGGESTED_KEY "'%s' へ移動する(&G)"
IDS_FINISHEDFIND "レジストリをすべて検索しました。"
END

View file

@ -131,7 +131,7 @@ BEGIN
MENUITEM "이름 바꾸기(&R)", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "내보내기(&E)", ID_TREE_EXPORT
MENUITEM "권한 설정(&P)", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "권한 설정(&P)", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "키 이름 복사(&C)", ID_EDIT_COPYKEYNAME
END
@ -390,7 +390,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "확장(&E)"
IDS_COLLAPSE "축소(&C)"
IDS_GOTO_SUGGESTED_KEY "'%s'로 가기(&G)"
IDS_FINISHEDFIND "레지스트리 검색을 완료했습니다."
END

View file

@ -129,7 +129,7 @@ BEGIN
MENUITEM "&Rename", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Export", ID_TREE_EXPORT
MENUITEM "&Permissions...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "&Permissions...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Copy Key Name", ID_EDIT_COPYKEYNAME
END
@ -388,7 +388,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "&Expand"
IDS_COLLAPSE "&Collapse"
IDS_GOTO_SUGGESTED_KEY "&Go to '%s'"
IDS_FINISHEDFIND "Finished searching through the registry."
END

View file

@ -28,7 +28,7 @@ IDR_REGEDIT_MENU MENU
BEGIN
POPUP "&Fil"
BEGIN
MENUITEM "&Import ...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Import...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Eksport...", ID_REGISTRY_EXPORTREGISTRYFILE
MENUITEM SEPARATOR
MENUITEM "Last inn struktur...", ID_REGISTRY_LOADHIVE, GRAYED
@ -129,7 +129,7 @@ BEGIN
MENUITEM "&Gi nytt navn", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Eksport", ID_TREE_EXPORT
MENUITEM "&Rettigheter...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "&Rettigheter...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Kopier nøkkelnavn", ID_EDIT_COPYKEYNAME
END
@ -388,7 +388,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "&Utvid"
IDS_COLLAPSE "&Minimer"
IDS_GOTO_SUGGESTED_KEY "&Gå til '%s'"
IDS_FINISHEDFIND "Søket i registret er fullført."
END

View file

@ -2,10 +2,10 @@
* Update by Caemyr - Olaf Siejka (Jan, 2007; May, 2011)
* Use ReactOS forum PM or IRC to contact me
* https://reactos.org
* IRC: irc.freenode.net #reactos-pl;
* IRC: irc.freenode.net #reactos-pl;
* Updated by Saibamen - Adam Stachowicz (saibamenppl@gmail.com) (August, 2011)
* UTF-8 conversion by Caemyr (May, 2011)
* Update by wojo664 (04.08.2011)
* UTF-8 conversion by Caemyr (May, 2011)
* Update by wojo664 (04.08.2011)
*/
LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
@ -139,7 +139,7 @@ BEGIN
MENUITEM "Z&mień nazwę", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Eksportuj", ID_TREE_EXPORT
MENUITEM "&Uprawnienia..", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "&Uprawnienia..", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Kopiuj nazwę klucza", ID_EDIT_COPYKEYNAME
END
@ -398,7 +398,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "&Rozwiń"
IDS_COLLAPSE "&Zwiń"
IDS_GOTO_SUGGESTED_KEY "&Idź do '%s'"
IDS_FINISHEDFIND "Przeszukiwanie rejestru zakończone."
END

View file

@ -129,7 +129,7 @@ BEGIN
MENUITEM "&Renomear", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Exportar", ID_TREE_EXPORT
MENUITEM "&Permissões...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "&Permissões...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Copiar nome da chave", ID_EDIT_COPYKEYNAME
END
@ -388,7 +388,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "&Expandir"
IDS_COLLAPSE "&Reduzir"
IDS_GOTO_SUGGESTED_KEY "&Ir para '%s'"
IDS_FINISHEDFIND "Pesquisa do Registro concluída."
END

View file

@ -26,16 +26,16 @@ END
IDR_REGEDIT_MENU MENU
BEGIN
POPUP "&Registro"
POPUP "&Registo"
BEGIN
MENUITEM "&Importar arquivo do Registro...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Exportar arquivo do Registro...", ID_REGISTRY_EXPORTREGISTRYFILE
MENUITEM "&Importar arquivo do Registo...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Exportar arquivo do Registo...", ID_REGISTRY_EXPORTREGISTRYFILE
MENUITEM SEPARATOR
MENUITEM "Load Hive...", ID_REGISTRY_LOADHIVE, GRAYED
MENUITEM "Unload Hive...", ID_REGISTRY_UNLOADHIVE, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Conectar Registro da rede...", ID_REGISTRY_CONNECTNETWORKREGISTRY
MENUITEM "&Desconectar Registro da rede...", ID_REGISTRY_DISCONNECTNETWORKREGISTRY, GRAYED
MENUITEM "&Ligar Registo da rede...", ID_REGISTRY_CONNECTNETWORKREGISTRY
MENUITEM "&Desligar Registo da rede...", ID_REGISTRY_DISCONNECTNETWORKREGISTRY, GRAYED
MENUITEM SEPARATOR
MENUITEM "Im&primir...\tCtrl+P", ID_REGISTRY_PRINT, GRAYED
MENUITEM SEPARATOR
@ -66,7 +66,7 @@ BEGIN
MENUITEM "&Localizar...\tCtrl+F", ID_EDIT_FIND
MENUITEM "L&ocalizar próxima\tF3", ID_EDIT_FINDNEXT
END
POPUP "E&xibir"
POPUP "&Ver"
BEGIN
MENUITEM "&Barra de status", ID_VIEW_STATUSBAR
MENUITEM SEPARATOR
@ -83,7 +83,7 @@ BEGIN
BEGIN
MENUITEM "&Topics da Ajuda", ID_HELP_HELPTOPICS
MENUITEM SEPARATOR
MENUITEM "&Sobre o Editor do Registro", ID_HELP_ABOUT
MENUITEM "&Sobre o Editor do Registo", ID_HELP_ABOUT
END
END
@ -129,7 +129,7 @@ BEGIN
MENUITEM "&Rename", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Export", ID_TREE_EXPORT
MENUITEM "&Permissions...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "&Permissions...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Copy Key Name", ID_EDIT_COPYKEYNAME
END
@ -261,18 +261,18 @@ END
STRINGTABLE
BEGIN
IDS_APP_TITLE "Editor do Registro"
IDS_APP_TITLE "Editor do Registo"
IDC_REGEDIT "REGEDIT"
IDC_REGEDIT_FRAME "REGEDIT_FRAME"
END
STRINGTABLE
BEGIN
ID_REGISTRY_MENU "Contém comandos para trabalhar com o Registro inteiro."
ID_REGISTRY_MENU "Contém comandos para trabalhar com o Registo inteiro."
ID_EDIT_MENU "Contém comandos para edição de valores ou chaves."
ID_VIEW_MENU "Contém comandos para personalização da janela do Registro."
ID_VIEW_MENU "Contém comandos para personalização da janela do Registo."
ID_FAVOURITES_MENU "Contém comandos para acessar chaves frequentemente usadas."
ID_HELP_MENU "Contém comandos para exibição da ajuda e informações sobre o Editor do Registro."
ID_HELP_MENU "Contém comandos para exibição da ajuda e informações sobre o Editor do Registo."
ID_EDIT_NEW_MENU "Contém comandos para criação de novas chaves ou valores"
END
@ -283,20 +283,20 @@ BEGIN
ID_EDIT_NEW_STRINGVALUE "Adiciona um novo valor texto."
ID_EDIT_NEW_BINARYVALUE "Adiciona um novo valor binário."
ID_EDIT_NEW_DWORDVALUE "Adiciona um novo valor DWORD."
ID_REGISTRY_IMPORTREGISTRYFILE "Importa um arquivo texto para o registro."
ID_REGISTRY_EXPORTREGISTRYFILE "Exporta todo ou parte do registro para um arquivo texto."
ID_REGISTRY_IMPORTREGISTRYFILE "Importa um arquivo texto para o registo."
ID_REGISTRY_EXPORTREGISTRYFILE "Exporta todo ou parte do registo para um arquivo texto."
ID_REGISTRY_LOADHIVE "Loads a hive file into the registry"
ID_REGISTRY_UNLOADHIVE "Unloads a hive from the registry"
ID_REGISTRY_CONNECTNETWORKREGISTRY "Conecta a um registro em um computador remoto."
ID_REGISTRY_DISCONNECTNETWORKREGISTRY "Desconecta de um registro um computador remoto."
ID_REGISTRY_PRINT "Imprime todo ou parte do registro."
ID_REGISTRY_CONNECTNETWORKREGISTRY "Liga a um registo num computador remoto."
ID_REGISTRY_DISCONNECTNETWORKREGISTRY "Desliga um registo de um computador remoto."
ID_REGISTRY_PRINT "Imprime todo ou parte do registo."
/* ID_HELP_HELPTOPICS "Abre a ajuda do Editor do Registro." */
ID_HELP_ABOUT "Exibe informações do programa, número da versão e copyright."
END
STRINGTABLE
BEGIN
ID_REGISTRY_EXIT "Encerra o Editor do Registro."
ID_REGISTRY_EXIT "Encerra o Editor do Registo."
ID_FAVOURITES_ADDTOFAVOURITES "Adiciona chaves a lista de favoritos."
ID_FAVOURITES_REMOVEFAVOURITE "Remove chaves da lista de favoritos."
ID_VIEW_STATUSBAR "Mostra ou oculta a barra de status."
@ -388,7 +388,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "&Expand"
IDS_COLLAPSE "&Collapse"
IDS_GOTO_SUGGESTED_KEY "&Go to '%s'"
IDS_FINISHEDFIND "Finished searching through the registry."
END

View file

@ -131,7 +131,7 @@ BEGIN
MENUITEM "&Redenumește", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "E&xportă", ID_TREE_EXPORT
MENUITEM "Permisiuni…", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "Permisiuni…", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Copiază numele cheii", ID_EDIT_COPYKEYNAME
END
@ -390,7 +390,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "&Extinde"
IDS_COLLAPSE "&Restrânge"
IDS_GOTO_SUGGESTED_KEY "S&alt la „%s”"
IDS_FINISHEDFIND "Căutarea în registru a fost finalizată."
END

View file

@ -26,10 +26,10 @@ END
IDR_REGEDIT_MENU MENU
BEGIN
POPUP "&Реестр"
POPUP "&Файл"
BEGIN
MENUITEM "&Импортировать файл реестра...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Экспортировать файл реестра...", ID_REGISTRY_EXPORTREGISTRYFILE
MENUITEM "&Импортировать из файла...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Экспортировать в файл...", ID_REGISTRY_EXPORTREGISTRYFILE
MENUITEM SEPARATOR
MENUITEM "Загрузить куст...", ID_REGISTRY_LOADHIVE, GRAYED
MENUITEM "Выгрузить куст...", ID_REGISTRY_UNLOADHIVE, GRAYED
@ -56,7 +56,7 @@ BEGIN
MENUITEM "Рас&ширяемый строковый параметр", ID_EDIT_NEW_EXPANDABLESTRINGVALUE
END
MENUITEM SEPARATOR
MENUITEM "&Права доступа...", ID_EDIT_PERMISSIONS
MENUITEM "Разре&шения...", ID_EDIT_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Удалить\tDel", ID_EDIT_DELETE
MENUITEM "&Переименовать", ID_EDIT_RENAME
@ -129,7 +129,7 @@ BEGIN
MENUITEM "&Переименовать", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Экспорт", ID_TREE_EXPORT
MENUITEM "Разре&шения...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "Разре&шения...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Копировать имя ключа", ID_EDIT_COPYKEYNAME
END
@ -367,8 +367,8 @@ BEGIN
IDS_ACCESS_READ "Чтение"
IDS_ACCESS_QUERYVALUE "Запрос значений"
IDS_ACCESS_SETVALUE "Установка значений"
IDS_ACCESS_CREATESUBKEY "Создание подключей"
IDS_ACCESS_ENUMERATESUBKEYS "Перечисление подключей"
IDS_ACCESS_CREATESUBKEY "Создание разделов"
IDS_ACCESS_ENUMERATESUBKEYS "Перечисление разделов"
IDS_ACCESS_NOTIFY "Уведомление"
IDS_ACCESS_CREATELINK "Создание связи"
IDS_ACCESS_DELETE "Удаление"
@ -388,7 +388,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "&Развернуть"
IDS_COLLAPSE "&Свернуть"
IDS_GOTO_SUGGESTED_KEY "&Перейти к '%s'"
IDS_FINISHEDFIND "Поиск в реестре завершен."
END

View file

@ -1,7 +1,7 @@
/* TRANSLATOR : Mário Kačmár /Mario Kacmar/ aka Kario (kario@szm.sk)
* DATE OF TR.: 07-07-2008
* LAST CHANGE: 29-07-2010
*/
* LAST CHANGE: 29-07-2010
*/
LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT
@ -134,7 +134,7 @@ BEGIN
MENUITEM "&Premenovať", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Export", ID_TREE_EXPORT
MENUITEM "&Permissions...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "&Permissions...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Copy Key Name", ID_EDIT_COPYKEYNAME
END
@ -393,7 +393,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "&Expand"
IDS_COLLAPSE "&Collapse"
IDS_GOTO_SUGGESTED_KEY "&Go to '%s'"
IDS_FINISHEDFIND "Finished searching through the registry."
END

View file

@ -28,14 +28,14 @@ IDR_REGEDIT_MENU MENU
BEGIN
POPUP "&Register"
BEGIN
MENUITEM "&Uvozi registrsko datoteko ...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Izvozi registrsko datoteko ...", ID_REGISTRY_EXPORTREGISTRYFILE
MENUITEM "&Uvozi registrsko datoteko...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Izvozi registrsko datoteko...", ID_REGISTRY_EXPORTREGISTRYFILE
MENUITEM SEPARATOR
MENUITEM "Load Hive...", ID_REGISTRY_LOADHIVE, GRAYED
MENUITEM "Unload Hive...", ID_REGISTRY_UNLOADHIVE, GRAYED
MENUITEM SEPARATOR
MENUITEM "P&oveži se z omrežnim registrom ...", ID_REGISTRY_CONNECTNETWORKREGISTRY
MENUITEM "P&rekini povezavo z omrežnim registrom ...", ID_REGISTRY_DISCONNECTNETWORKREGISTRY, GRAYED
MENUITEM "P&oveži se z omrežnim registrom...", ID_REGISTRY_CONNECTNETWORKREGISTRY
MENUITEM "P&rekini povezavo z omrežnim registrom...", ID_REGISTRY_DISCONNECTNETWORKREGISTRY, GRAYED
MENUITEM SEPARATOR
MENUITEM "Na&tisni...\tCtrl+P", ID_REGISTRY_PRINT, GRAYED
MENUITEM SEPARATOR
@ -129,7 +129,7 @@ BEGIN
MENUITEM "&Rename", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Export", ID_TREE_EXPORT
MENUITEM "&Permissions...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "&Permissions...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Copy Key Name", ID_EDIT_COPYKEYNAME
END
@ -388,7 +388,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "&Expand"
IDS_COLLAPSE "&Collapse"
IDS_GOTO_SUGGESTED_KEY "&Go to '%s'"
IDS_FINISHEDFIND "Finished searching through the registry."
END

View file

@ -1,4 +1,4 @@
/* TRANSLATOR : Ardit Dani (Ard1t) (ardit.dani@gmail.com)
/* TRANSLATOR : Ardit Dani (Ard1t) (ardit.dani@gmail.com)
* DATE OF TR: 29-11-2013
*/
@ -32,7 +32,7 @@ IDR_REGEDIT_MENU MENU
BEGIN
POPUP "&File"
BEGIN
MENUITEM "&Importo ...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Importo...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Eksporto...", ID_REGISTRY_EXPORTREGISTRYFILE
MENUITEM SEPARATOR
MENUITEM "Ngarko koshere...", ID_REGISTRY_LOADHIVE, GRAYED
@ -133,7 +133,7 @@ BEGIN
MENUITEM "Emero", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Exporto", ID_TREE_EXPORT
MENUITEM "T'drejta...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "T'drejta...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "Kopjo emrin çelesit", ID_EDIT_COPYKEYNAME
END
@ -392,7 +392,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "Zgjat"
IDS_COLLAPSE "Zgjero"
IDS_GOTO_SUGGESTED_KEY "Shko tek '%s'"
IDS_FINISHEDFIND "Përfunduar kërkimin përmes regjistrit."
END

View file

@ -129,7 +129,7 @@ BEGIN
MENUITEM "&Byt namn", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Exportera", ID_TREE_EXPORT
MENUITEM "&Behörigheter...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "&Behörigheter...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Kopiera nyckelnamn", ID_EDIT_COPYKEYNAME
END
@ -388,7 +388,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "&Visa nivå"
IDS_COLLAPSE "&Dölj nivå"
IDS_GOTO_SUGGESTED_KEY "&Go to '%s'"
IDS_FINISHEDFIND "Slutfört sökningen av registret."
END

View file

@ -131,7 +131,7 @@ BEGIN
MENUITEM "&Rename", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Export", ID_TREE_EXPORT
MENUITEM "&Permissions...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "&Permissions...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Copy Key Name", ID_EDIT_COPYKEYNAME
END
@ -390,7 +390,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "&Expand"
IDS_COLLAPSE "&Collapse"
IDS_GOTO_SUGGESTED_KEY "&Go to '%s'"
IDS_FINISHEDFIND "Finished searching through the registry."
END

View file

@ -39,7 +39,7 @@ BEGIN
MENUITEM "A&ğdaki Değer Defteri'ne Bağlan...", ID_REGISTRY_CONNECTNETWORKREGISTRY
MENUITEM "Ağ&daki Değer Defteri'ne Bağlantıyı Kes...", ID_REGISTRY_DISCONNECTNETWORKREGISTRY, GRAYED
MENUITEM SEPARATOR
MENUITEM "Ya&zdır...\tDenetim+P", ID_REGISTRY_PRINT, GRAYED
MENUITEM "Ya&zdır...\tCtrl+P", ID_REGISTRY_PRINT, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Çıkış", ID_REGISTRY_EXIT
END
@ -60,12 +60,12 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "&İzinler...", ID_EDIT_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Sil\tSil", ID_EDIT_DELETE
MENUITEM "&Sil\tDel", ID_EDIT_DELETE
MENUITEM "&Adını Değiştir", ID_EDIT_RENAME
MENUITEM SEPARATOR
MENUITEM "Di&zin Yolunu Çoğalt", ID_EDIT_COPYKEYNAME
MENUITEM SEPARATOR
MENUITEM "&Bul...\tDenetim+F", ID_EDIT_FIND
MENUITEM "&Bul...\tCtrl+F", ID_EDIT_FIND
MENUITEM "S&onrakini Bul\tF3...", ID_EDIT_FINDNEXT
END
POPUP "&Görünüm"
@ -96,7 +96,7 @@ BEGIN
MENUITEM "&Değiştir...", ID_EDIT_MODIFY
MENUITEM "&İkili Veriyi Değiştir...", ID_EDIT_MODIFY_BIN
MENUITEM SEPARATOR
MENUITEM "&Sil\tSil", ID_EDIT_DELETE
MENUITEM "&Sil\tDel", ID_EDIT_DELETE
MENUITEM "&Adını Değiştir", ID_EDIT_RENAME
END
POPUP ""
@ -131,7 +131,7 @@ BEGIN
MENUITEM "&Adını Değiştir", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Ver...", ID_TREE_EXPORT
MENUITEM "&İzinler...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "&İzinler...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Dizin Yolunu Çoğalt", ID_EDIT_COPYKEYNAME
END
@ -150,7 +150,7 @@ END
IDD_EDIT_STRING DIALOGEX 32, 24, 252, 84
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Dizgi Değerini Düzenle"
CAPTION "Dize Değerini Düzenle"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "&Değer Adı:", IDC_STATIC, 6, 6, 134, 8
@ -163,7 +163,7 @@ END
IDD_EDIT_MULTI_STRING DIALOGEX 32, 24, 252, 174
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Çok Dizeli Dizgi Değerini Düzenle"
CAPTION "Çoklu Dize Değerini Düzenle"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "&Değer Adı:", IDC_STATIC, 6, 6, 134, 8
@ -190,7 +190,7 @@ END
IDD_EDIT_DWORD DIALOGEX 32, 24, 252, 104
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "32 Bitlik Değeri Düzenle"
CAPTION "DWORD Değeri Düzenle"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "&Değer Adı:", IDC_STATIC, 6, 6, 134, 8
@ -206,7 +206,7 @@ END
IDD_EDIT_RESOURCE_LIST DIALOGEX 32, 24, 170, 120
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Kaynak Dizelgesi"
CAPTION "Kaynak Listesi"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "", IDC_RESOURCE_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER |
@ -232,14 +232,14 @@ BEGIN
LTEXT "Giriş:", IDC_STATIC, 10, 134, 38, 8
CONTROL "", IDC_PORT_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER |
LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 10, 144, 261, 31
LTEXT "Husûsî Aygıt Verisi:", IDC_STATIC, 10, 177, 80, 8
LTEXT "Özel Aygıt Verisi:", IDC_STATIC, 10, 177, 80, 8
CONTROL "", IDC_DEVICE_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER |
LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 10, 188, 261, 31
GROUPBOX "Kullanım", IDC_STATIC, 10, 219, 125, 39
LTEXT "Belirsiz:", IDC_UNDETERMINED, 18, 230, 46, 8, WS_DISABLED
LTEXT "Paylaşılan:", IDC_SHARED, 18, 240, 48, 8, WS_DISABLED
LTEXT "Husûsî Aygıt", IDC_DEVICE_EXCLUSIVE, 72, 230, 58, 8, WS_DISABLED
LTEXT "Husûsî Sürücü", IDC_DRIVER_EXCLUSIVE, 72, 240, 54, 8, WS_DISABLED
LTEXT "Özel Aygıt", IDC_DEVICE_EXCLUSIVE, 72, 230, 58, 8, WS_DISABLED
LTEXT "Özel Sürücü", IDC_DRIVER_EXCLUSIVE, 72, 240, 54, 8, WS_DISABLED
RTEXT "Arayüz Türü:", IDC_STATIC, 144, 220, 58, 8
LTEXT "", IDC_INTERFACETYPE, 205, 220, 66, 8
RTEXT "Veriyolu Numarası:", IDC_STATIC, 151, 230, 51, 8
@ -271,7 +271,7 @@ END
STRINGTABLE
BEGIN
ID_REGISTRY_MENU "Bütün Değer Defteri ile çalışma komutlarını içerir."
ID_EDIT_MENU "Dizinleri veyâ değerleri düzenleme komutlarını içerir."
ID_EDIT_MENU "Anahtar veya değerleri düzenleme komutlarını içerir."
ID_VIEW_MENU "Değer Defteri penceresinin husûsileştirme komutlarını içerir."
ID_FAVOURITES_MENU "Sık kullanılan dizinleri kullanma komutlarını içerir."
ID_HELP_MENU "Değer Defteri Düzenleyicisi ile ilgili bilgiyi ya da yardımı görüntüleme komutlarını içerir."
@ -282,9 +282,9 @@ STRINGTABLE
BEGIN
ID_EDIT_MODIFY "Değerin verisini değiştirir."
ID_EDIT_NEW_KEY "Yeni bir dizin ekler."
ID_EDIT_NEW_STRINGVALUE "Yeni bir dizgi değeri ekler."
ID_EDIT_NEW_STRINGVALUE "Yeni bir dizi değeri ekler."
ID_EDIT_NEW_BINARYVALUE "Yeni bir ikili değer ekler."
ID_EDIT_NEW_DWORDVALUE "Yeni bir 32 bitlik değer ekler."
ID_EDIT_NEW_DWORDVALUE "Yeni bir DWORD değeri ekler."
ID_REGISTRY_IMPORTREGISTRYFILE "Bir metin kütüğünü Değer Defteri'ne alır."
ID_REGISTRY_EXPORTREGISTRYFILE "Değer Defteri'nin tümünü ya da bir bölümünü bir metin kütüğüne verir."
ID_REGISTRY_LOADHIVE "Değer Defteri'ne bir yığın kütüğü yükler."
@ -293,7 +293,7 @@ BEGIN
ID_REGISTRY_DISCONNECTNETWORKREGISTRY "Uzaktaki bir bilgisayarın Değer Defteri'sine olan bağlantıyı keser."
ID_REGISTRY_PRINT "Değer Defteri'nin tümünü ya da bir bölümünü yazdırır."
/* ID_HELP_HELPTOPICS "Değer Defteri Düzenleyicisi Yardımı'nı açar." */
ID_HELP_ABOUT "İzlenceyle ilgili bilgi, sürüm numarası ve telif hakkı görüntüler."
ID_HELP_ABOUT "Programla ilgili bilgi, sürüm numarası ve telif hakkı görüntüler."
END
STRINGTABLE
@ -302,7 +302,7 @@ BEGIN
ID_FAVOURITES_ADDTOFAVOURITES "Dizinleri yer imleri dizelgesine ekler."
ID_FAVOURITES_REMOVEFAVOURITE "Dizinleri yer imleri dizelgesinden kaldırır."
ID_VIEW_STATUSBAR "Durum çubuğunu gösterir ya da gizler."
ID_VIEW_SPLIT "İki levhâ arasındaki ayırıcının konumunu değiştirir."
ID_VIEW_SPLIT "İki levha arasındaki ayırıcının konumunu değiştirir."
ID_VIEW_REFRESH "Pencereyi yeniler."
ID_EDIT_DELETE "Seçileni siler."
ID_EDIT_RENAME "Seçilenin adını değiştirir."
@ -313,7 +313,7 @@ END
STRINGTABLE
BEGIN
IDS_ERROR "Yanlışlık"
IDS_ERROR "Hata"
IDS_WARNING "Uyarı"
IDS_BAD_KEY "Dizin sorgulanamıyor: %s"
IDS_BAD_VALUE "Değer sorgulanamıyor: %s"
@ -326,9 +326,9 @@ BEGIN
IDS_QUERY_DELETE_ONE "Bu değeri silmek istediğinizden emin misiniz?"
IDS_QUERY_DELETE_MORE "Bu değerleri silmek istediğinizden emin misiniz?"
IDS_QUERY_DELETE_CONFIRM "Değer Silme Doğrulaması"
IDS_ERR_DELVAL_CAPTION "Değerler Silinmesi Yanlışlığı"
IDS_ERR_DELVAL_CAPTION "Değer Silime Hatası"
IDS_ERR_DELETEVALUE "Tüm belirtilmiş değerler silinemiyor."
IDS_ERR_RENVAL_CAPTION "Değer Adı Değiştirilmesi Yanlışlığı"
IDS_ERR_RENVAL_CAPTION "Değer Adı Değiştirilmesi Hatası"
IDS_ERR_RENVAL_TOEMPTY "Adı değiştirilemiyor: %s. Belirtilen değer adı boş. Başka bir ad yazıp yeniden deneyiniz."
IDS_QUERY_IMPORT_HIVE_CAPTION "Dizin Yenileme Doğrulaması"
IDS_QUERY_IMPORT_HIVE_MSG "Bir dizin seçili dizinle yenilenecektir.\nBu dizinin tüm alt dizinleri ve değerleri silinecektir.\nİşlemi sürdürmek istiyor musunuz?"
@ -347,7 +347,7 @@ BEGIN
IDS_EXPORT_REG_FILE "Değer Kütüğüne Ver"
IDS_LOAD_HIVE "Yığın Yükle"
IDS_UNLOAD_HIVE "Yığını Kaldır"
IDS_INVALID_DWORD "(Geçersiz 32 bitlik değer)"
IDS_INVALID_DWORD "(Geçersiz DWORD değeri)"
END
STRINGTABLE
@ -359,7 +359,7 @@ BEGIN
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Windows 9x ve Windows NT 4.0 Türündeki Değer Kütükleri (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "Tüm Kütükler (*.*)"
IDS_FLT_ALLFILES "Tüm Dosyalar (*.*)"
IDS_FLT_ALLFILES_FLT "*.*"
END
@ -390,16 +390,15 @@ STRINGTABLE
BEGIN
IDS_EXPAND "&Genişlet"
IDS_COLLAPSE "&Daralt"
IDS_GOTO_SUGGESTED_KEY "G&it: %s"
IDS_FINISHEDFIND "Değer Defteri boyunca arama bitti."
END
STRINGTABLE
BEGIN
IDS_IMPORT_PROMPT "Bilgi ekleme, yanlışlıkla değerleri değiştirebilir ya da silebilir ve bileşenlerin doğru çalışmasını engelleyebilir.\nEğer ""%s"" içindeki bilginin kaynağına güvenmiyorsanız onu Değer Defteri'ne eklemeyiniz.\n\nSürdürmek istediğinizden emin misiniz?"
IDS_IMPORT_OK """%s"" içinde bulunan dizinler ve değerler Değer Defteri'ne başarıyla eklendi."
IDS_IMPORT_ERROR """%s"" alınamıyor: Kütüğü açmada yanlışlık. Bir disk yanlışlığı, bir kütük dizgesi yanlışlığı ya da kütüğün olmaması olabilir."
IDS_EXPORT_ERROR """%s"" verilemiyor: Kütüğü oluşturmada ya da kütüğe yazmada yanlışlık. Bir disk yanlışlığı ya da bir kütük dizgesi yanlışlığı olabilir."
IDS_IMPORT_OK """%s"" içinde bulunan anahtar ve değerler Kayıt Defteri'ne başarıyla eklendi."
IDS_IMPORT_ERROR """%s"" alınamıyor: Dosyayı açmada hata. Bir disk hatası, bir dosya tablosu hatası ya da tablonun olmaması olabilir."
IDS_EXPORT_ERROR """%s"" verilemiyor: Dosyayı oluşturmada ya da dosyaya yazmada hatası. Bir disk hatası ya da bir dosya tablosu hatası olabilir."
END
STRINGTABLE
@ -410,11 +409,11 @@ BEGIN
IDS_DMA_PORT "Giriş"
IDS_INTERRUPT_VECTOR "Yöney"
IDS_INTERRUPT_LEVEL "Düzey"
IDS_INTERRUPT_AFFINITY "Benzerlik"
IDS_INTERRUPT_AFFINITY "İlişki"
IDS_INTERRUPT_TYPE "Tür"
IDS_MEMORY_ADDRESS "Fizikî Erişki"
IDS_MEMORY_LENGTH "Uzunluk"
IDS_MEMORY_ACCESS "Erişim"
IDS_MEMORY_ACCESS "Adres"
IDS_PORT_ADDRESS "Fizikî Erişki"
IDS_PORT_LENGTH "Uzunluk"
IDS_PORT_ACCESS "Erişim"
@ -520,7 +519,7 @@ BEGIN
WS_TABSTOP, 14, 48, 36, 8
CONTROL "&Değer Verileri", IDC_LOOKAT_DATA, "Button", BS_AUTOCHECKBOX |
WS_TABSTOP, 14, 60, 42, 8
CONTROL "&Yalnızca Tüm Dizgiyi Karşılaştır", IDC_MATCHSTRING, "Button", BS_AUTOCHECKBOX |
CONTROL "&Yalnızca Tüm Dizeyi Karşılaştır", IDC_MATCHSTRING, "Button", BS_AUTOCHECKBOX |
WS_TABSTOP, 83, 32, 94, 13
CONTROL "&Büyük-Küçük Harfliği Karşılaştır", IDC_MATCHCASE, "Button", BS_AUTOCHECKBOX |
WS_TABSTOP, 83, 48, 90, 12

View file

@ -131,7 +131,7 @@ BEGIN
MENUITEM "Перей&менувати", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Експорт", ID_TREE_EXPORT
MENUITEM "&Дозволи...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "&Дозволи...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Копіювати ім'я розділу", ID_EDIT_COPYKEYNAME
END
@ -390,7 +390,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "&Розгорнути"
IDS_COLLAPSE "&Згорнути"
IDS_GOTO_SUGGESTED_KEY "&Перейти до '%s'"
IDS_FINISHEDFIND "Пошук у реєстрі завершений."
END

View file

@ -131,7 +131,7 @@ BEGIN
MENUITEM "重命名(&R)", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "导出(&E)", ID_TREE_EXPORT
MENUITEM "权限(&P)...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "权限(&P)...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "复制键名(&C)", ID_EDIT_COPYKEYNAME
END
@ -319,7 +319,7 @@ BEGIN
IDS_BAD_VALUE "不能查询值 '%s'"
IDS_UNSUPPORTED_TYPE "不能编辑这种类型的键 (%ld)"
IDS_TOO_BIG_VALUE "数值过大 (%ld)"
IDS_MULTI_SZ_EMPTY_STRING "REG_MULTI_SZ 类型的数据不能包含空字符串。\r\n注册表编辑器将删除找到得空字符串。"
IDS_MULTI_SZ_EMPTY_STRING "REG_MULTI_SZ 类型的数据不能包含空字符串。\n注册表编辑器将删除找到得空字符串。"
IDS_QUERY_DELETE_KEY_ONE "确实要删除这个键吗?"
IDS_QUERY_DELETE_KEY_MORE "确实要删除这些键吗?"
IDS_QUERY_DELETE_KEY_CONFIRM "确认删除键"
@ -390,7 +390,6 @@ STRINGTABLE
BEGIN
IDS_EXPAND "展开"
IDS_COLLAPSE "折叠"
IDS_GOTO_SUGGESTED_KEY "转到(&G)'%s'"
IDS_FINISHEDFIND "注册表搜索完毕。"
END

View file

@ -1,4 +1,4 @@
/* Traditional Chinese translation by Henry Tang Ih 2016 (henrytang2@hotmail.com) */
/* TRANSLATORS: Copyright 2016 Henry Tang Ih <henrytang2@hotmail.com> */
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
@ -36,7 +36,7 @@ BEGIN
MENUITEM "載入配置單元...", ID_REGISTRY_LOADHIVE, GRAYED
MENUITEM "解除安裝配置單元...", ID_REGISTRY_UNLOADHIVE, GRAYED
MENUITEM SEPARATOR
MENUITEM "連線網路註冊表(&C)...", ID_REGISTRY_CONNECTNETWORKREGISTRY
MENUITEM "連線網路登錄(&C)...", ID_REGISTRY_CONNECTNETWORKREGISTRY
MENUITEM "斷開網路註冊表(&C)...", ID_REGISTRY_DISCONNECTNETWORKREGISTRY, GRAYED
MENUITEM SEPARATOR
MENUITEM "列印(&P)...\tCtrl+P", ID_REGISTRY_PRINT, GRAYED
@ -52,8 +52,8 @@ BEGIN
MENUITEM "項(&K)", ID_EDIT_NEW_KEY
MENUITEM SEPARATOR
MENUITEM "字元串值(&S)", ID_EDIT_NEW_STRINGVALUE
MENUITEM "二進制值(&B)", ID_EDIT_NEW_BINARYVALUE
MENUITEM "DWORD ??&D)", ID_EDIT_NEW_DWORDVALUE
MENUITEM "二進制值(&B)", ID_EDIT_NEW_BINARYVALUE
MENUITEM "DWORD 值(&D)", ID_EDIT_NEW_DWORDVALUE
MENUITEM "多字元串值(&M)", ID_EDIT_NEW_MULTISTRINGVALUE
MENUITEM "可擴充字元串值(&E)", ID_EDIT_NEW_EXPANDABLESTRINGVALUE
END
@ -106,7 +106,7 @@ BEGIN
MENUITEM "項(&K)", ID_EDIT_NEW_KEY
MENUITEM SEPARATOR
MENUITEM "字元串值(&S)", ID_EDIT_NEW_STRINGVALUE
MENUITEM "二進制值(&B)", ID_EDIT_NEW_BINARYVALUE
MENUITEM "二進制值(&B)", ID_EDIT_NEW_BINARYVALUE
MENUITEM "DWORD 值(&D)", ID_EDIT_NEW_DWORDVALUE
MENUITEM "多字元串值(&M)", ID_EDIT_NEW_MULTISTRINGVALUE
MENUITEM "可擴充字元串值(&E)", ID_EDIT_NEW_EXPANDABLESTRINGVALUE
@ -120,7 +120,7 @@ BEGIN
MENUITEM "項(&K)", ID_EDIT_NEW_KEY
MENUITEM SEPARATOR
MENUITEM "字元串值(&S)", ID_EDIT_NEW_STRINGVALUE
MENUITEM "二進制值(&B)", ID_EDIT_NEW_BINARYVALUE
MENUITEM "二進制值(&B)", ID_EDIT_NEW_BINARYVALUE
MENUITEM "DWORD 值(&D)", ID_EDIT_NEW_DWORDVALUE
MENUITEM "多字元串值(&M)", ID_EDIT_NEW_MULTISTRINGVALUE
MENUITEM "可擴充字元串值(&E)", ID_EDIT_NEW_EXPANDABLESTRINGVALUE
@ -131,7 +131,7 @@ BEGIN
MENUITEM "重新命名(&R)", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "匯出(&E)", ID_TREE_EXPORT
MENUITEM "許可權(&P)...", ID_TREE_PERMISSIONS, GRAYED
MENUITEM "許可權(&P)...", ID_TREE_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "複製項名稱(&C)", ID_EDIT_COPYKEYNAME
END
@ -177,7 +177,7 @@ END
IDD_EDIT_BIN_DATA DIALOGEX 32, 24, 252, 174
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "編輯二進制數值"
CAPTION "編輯二進制數值"
FONT 9, "新細明體"
BEGIN
LTEXT "數值名稱(&N):", IDC_STATIC, 6, 6, 134, 8
@ -198,8 +198,8 @@ BEGIN
LTEXT "數值資料(&V):", IDC_STATIC, 6, 35, 161, 8
EDITTEXT IDC_VALUE_DATA, 6, 46, 116, 12, ES_AUTOHSCROLL
GROUPBOX "基數", IDC_STATIC, 130, 35, 116, 39
AUTORADIOBUTTON "十六進制(&H)", IDC_FORMAT_HEX, 141, 46, 60, 10, WS_GROUP
AUTORADIOBUTTON "十進制(&D)", IDC_FORMAT_DEC, 141, 59, 60, 10
AUTORADIOBUTTON "十六進制(&H)", IDC_FORMAT_HEX, 141, 46, 60, 10, WS_GROUP
AUTORADIOBUTTON "十進制(&D)", IDC_FORMAT_DEC, 141, 59, 60, 10
DEFPUSHBUTTON "確定", IDOK, 142, 82, 50, 14
PUSHBUTTON "取消", IDCANCEL, 196, 82, 50, 14
END
@ -270,9 +270,9 @@ END
STRINGTABLE
BEGIN
ID_REGISTRY_MENU "包含與整個註冊表工作相關的命令。"
ID_REGISTRY_MENU "包含與整個登錄工作相關的命令。"
ID_EDIT_MENU "包含編輯值或項的命令。"
ID_VIEW_MENU "包含自定義註冊表視窗的命令。"
ID_VIEW_MENU "包含自訂登錄視窗的命令。"
ID_FAVOURITES_MENU "包含訪問常用項時所用的命令。"
ID_HELP_MENU "包含顯示幫助以及註冊表編輯器有關資訊的命令。"
ID_EDIT_NEW_MENU "包含創建新項或值的命令。"
@ -285,13 +285,13 @@ BEGIN
ID_EDIT_NEW_STRINGVALUE "添加新字元串值。"
ID_EDIT_NEW_BINARYVALUE "添加新二進位制值。"
ID_EDIT_NEW_DWORDVALUE "添加新 DWORD 值。"
ID_REGISTRY_IMPORTREGISTRYFILE "將檔案匯入到註冊表中。"
ID_REGISTRY_EXPORTREGISTRYFILE "將註冊表全部或部分匯出到檔案中。"
ID_REGISTRY_IMPORTREGISTRYFILE "將檔案匯入到登錄中。"
ID_REGISTRY_EXPORTREGISTRYFILE "將登錄全部或部分匯出到檔案中。"
ID_REGISTRY_LOADHIVE "載入配置單元到註冊表中。"
ID_REGISTRY_UNLOADHIVE "從註冊表中解除安裝配置單元。"
ID_REGISTRY_CONNECTNETWORKREGISTRY "連線到遠端計算機的註冊表。"
ID_REGISTRY_DISCONNECTNETWORKREGISTRY "斷開與遠端計算機註冊表的連線。"
ID_REGISTRY_PRINT "列印所有或部分註冊表。"
ID_REGISTRY_CONNECTNETWORKREGISTRY "連線到遠端電腦的登錄。"
ID_REGISTRY_DISCONNECTNETWORKREGISTRY "斷開與遠端電腦登錄的連線。"
ID_REGISTRY_PRINT "列印所有或部分登錄。"
/* ID_HELP_HELPTOPICS "開啟註冊表編輯器幫助。" */
ID_HELP_ABOUT "顯示程式資訊、版本號和版權。"
END
@ -319,7 +319,7 @@ BEGIN
IDS_BAD_VALUE "不能查詢值 '%s'"
IDS_UNSUPPORTED_TYPE "不能編輯這類型的項 (%ld)"
IDS_TOO_BIG_VALUE "數值過大 (%ld)"
IDS_MULTI_SZ_EMPTY_STRING "REG_MULTI_SZ 類型的資料不能包含空字元串。\r\n註冊表編輯器將刪除找到得空字元串。"
IDS_MULTI_SZ_EMPTY_STRING "REG_MULTI_SZ 類型的資料不能包含空字元串。\n註冊表編輯器將刪除找到得空字元串。"
IDS_QUERY_DELETE_KEY_ONE "確實要刪除這個項嗎?"
IDS_QUERY_DELETE_KEY_MORE "確實要刪除這些項嗎?"
IDS_QUERY_DELETE_KEY_CONFIRM "確認項刪除"
@ -342,7 +342,7 @@ BEGIN
IDS_DEFAULT_VALUE_NAME "(默認)"
IDS_VALUE_NOT_SET "(數值未設定)"
IDS_UNKNOWN_TYPE "未知類型: (0x%lx)"
IDS_MY_COMPUTER "我的計算機"
IDS_MY_COMPUTER "我的電腦"
IDS_IMPORT_REG_FILE "匯入註冊表檔案"
IDS_EXPORT_REG_FILE "匯出註冊表檔案"
IDS_LOAD_HIVE "載入配置單元"
@ -355,7 +355,7 @@ BEGIN
IDS_FLT_REGFILE "註冊檔案"
IDS_FLT_REGFILES "註冊檔案 (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "註冊表配置單元檔案 (*.*)"
IDS_FLT_HIVFILES "登錄 Hive 檔案 (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Win9x/NT4 註冊檔案 (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
@ -390,14 +390,13 @@ STRINGTABLE
BEGIN
IDS_EXPAND "展開"
IDS_COLLAPSE "摺疊"
IDS_GOTO_SUGGESTED_KEY "轉到(&G)'%s'"
IDS_FINISHEDFIND "註冊表搜索完畢。"
IDS_FINISHEDFIND "登錄搜索完畢。"
END
STRINGTABLE
BEGIN
IDS_IMPORT_PROMPT "添加資訊可無意中更改或刪除值並導致元件停止正常工作。\n如果您不信任此 '%s' 中的資訊的來源,並不將其添加到註冊表。\n\n是否確實要繼續?"
IDS_IMPORT_OK "'%s' 中包含的值和項已成功添加到註冊表。"
IDS_IMPORT_PROMPT "添加資訊可無意中更改或刪除值並導致元件停止正常工作。\n如果您不信任此 '%s' 中的資訊的來源,並不將其添加到登錄。\n\n是否確實要繼續?"
IDS_IMPORT_OK "'%s' 中包含的值和項已成功添加到登錄。"
IDS_IMPORT_ERROR "無法將 '%s' 匯入: 開啟該檔案時出錯。可能有磁碟或檔案系統錯誤或檔案可能不存在。"
IDS_EXPORT_ERROR "無法匯出 '%s' 創建或寫入檔案時出錯。可能有磁碟或檔案系統錯誤。"
END
@ -453,7 +452,7 @@ BEGIN
IDS_BUS_INTERNALPOWERBUS "Internal Power Bus"
IDS_BUS_PNPISABUS "PnP-ISA Bus"
IDS_BUS_PNPBUS "PnP Bus"
IDS_BUS_UNKNOWNTYPE "未知的介面類型"
IDS_BUS_UNKNOWNTYPE "不明介面類型"
END
/*****************************************************************/
@ -533,7 +532,7 @@ FONT 9, "新細明體", 400, 0, 0x1
BEGIN
ICON IDI_REGEDIT, IDC_STATIC, 7, 7, 20, 20
DEFPUSHBUTTON "取消(&C)", IDCANCEL, 93, 29, 45, 14
LTEXT "正在搜索註冊表...", IDC_STATIC, 33, 12, 83, 8
LTEXT "正在搜索登錄...", IDC_STATIC, 33, 12, 83, 8
END
/* String Table */

View file

@ -49,7 +49,7 @@ typedef struct tagSORT_INFO
static INT g_iSortedColumn = 0;
#define MAX_LIST_COLUMNS (IDS_LIST_COLUMN_LAST - IDS_LIST_COLUMN_FIRST + 1)
static const int default_column_widths[MAX_LIST_COLUMNS] = { 200, 175, 400 };
static const int default_column_widths[MAX_LIST_COLUMNS] = { 35, 25, 40 };
static const int column_alignment[MAX_LIST_COLUMNS] = { LVCFMT_LEFT, LVCFMT_LEFT, LVCFMT_LEFT };
LPCWSTR GetValueName(HWND hwndLV, int iStartAt)
@ -91,7 +91,7 @@ VOID SetValueName(HWND hwndLV, LPCWSTR pszValueName)
{
ListView_SetItemState(hwndLV, i, 0, LVIS_FOCUSED | LVIS_SELECTED);
}
if (pszValueName == NULL)
if (pszValueName == NULL || pszValueName[0] == 0)
i = 0;
else
{
@ -101,6 +101,7 @@ VOID SetValueName(HWND hwndLV, LPCWSTR pszValueName)
}
ListView_SetItemState(hwndLV, i, LVIS_FOCUSED | LVIS_SELECTED,
LVIS_FOCUSED | LVIS_SELECTED);
ListView_EnsureVisible(hwndLV, i, FALSE);
iListViewSelect = i;
}
@ -255,7 +256,7 @@ static void AddEntryToList(HWND hwndLV, LPWSTR Name, DWORD dwValType, void* ValB
}
}
static BOOL CreateListColumns(HWND hWndListView)
static BOOL CreateListColumns(HWND hWndListView, INT cxTotal)
{
WCHAR szText[50];
int index;
@ -269,7 +270,7 @@ static BOOL CreateListColumns(HWND hWndListView)
for (index = 0; index < MAX_LIST_COLUMNS; index++)
{
lvC.iSubItem = index;
lvC.cx = default_column_widths[index];
lvC.cx = (cxTotal * default_column_widths[index]) / 100;
lvC.fmt = column_alignment[index];
LoadStringW(hInst, IDS_LIST_COLUMN_FIRST + index, szText, COUNT_OF(szText));
if (ListView_InsertColumn(hWndListView, index, &lvC) == -1) return FALSE;
@ -563,7 +564,7 @@ BOOL ListWndNotifyProc(HWND hWnd, WPARAM wParam, LPARAM lParam, BOOL *Result)
}
return TRUE;
case NM_SETFOCUS:
g_pChildWnd->nFocusPanel = 0;
g_pChildWnd->nFocusPanel = 1;
break;
case LVN_BEGINLABELEDIT:
Info = (NMLVDISPINFO*)lParam;
@ -627,7 +628,7 @@ BOOL ListWndNotifyProc(HWND hWnd, WPARAM wParam, LPARAM lParam, BOOL *Result)
return FALSE;
}
HWND CreateListView(HWND hwndParent, HMENU id)
HWND CreateListView(HWND hwndParent, HMENU id, INT cx)
{
RECT rcClient;
HWND hwndLV;
@ -641,7 +642,7 @@ HWND CreateListView(HWND hwndParent, HMENU id)
if (!hwndLV) return NULL;
/* Initialize the image list, and add items to the control. */
if (!CreateListColumns(hwndLV)) goto fail;
if (!CreateListColumns(hwndLV, cx)) goto fail;
if (!InitListViewImageLists(hwndLV)) goto fail;
return hwndLV;
@ -667,7 +668,7 @@ void DestroyListView(HWND hwndLV)
}
BOOL RefreshListView(HWND hwndLV, HKEY hKey, LPCWSTR keyPath)
BOOL RefreshListView(HWND hwndLV, HKEY hKey, LPCWSTR keyPath, BOOL bSelectNone)
{
DWORD max_sub_key_len;
DWORD max_val_name_len;
@ -737,6 +738,9 @@ BOOL RefreshListView(HWND hwndLV, HKEY hKey, LPCWSTR keyPath)
{
ListView_SetItemState(hwndLV, i, 0, LVIS_FOCUSED | LVIS_SELECTED);
}
if (bSelectNone)
iListViewSelect = -1;
ListView_SetItemState(hwndLV, iListViewSelect,
LVIS_FOCUSED | LVIS_SELECTED,
LVIS_FOCUSED | LVIS_SELECTED);

View file

@ -71,6 +71,7 @@ BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
IMAGE_ICON, GetSystemMetrics(SM_CXSMICON),
GetSystemMetrics(SM_CYSMICON), LR_SHARED);
wcFrame.hCursor = LoadCursorW(NULL, IDC_ARROW);
wcFrame.hbrBackground = (HBRUSH)(COLOR_3DFACE + 1);
wcFrame.lpszClassName = szFrameClass;
hFrameWndClass = RegisterClassExW(&wcFrame); /* register frame window class */
@ -82,6 +83,7 @@ BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
wcChild.hInstance = hInstance;
wcChild.hIcon = LoadIconW(hInstance, MAKEINTRESOURCEW(IDI_REGEDIT));
wcChild.hCursor = LoadCursorW(NULL, IDC_ARROW);
wcChild.hbrBackground = (HBRUSH)(COLOR_3DFACE + 1);
wcChild.lpszClassName = szChildClass;
wcChild.hIconSm = (HICON)LoadImageW(hInstance, MAKEINTRESOURCEW(IDI_REGEDIT),
IMAGE_ICON, GetSystemMetrics(SM_CXSMICON),
@ -182,7 +184,7 @@ BOOL TranslateChildTabMessage(PMSG msg)
if (msg->wParam != VK_TAB) return FALSE;
if (GetParent(msg->hwnd) != g_pChildWnd->hWnd) return FALSE;
PostMessageW(g_pChildWnd->hWnd, WM_COMMAND, ID_SWITCH_PANELS, 0);
PostMessageW(hFrameWnd, WM_COMMAND, ID_SWITCH_PANELS, 0);
return TRUE;
}

View file

@ -27,7 +27,7 @@
#define TREE_WINDOW 2002
#define LIST_WINDOW 2003
#define SPLIT_WIDTH 5
#define SPLIT_WIDTH 5
#define SPLIT_MIN 30
#define COUNT_OF(a) (sizeof(a)/sizeof(a[0]))
@ -39,8 +39,6 @@
#define MAX_NEW_KEY_LEN 128
extern HINSTANCE hInst;
/******************************************************************************/
enum OPTION_FLAGS
@ -86,66 +84,69 @@ extern WCHAR szChildClass[];
extern const WCHAR g_szGeneralRegKey[];
/* about.c */
extern void ShowAboutBox(HWND hWnd);
void ShowAboutBox(HWND hWnd);
/* childwnd.c */
extern LRESULT CALLBACK ChildWndProc(HWND, UINT, WPARAM, LPARAM);
extern void ResizeWnd(int cx, int cy);
extern LPCWSTR get_root_key_name(HKEY hRootKey);
LRESULT CALLBACK ChildWndProc(HWND, UINT, WPARAM, LPARAM);
void ResizeWnd(int cx, int cy);
LPCWSTR get_root_key_name(HKEY hRootKey);
VOID UpdateAddress(HTREEITEM hItem, HKEY hRootKey, LPCWSTR pszPath, BOOL bSelectNone);
/* edit.c */
BOOL ModifyValue(HWND hwnd, HKEY hKey, LPCWSTR valueName, BOOL EditBin);
BOOL DeleteKey(HWND hwnd, HKEY hKeyRoot, LPCWSTR keyPath);
LONG RenameKey(HKEY hKey, LPCWSTR lpSubKey, LPCWSTR lpNewName);
LONG RenameValue(HKEY hKey, LPCWSTR lpSubKey, LPCWSTR lpDestValue, LPCWSTR lpSrcValue);
LONG QueryStringValue(HKEY hKey, LPCWSTR lpSubKey, LPCWSTR lpValueName, LPWSTR pszBuffer, DWORD dwBufferLen);
BOOL GetKeyName(LPWSTR pszDest, size_t iDestLength, HKEY hRootKey, LPCWSTR lpSubKey);
/* error.c */
extern int ErrorMessageBox(HWND hWnd, LPCWSTR lpTitle, DWORD dwErrorCode, ...);
extern int InfoMessageBox(HWND hWnd, UINT uType, LPCWSTR lpTitle, LPCWSTR lpMessage, ...);
int ErrorMessageBox(HWND hWnd, LPCWSTR lpTitle, DWORD dwErrorCode, ...);
int InfoMessageBox(HWND hWnd, UINT uType, LPCWSTR lpTitle, LPCWSTR lpMessage, ...);
/* find.c */
extern void FindDialog(HWND hWnd);
extern BOOL FindNext(HWND hWnd);
void FindDialog(HWND hWnd);
BOOL FindNext(HWND hWnd);
void FindNextMessageBox(HWND hWnd);
/* framewnd.c */
extern LRESULT CALLBACK FrameWndProc(HWND, UINT, WPARAM, LPARAM);
extern void SetupStatusBar(HWND hWnd, BOOL bResize);
extern void UpdateStatusBar(void);
extern BOOL CopyKeyName(HWND hWnd, HKEY hRootKey, LPCWSTR keyName);
extern BOOL ExportRegistryFile(HWND hWnd);
LRESULT CALLBACK FrameWndProc(HWND, UINT, WPARAM, LPARAM);
void SetupStatusBar(HWND hWnd, BOOL bResize);
void UpdateStatusBar(void);
BOOL CopyKeyName(HWND hWnd, HKEY hRootKey, LPCWSTR keyName);
BOOL ExportRegistryFile(HWND hWnd);
/* listview.c */
extern HWND CreateListView(HWND hwndParent, HMENU id);
extern BOOL RefreshListView(HWND hwndLV, HKEY hKey, LPCWSTR keyPath);
extern LPCWSTR GetValueName(HWND hwndLV, int iStartAt);
extern BOOL ListWndNotifyProc(HWND hWnd, WPARAM wParam, LPARAM lParam, BOOL *Result);
extern BOOL IsDefaultValue(HWND hwndLV, int i);
HWND CreateListView(HWND hwndParent, HMENU id, INT cx);
BOOL RefreshListView(HWND hwndLV, HKEY hKey, LPCWSTR keyPath, BOOL bSelectNone);
LPCWSTR GetValueName(HWND hwndLV, int iStartAt);
BOOL ListWndNotifyProc(HWND hWnd, WPARAM wParam, LPARAM lParam, BOOL *Result);
BOOL TreeWndNotifyProc(HWND hWnd, WPARAM wParam, LPARAM lParam, BOOL *Result);
BOOL IsDefaultValue(HWND hwndLV, int i);
/* regedit.c */
LPCWSTR getAppName(void);
/* treeview.c */
extern HWND CreateTreeView(HWND hwndParent, LPWSTR pHostName, HMENU id);
extern BOOL RefreshTreeView(HWND hWndTV);
extern BOOL RefreshTreeItem(HWND hwndTV, HTREEITEM hItem);
extern BOOL OnTreeExpanding(HWND hWnd, NMTREEVIEW* pnmtv);
extern LPCWSTR GetItemPath(HWND hwndTV, HTREEITEM hItem, HKEY* phRootKey);
extern BOOL DeleteNode(HWND hwndTV, HTREEITEM hItem);
extern HTREEITEM InsertNode(HWND hwndTV, HTREEITEM hItem, LPWSTR name);
extern HWND StartKeyRename(HWND hwndTV);
extern BOOL CreateNewKey(HWND hwndTV, HTREEITEM hItem);
extern BOOL SelectNode(HWND hwndTV, LPCWSTR keyPath);
extern void DestroyTreeView(HWND hwndTV);
extern void DestroyListView(HWND hwndLV);
extern void DestroyMainMenu(void);
/* edit.c */
extern BOOL ModifyValue(HWND hwnd, HKEY hKey, LPCWSTR valueName, BOOL EditBin);
extern BOOL DeleteKey(HWND hwnd, HKEY hKeyRoot, LPCWSTR keyPath);
extern LONG RenameKey(HKEY hKey, LPCWSTR lpSubKey, LPCWSTR lpNewName);
extern LONG RenameValue(HKEY hKey, LPCWSTR lpSubKey, LPCWSTR lpDestValue, LPCWSTR lpSrcValue);
extern LONG QueryStringValue(HKEY hKey, LPCWSTR lpSubKey, LPCWSTR lpValueName, LPWSTR pszBuffer, DWORD dwBufferLen);
extern BOOL GetKeyName(LPWSTR pszDest, size_t iDestLength, HKEY hRootKey, LPCWSTR lpSubKey);
/* security.c */
extern BOOL RegKeyEditPermissions(HWND hWndOwner, HKEY hKey, LPCWSTR lpMachine, LPCWSTR lpKeyName);
BOOL RegKeyEditPermissions(HWND hWndOwner, HKEY hKey, LPCWSTR lpMachine, LPCWSTR lpKeyName);
/* settings.c */
extern void LoadSettings(void);
extern void SaveSettings(void);
void LoadSettings(void);
void SaveSettings(void);
/* treeview.c */
HWND CreateTreeView(HWND hwndParent, LPWSTR pHostName, HMENU id);
BOOL RefreshTreeView(HWND hWndTV);
BOOL RefreshTreeItem(HWND hwndTV, HTREEITEM hItem);
BOOL OnTreeExpanding(HWND hWnd, NMTREEVIEW* pnmtv);
LPCWSTR GetItemPath(HWND hwndTV, HTREEITEM hItem, HKEY* phRootKey);
BOOL DeleteNode(HWND hwndTV, HTREEITEM hItem);
HTREEITEM InsertNode(HWND hwndTV, HTREEITEM hItem, LPWSTR name);
HWND StartKeyRename(HWND hwndTV);
BOOL CreateNewKey(HWND hwndTV, HTREEITEM hItem);
BOOL SelectNode(HWND hwndTV, LPCWSTR keyPath);
void DestroyTreeView(HWND hwndTV);
void DestroyListView(HWND hwndLV);
void DestroyMainMenu(void);
/* EOF */

View file

@ -8,6 +8,7 @@
#include <shlwapi.h>
#include <stdio.h>
#include <aclapi.h>
#include <strsafe.h>
#include "main.h"
#include "regproc.h"

View file

@ -33,9 +33,6 @@
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
IDI_OPEN_FILE ICON "res/folderopen.ico"
IDI_CLOSED_FILE ICON "res/folder.ico"
IDI_ROOT ICON "res/computer.ico"
IDI_STRING ICON "res/string.ico"
IDI_BIN ICON "res/bin.ico"
IDI_REGEDIT ICON "res/regedit.ico"

View file

@ -851,9 +851,15 @@ static void processRegLinesW(FILE *in)
if(*s_eol == '\r' && *(s_eol+1) == '\n')
NextLine++;
while(*(NextLine+1) == ' ' || *(NextLine+1) == '\t')
while(isspaceW(*NextLine))
NextLine++;
if (!*NextLine)
{
s = NextLine;
break;
}
MoveMemory(s_eol - 1, NextLine, (CharsInBuf - (NextLine - s) + 1)*sizeof(WCHAR));
CharsInBuf -= NextLine - s_eol + 1;
s_eol = 0;
@ -1386,7 +1392,7 @@ BOOL export_registry_key(WCHAR *file_name, WCHAR *reg_key_name, DWORD format)
if (file) {
fclose(file);
}
HeapFree(GetProcessHeap(), 0, reg_key_name);
HeapFree(GetProcessHeap(), 0, reg_key_name_buf);
HeapFree(GetProcessHeap(), 0, val_name_buf);
HeapFree(GetProcessHeap(), 0, val_buf);
HeapFree(GetProcessHeap(), 0, line_buf);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

View file

@ -39,9 +39,6 @@
#define IDC_REGEDIT_FRAME 110
#define IDR_REGEDIT_MENU 130
#define IDD_EXPORTRANGE 131
#define IDI_OPEN_FILE 132
#define IDI_CLOSED_FILE 133
#define IDI_ROOT 134
#define IDI_STRING 135
#define IDI_BIN 136
#define IDR_POPUP_MENUS 137
@ -155,8 +152,6 @@
#define IDS_QUERY_DELETE_KEY_ONE 32875
#define IDS_QUERY_DELETE_KEY_MORE 32876
#define IDS_QUERY_DELETE_KEY_CONFIRM 32877
#define ID_TREE_SUGGESTION_MIN 32878
#define ID_TREE_SUGGESTION_MAX 32887
#define ID_TREE_EXPORT 32888
#define ID_TREE_PERMISSIONS 32889
@ -190,7 +185,6 @@
#define IDS_COLLAPSE 31204
#define IDS_NEW_KEY 31205
#define IDS_NEW_VALUE 31206
#define IDS_GOTO_SUGGESTED_KEY 31207
#define IDS_IMPORT_PROMPT 31300
#define IDS_IMPORT_OK 31301

View file

@ -20,12 +20,11 @@
*/
#include "regedit.h"
#include <strsafe.h>
const WCHAR g_szGeneralRegKey[] = L"Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Regedit";
DECLSPEC_IMPORT ULONG WINAPIV DbgPrint(PCH Format,...);
/*
/*
VV,VV,VV,VV,WA,WA,WA,WA,WB,WB,WB,WB,R1,R1,R1,R1
R2,R2,R2,R2,R3,R3,R3,R3,R4,R4,R4,r4,LL,LL,LL,LL
TT,TT,TT,TT,RR,RR,RR,RR,BB,BB,BB,BB,SS,SS,SS,SS

View file

@ -32,6 +32,10 @@ static LPWSTR pathBuffer;
#define NUM_ICONS 3
#define IDI_SHELL_FOLDER 4
#define IDI_SHELL_FOLDER_OPEN 5
#define IDI_SHELL_MY_COMPUTER 16
static BOOL get_item_path(HWND hwndTV, HTREEITEM hItem, HKEY* phKey, LPWSTR* pKeyPath, int* pPathLen, int* pMaxLen)
{
TVITEMW item;
@ -439,23 +443,20 @@ static BOOL InitTreeViewImageLists(HWND hwndTV)
{
HIMAGELIST himl; /* handle to image list */
HICON hico; /* handle to icon */
INT cx = GetSystemMetrics(SM_CXSMICON);
INT cy = GetSystemMetrics(SM_CYSMICON);
HMODULE hShell32 = GetModuleHandleW(L"shell32.dll");
/* Create the image list. */
if ((himl = ImageList_Create(GetSystemMetrics(SM_CXSMICON),
GetSystemMetrics(SM_CYSMICON),
ILC_MASK | ILC_COLOR32,
0,
NUM_ICONS)) == NULL)
{
if ((himl = ImageList_Create(cx, cy, ILC_MASK | ILC_COLOR32, 0, NUM_ICONS)) == NULL)
return FALSE;
}
/* Add the open file, closed file, and document bitmaps. */
hico = LoadImageW(hInst,
MAKEINTRESOURCEW(IDI_OPEN_FILE),
hico = LoadImageW(hShell32,
MAKEINTRESOURCEW(IDI_SHELL_FOLDER_OPEN),
IMAGE_ICON,
GetSystemMetrics(SM_CXSMICON),
GetSystemMetrics(SM_CYSMICON),
cx,
cy,
0);
if (hico)
{
@ -463,11 +464,11 @@ static BOOL InitTreeViewImageLists(HWND hwndTV)
DestroyIcon(hico);
}
hico = LoadImageW(hInst,
MAKEINTRESOURCEW(IDI_CLOSED_FILE),
hico = LoadImageW(hShell32,
MAKEINTRESOURCEW(IDI_SHELL_FOLDER),
IMAGE_ICON,
GetSystemMetrics(SM_CXSMICON),
GetSystemMetrics(SM_CYSMICON),
cx,
cy,
0);
if (hico)
{
@ -475,11 +476,11 @@ static BOOL InitTreeViewImageLists(HWND hwndTV)
DestroyIcon(hico);
}
hico = LoadImageW(hInst,
MAKEINTRESOURCEW(IDI_ROOT),
hico = LoadImageW(hShell32,
MAKEINTRESOURCEW(IDI_SHELL_MY_COMPUTER),
IMAGE_ICON,
GetSystemMetrics(SM_CXSMICON),
GetSystemMetrics(SM_CYSMICON),
cx,
cy,
0);
if (hico)
{
@ -625,6 +626,98 @@ done:
return bSuccess;
}
BOOL TreeWndNotifyProc(HWND hWnd, WPARAM wParam, LPARAM lParam, BOOL *Result)
{
UNREFERENCED_PARAMETER(wParam);
*Result = TRUE;
switch (((LPNMHDR)lParam)->code)
{
case TVN_ITEMEXPANDING:
*Result = !OnTreeExpanding(g_pChildWnd->hTreeWnd, (NMTREEVIEW*)lParam);
return TRUE;
case TVN_SELCHANGED:
{
NMTREEVIEW* pnmtv = (NMTREEVIEW*)lParam;
HTREEITEM hParentItem = TreeView_GetParent(g_pChildWnd->hTreeWnd, pnmtv->itemNew.hItem);
UpdateAddress(pnmtv->itemNew.hItem, NULL, NULL, TRUE);
EnableMenuItem(hMenuFrame, ID_EDIT_PERMISSIONS, MF_BYCOMMAND | (hParentItem ? MF_ENABLED : MF_GRAYED));
if (!hParentItem || !TreeView_GetParent(g_pChildWnd->hTreeWnd, hParentItem))
{
EnableMenuItem(hMenuFrame , ID_EDIT_DELETE, MF_BYCOMMAND | MF_GRAYED);
EnableMenuItem(hMenuFrame , ID_EDIT_RENAME, MF_BYCOMMAND | MF_GRAYED);
EnableMenuItem(hPopupMenus, ID_TREE_DELETE, MF_BYCOMMAND | MF_GRAYED);
EnableMenuItem(hPopupMenus, ID_TREE_RENAME, MF_BYCOMMAND | MF_GRAYED);
}
else
{
EnableMenuItem(hMenuFrame , ID_EDIT_DELETE, MF_BYCOMMAND | MF_ENABLED);
EnableMenuItem(hMenuFrame , ID_EDIT_RENAME, MF_BYCOMMAND | MF_ENABLED);
EnableMenuItem(hPopupMenus, ID_TREE_DELETE, MF_BYCOMMAND | MF_ENABLED);
EnableMenuItem(hPopupMenus, ID_TREE_RENAME, MF_BYCOMMAND | MF_ENABLED);
}
return TRUE;
}
case NM_SETFOCUS:
g_pChildWnd->nFocusPanel = 0;
break;
case TVN_BEGINLABELEDIT:
{
LPNMTVDISPINFO ptvdi = (LPNMTVDISPINFO)lParam;
if (!TreeView_GetParent(g_pChildWnd->hTreeWnd, ptvdi->item.hItem) ||
!TreeView_GetParent(g_pChildWnd->hTreeWnd, TreeView_GetParent(g_pChildWnd->hTreeWnd, ptvdi->item.hItem)))
{
*Result = TRUE;
}
else
*Result = FALSE;
return TRUE;
}
case TVN_ENDLABELEDIT:
{
LPCWSTR keyPath;
HKEY hRootKey;
HKEY hKey = NULL;
LPNMTVDISPINFO ptvdi = (LPNMTVDISPINFO)lParam;
LONG nRenResult;
LONG lResult = TRUE;
WCHAR szBuffer[MAX_PATH];
WCHAR Caption[128];
if (ptvdi->item.pszText)
{
keyPath = GetItemPath(g_pChildWnd->hTreeWnd, TreeView_GetParent(g_pChildWnd->hTreeWnd, ptvdi->item.hItem), &hRootKey);
if (wcslen(keyPath))
_snwprintf(szBuffer, COUNT_OF(szBuffer), L"%s\\%s", keyPath, ptvdi->item.pszText);
else
_snwprintf(szBuffer, COUNT_OF(szBuffer), L"%s", ptvdi->item.pszText);
keyPath = GetItemPath(g_pChildWnd->hTreeWnd, ptvdi->item.hItem, &hRootKey);
if (RegOpenKeyExW(hRootKey, szBuffer, 0, KEY_READ, &hKey) == ERROR_SUCCESS)
{
lResult = FALSE;
RegCloseKey(hKey);
TreeView_EditLabel(g_pChildWnd->hTreeWnd, ptvdi->item.hItem);
}
else
{
nRenResult = RenameKey(hRootKey, keyPath, ptvdi->item.pszText);
if (nRenResult != ERROR_SUCCESS)
{
LoadStringW(hInst, IDS_ERROR, Caption, COUNT_OF(Caption));
ErrorMessageBox(hWnd, Caption, nRenResult);
lResult = FALSE;
}
else
UpdateAddress(ptvdi->item.hItem, hRootKey, szBuffer, FALSE);
}
*Result = lResult;
}
return TRUE;
}
}
return FALSE;
}
/*
* CreateTreeView - creates a tree view control.
@ -687,8 +780,13 @@ BOOL SelectNode(HWND hwndTV, LPCWSTR keyPath)
while(keyPath[0])
{
size_t copyLength;
s = wcschr(keyPath, L'\\');
lstrcpynW(szPathPart, keyPath, s ? s - keyPath + 1 : wcslen(keyPath) + 1);
if (s != NULL)
copyLength = (s - keyPath) * sizeof(WCHAR);
else
copyLength = sizeof(szPathPart);
StringCbCopyNW(szPathPart, sizeof(szPathPart), keyPath, copyLength);
/* Special case for root to expand root key abbreviations */
if (hItem == hRoot)