[REGEDIT] Deduplication and other formatting changes (#7193)

- Deduplicates unused IDC_REGEDIT MENU vs. actually used IDR_REGEDIT_MENU
- shrinks the binary size, GCC8.4.0dbg build shrinks from 1.052.672 -> 1.049.600 bytes
- that also solves a few FIXME's, e.g. in hu-HU, pl-PL, sl-SI, sq-AL, tr-TR, uk-UA
- translates the help-popup string in th-TH.rc
- slightly tweak some headers to be a bit closer to newstyle without going all the way
- also link to LPGL2.1+ in the source files to reduce the wall-of-text, also some other whitespace tweaks in those, but no functional change
- security.c: vertical-compactness-whitespace-changes aim to get HeapAlloc closer to HeapFree
- id-ID.rc: "&Data nilai" and "&Nama nilai" does exist in 4 dialogs, Harmonize them
- pt-PT.rc: add 2 missing accels in IDD_EDIT_STRING
- edit.c: 3x ARRAY_SIZE
- the most review-worthy change in the actual .h/.c files is clb.c the change from ClbWndClass.hInstance = hinstDLL, ClbWndClass.hIcon = NULL; to ClbWndClass.hInstance = hinstDLL; ClbWndClass.hIcon = NULL;
- clb.c the stripped INT_PTR-cast for EndDialog() was Co-authored-by: Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
This commit is contained in:
Joachim Henze 2024-07-29 21:19:10 +02:00 committed by GitHub
parent d7ab15dcb4
commit 470cef7bfd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
47 changed files with 152 additions and 869 deletions

View file

@ -2,20 +2,7 @@
* Regedit About Dialog Box * Regedit About Dialog Box
* *
* Copyright (C) 2002 Robert Dickenson <robd@reactos.org> * Copyright (C) 2002 Robert Dickenson <robd@reactos.org>
* * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include "regedit.h" #include "regedit.h"

View file

@ -3,20 +3,7 @@
* *
* Copyright (C) 2002 Robert Dickenson <robd@reactos.org> * Copyright (C) 2002 Robert Dickenson <robd@reactos.org>
* Copyright (C) 2024 Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com> * Copyright (C) 2024 Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
* * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include "regedit.h" #include "regedit.h"
@ -25,8 +12,8 @@
ChildWnd* g_pChildWnd; ChildWnd* g_pChildWnd;
static int last_split; static int last_split;
HBITMAP SizingPattern = 0; HBITMAP SizingPattern;
HBRUSH SizingBrush = 0; HBRUSH SizingBrush;
WCHAR Suggestions[256]; WCHAR Suggestions[256];
static HRESULT WINAPI DummyEnumStringsQI(LPVOID This, REFIID riid, void**ppv) static HRESULT WINAPI DummyEnumStringsQI(LPVOID This, REFIID riid, void**ppv)
@ -181,11 +168,8 @@ static void draw_splitbar(HWND hWnd, int x)
ReleaseDC(hWnd, hdc); ReleaseDC(hWnd, hdc);
} }
/******************************************************************************* /**
* finish_splitbar [internal] * make the splitbar invisible and resize the windows (helper for ChildWndProc)
*
* make the splitbar invisible and resize the windows
* (helper for ChildWndProc)
*/ */
static void finish_splitbar(HWND hWnd, int x) static void finish_splitbar(HWND hWnd, int x)
{ {
@ -291,7 +275,6 @@ static void SuggestKeys(HKEY hRootKey, LPCWSTR pszKeyPath, LPWSTR pszSuggestions
} }
} }
LRESULT CALLBACK AddressBarProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) LRESULT CALLBACK AddressBarProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{ {
WNDPROC oldwndproc; WNDPROC oldwndproc;
@ -374,15 +357,11 @@ UpdateAddress(HTREEITEM hItem, HKEY hRootKey, LPCWSTR pszPath, BOOL bSelectNone)
} }
} }
/******************************************************************************* /**
*
* FUNCTION: ChildWndProc(HWND, unsigned, WORD, LONG)
*
* PURPOSE: Processes messages for the child windows. * PURPOSE: Processes messages for the child windows.
* *
* WM_COMMAND - process the application menu * WM_COMMAND - process the application menu
* WM_DESTROY - post a quit message and return * WM_DESTROY - post a quit message and return
*
*/ */
LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{ {

View file

@ -1,29 +1,8 @@
/*
* ReactOS Column List Box
* Copyright (C) 2005 Thomas Weidenmueller
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
/* /*
* PROJECT: ReactOS Column List Box * PROJECT: ReactOS Column List Box
* FILE: base/applications/regedit/clb/clb.c * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
* PURPOSE: Column List Box * PURPOSE: Column List Box
* PROGRAMMER: Thomas Weidenmueller <w3seek@reactos.com> * COPYRIGHT: Copyright 2005 Thomas Weidenmueller <w3seek@reactos.com>
*
* UPDATE HISTORY:
* 10/29/2005 Created
*/ */
#include <precomp.h> #include <precomp.h>
@ -94,7 +73,6 @@ ClbAddData(IN DWORD Unknown1,
return 0; return 0;
} }
/* /*
* @unimplemented * @unimplemented
*/ */
@ -108,7 +86,6 @@ ClbSetColumnWidths(IN DWORD Unknown1,
return 0; return 0;
} }
/* /*
* @unimplemented * @unimplemented
*/ */
@ -124,8 +101,7 @@ ClbWndProc(IN HWND hwnd,
DPRINT1("ClbWndProc(0x%p, 0x%x, 0x%p, 0x%p)\n", hwnd, uMsg, wParam, lParam); DPRINT1("ClbWndProc(0x%p, 0x%x, 0x%p, 0x%p)\n", hwnd, uMsg, wParam, lParam);
PrivData = (PCLB_PRIVATEDATA)GetWindowLongPtr(hwnd, PrivData = (PCLB_PRIVATEDATA)GetWindowLongPtr(hwnd, 0);
0);
if (PrivData == NULL && uMsg != WM_CREATE) if (PrivData == NULL && uMsg != WM_CREATE)
{ {
goto HandleDefMsg; goto HandleDefMsg;
@ -146,24 +122,18 @@ ClbWndProc(IN HWND hwnd,
break; break;
case WM_DESTROY: case WM_DESTROY:
HeapFree(GetProcessHeap(), HeapFree(GetProcessHeap(), 0, PrivData);
0,
PrivData);
break; break;
default: default:
HandleDefMsg: HandleDefMsg:
Ret = DefWindowProc(hwnd, Ret = DefWindowProc(hwnd, uMsg, wParam, lParam);
uMsg,
wParam,
lParam);
break; break;
} }
return Ret; return Ret;
} }
static INT_PTR CALLBACK static INT_PTR CALLBACK
ClbpStyleDlgProc(IN HWND hwndDlg, ClbpStyleDlgProc(IN HWND hwndDlg,
IN UINT uMsg, IN UINT uMsg,
@ -181,15 +151,13 @@ ClbpStyleDlgProc(IN HWND hwndDlg,
{ {
case IDOK: case IDOK:
case IDCANCEL: case IDCANCEL:
EndDialog(hwndDlg, EndDialog(hwndDlg, LOWORD(wParam));
(INT_PTR)LOWORD(wParam));
break; break;
} }
break; break;
case WM_CLOSE: case WM_CLOSE:
EndDialog(hwndDlg, EndDialog(hwndDlg, IDCANCEL);
IDCANCEL);
break; break;
case WM_INITDIALOG: case WM_INITDIALOG:
@ -200,7 +168,6 @@ ClbpStyleDlgProc(IN HWND hwndDlg,
return Ret; return Ret;
} }
/* /*
* @implemented * @implemented
*/ */
@ -216,7 +183,6 @@ ClbStyleW(IN HWND hWndParent,
dwInitParam); dwInitParam);
} }
/* /*
* @implemented * @implemented
*/ */
@ -226,26 +192,23 @@ CustomControlInfoW(OUT LPCUSTOM_CONTROL_INFO CustomControlInfo OPTIONAL)
{ {
if (CustomControlInfo != NULL) if (CustomControlInfo != NULL)
{ {
wcscpy(CustomControlInfo->ClassName, wcscpy(CustomControlInfo->ClassName, ClbClassName);
ClbClassName);
CustomControlInfo->Zero1 = 0; CustomControlInfo->Zero1 = 0;
wcscpy(CustomControlInfo->ClassName2, wcscpy(CustomControlInfo->ClassName2, ClbClassName);
ClbClassName);
CustomControlInfo->Unknown1 = 0x60; /* FIXME - ??? */ CustomControlInfo->Unknown1 = 0x60; // FIXME - ???
CustomControlInfo->Unknown2 = 0x50; /* FIXME - ??? */ CustomControlInfo->Unknown2 = 0x50; // FIXME - ???
CustomControlInfo->Unknown3 = 0x50A10013; /* FIXME - ??? */ CustomControlInfo->Unknown3 = 0x50A10013; // FIXME - ???
CustomControlInfo->Zero2 = 0; CustomControlInfo->Zero2 = 0;
CustomControlInfo->Zero3 = 0; CustomControlInfo->Zero3 = 0;
CustomControlInfo->StylesCount = sizeof(ClbsSupportedStyles) / sizeof(ClbsSupportedStyles[0]); CustomControlInfo->StylesCount = _countof(ClbsSupportedStyles);
CustomControlInfo->SupportedStyles = ClbsSupportedStyles; CustomControlInfo->SupportedStyles = ClbsSupportedStyles;
wcscpy(CustomControlInfo->Columns, wcscpy(CustomControlInfo->Columns, ClbColumns);
ClbColumns);
CustomControlInfo->ClbStyleW = ClbStyleW; CustomControlInfo->ClbStyleW = ClbStyleW;
@ -280,10 +243,9 @@ DllMain(IN HINSTANCE hinstDLL,
ClbWndClass.lpfnWndProc = ClbWndProc; ClbWndClass.lpfnWndProc = ClbWndProc;
ClbWndClass.cbClsExtra = 0; ClbWndClass.cbClsExtra = 0;
ClbWndClass.cbWndExtra = sizeof(PCLB_PRIVATEDATA); ClbWndClass.cbWndExtra = sizeof(PCLB_PRIVATEDATA);
ClbWndClass.hInstance = hinstDLL, ClbWndClass.hInstance = hinstDLL;
ClbWndClass.hIcon = NULL; ClbWndClass.hIcon = NULL;
ClbWndClass.hCursor = LoadCursor(NULL, ClbWndClass.hCursor = LoadCursor(NULL, (LPWSTR)IDC_ARROW);
(LPWSTR)IDC_ARROW);
ClbWndClass.hbrBackground = NULL; ClbWndClass.hbrBackground = NULL;
ClbWndClass.lpszMenuName = NULL; ClbWndClass.lpszMenuName = NULL;
ClbWndClass.lpszClassName = ClbClassName; ClbWndClass.lpszClassName = ClbClassName;
@ -301,8 +263,7 @@ DllMain(IN HINSTANCE hinstDLL,
break; break;
case DLL_PROCESS_DETACH: case DLL_PROCESS_DETACH:
UnregisterClass(ClbClassName, UnregisterClass(ClbClassName, hinstDLL);
hinstDLL);
break; break;
} }
return Ret; return Ret;

View file

@ -2,20 +2,7 @@
* Registry editing UI functions. * Registry editing UI functions.
* *
* Copyright (C) 2003 Dimitrie O. Paun * Copyright (C) 2003 Dimitrie O. Paun
* * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include "regedit.h" #include "regedit.h"
@ -163,7 +150,6 @@ INT_PTR CALLBACK modify_string_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, L
return FALSE; return FALSE;
} }
INT_PTR CALLBACK modify_multi_string_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) INT_PTR CALLBACK modify_multi_string_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{ {
WCHAR* valueData; WCHAR* valueData;
@ -231,7 +217,6 @@ INT_PTR CALLBACK modify_multi_string_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wPa
return FALSE; return FALSE;
} }
LRESULT CALLBACK DwordEditSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) LRESULT CALLBACK DwordEditSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{ {
WNDPROC oldwndproc; WNDPROC oldwndproc;
@ -243,7 +228,7 @@ LRESULT CALLBACK DwordEditSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPAR
case WM_CHAR: case WM_CHAR:
if (dwordEditMode == EDIT_MODE_DEC) if (dwordEditMode == EDIT_MODE_DEC)
{ {
if (isdigit((int) wParam & 0xff) || iscntrl((int) wParam & 0xff)) if (isdigit((int)wParam & 0xff) || iscntrl((int)wParam & 0xff))
{ {
break; break;
} }
@ -254,7 +239,7 @@ LRESULT CALLBACK DwordEditSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPAR
} }
else if (dwordEditMode == EDIT_MODE_HEX) else if (dwordEditMode == EDIT_MODE_HEX)
{ {
if (isxdigit((int) wParam & 0xff) || iscntrl((int) wParam & 0xff)) if (isxdigit((int)wParam & 0xff) || iscntrl((int)wParam & 0xff))
{ {
break; break;
} }
@ -272,7 +257,6 @@ LRESULT CALLBACK DwordEditSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPAR
return CallWindowProcW(oldwndproc, hwnd, uMsg, wParam, lParam); return CallWindowProcW(oldwndproc, hwnd, uMsg, wParam, lParam);
} }
INT_PTR CALLBACK modify_dword_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) INT_PTR CALLBACK modify_dword_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{ {
WNDPROC oldproc; WNDPROC oldproc;
@ -386,7 +370,6 @@ INT_PTR CALLBACK modify_dword_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LP
return FALSE; return FALSE;
} }
INT_PTR CALLBACK modify_binary_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) INT_PTR CALLBACK modify_binary_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{ {
HWND hwndValue; HWND hwndValue;
@ -419,7 +402,7 @@ INT_PTR CALLBACK modify_binary_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, L
case IDOK: case IDOK:
if ((hwndValue = GetDlgItem(hwndDlg, IDC_VALUE_DATA))) if ((hwndValue = GetDlgItem(hwndDlg, IDC_VALUE_DATA)))
{ {
len = (UINT) HexEdit_GetBufferSize(hwndValue); len = (UINT)HexEdit_GetBufferSize(hwndValue);
if (len > 0 && binValueData) if (len > 0 && binValueData)
binValueData = HeapReAlloc(GetProcessHeap(), 0, binValueData, len); binValueData = HeapReAlloc(GetProcessHeap(), 0, binValueData, len);
else else
@ -437,7 +420,6 @@ INT_PTR CALLBACK modify_binary_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, L
return FALSE; return FALSE;
} }
static BOOL CreateResourceColumns(HWND hwnd) static BOOL CreateResourceColumns(HWND hwnd)
{ {
WCHAR szText[80]; WCHAR szText[80];
@ -661,7 +643,6 @@ GetInterfaceType(INTERFACE_TYPE InterfaceType,
// wcscpy(pBuffer, lpInterfaceType); // wcscpy(pBuffer, lpInterfaceType);
} }
static VOID static VOID
ParseResources(HWND hwnd) ParseResources(HWND hwnd)
{ {
@ -859,7 +840,6 @@ ParseResources(HWND hwnd)
} }
} }
static BOOL static BOOL
OnResourceNotify(HWND hwndDlg, NMHDR *phdr) OnResourceNotify(HWND hwndDlg, NMHDR *phdr)
{ {
@ -916,7 +896,6 @@ OnResourceNotify(HWND hwndDlg, NMHDR *phdr)
return FALSE; return FALSE;
} }
static INT_PTR CALLBACK modify_resource_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) static INT_PTR CALLBACK modify_resource_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{ {
UNREFERENCED_PARAMETER(lParam); UNREFERENCED_PARAMETER(lParam);
@ -1037,7 +1016,6 @@ OnResourceListNotify(HWND hwndDlg, NMHDR *phdr)
return FALSE; return FALSE;
} }
static INT_PTR CALLBACK modify_resource_list_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) static INT_PTR CALLBACK modify_resource_list_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{ {
UNREFERENCED_PARAMETER(lParam); UNREFERENCED_PARAMETER(lParam);
@ -1593,7 +1571,7 @@ BOOL ModifyValue(HWND hwnd, HKEY hKey, LPCWSTR valueName, BOOL EditBin)
{ {
if (stringValueData) if (stringValueData)
{ {
lRet = RegSetValueExW(hKey, valueName, 0, type, (LPBYTE)stringValueData, (DWORD) (wcslen(stringValueData) + 1) * sizeof(WCHAR)); lRet = RegSetValueExW(hKey, valueName, 0, type, (LPBYTE)stringValueData, (DWORD)(wcslen(stringValueData) + 1) * sizeof(WCHAR));
} }
else else
{ {
@ -1697,7 +1675,7 @@ BOOL ModifyValue(HWND hwnd, HKEY hKey, LPCWSTR valueName, BOOL EditBin)
warning(hwnd, IDS_MULTI_SZ_EMPTY_STRING); warning(hwnd, IDS_MULTI_SZ_EMPTY_STRING);
} }
lRet = RegSetValueExW(hKey, valueName, 0, type, (LPBYTE)lines, (DWORD) buflen); lRet = RegSetValueExW(hKey, valueName, 0, type, (LPBYTE)lines, (DWORD)buflen);
HeapFree(GetProcessHeap(), 0, lines); HeapFree(GetProcessHeap(), 0, lines);
} }
else else
@ -1898,7 +1876,7 @@ static LONG CopyKey(HKEY hDestKey, LPCWSTR lpDestSubKey, HKEY hSrcKey, LPCWSTR l
dwIndex = 0; dwIndex = 0;
do do
{ {
cbName = sizeof(szSubKey) / sizeof(szSubKey[0]); cbName = ARRAY_SIZE(szSubKey);
lResult = RegEnumKeyExW(hSrcKey, dwIndex++, szSubKey, &cbName, NULL, NULL, NULL, &ft); lResult = RegEnumKeyExW(hSrcKey, dwIndex++, szSubKey, &cbName, NULL, NULL, NULL, &ft);
if (lResult == ERROR_SUCCESS) if (lResult == ERROR_SUCCESS)
{ {
@ -1913,8 +1891,8 @@ static LONG CopyKey(HKEY hDestKey, LPCWSTR lpDestSubKey, HKEY hSrcKey, LPCWSTR l
dwIndex = 0; dwIndex = 0;
do do
{ {
cbName = sizeof(szValueName) / sizeof(szValueName[0]); cbName = ARRAY_SIZE(szValueName);
cbData = sizeof(szValueData) / sizeof(szValueData[0]); cbData = ARRAY_SIZE(szValueData);
lResult = RegEnumValueW(hSrcKey, dwIndex++, szValueName, &cbName, NULL, &dwType, szValueData, &cbData); lResult = RegEnumValueW(hSrcKey, dwIndex++, szValueName, &cbName, NULL, &dwType, szValueData, &cbData);
if (lResult == ERROR_SUCCESS) if (lResult == ERROR_SUCCESS)
{ {
@ -2005,7 +1983,7 @@ LONG RenameKey(HKEY hKey, LPCWSTR lpSubKey, LPCWSTR lpNewName)
{ {
s++; s++;
cbNewSubKey = (s - lpSubKey + wcslen(lpNewName) + 1) * sizeof(WCHAR); cbNewSubKey = (s - lpSubKey + wcslen(lpNewName) + 1) * sizeof(WCHAR);
lpNewSubKey = (LPWSTR) HeapAlloc(GetProcessHeap(), 0, cbNewSubKey); lpNewSubKey = (LPWSTR)HeapAlloc(GetProcessHeap(), 0, cbNewSubKey);
if (lpNewSubKey != NULL) if (lpNewSubKey != NULL)
{ {
StringCbCopyNW(lpNewSubKey, cbNewSubKey, lpSubKey, (s - lpSubKey) * sizeof(WCHAR)); StringCbCopyNW(lpNewSubKey, cbNewSubKey, lpSubKey, (s - lpSubKey) * sizeof(WCHAR));
@ -2072,7 +2050,7 @@ LONG QueryStringValue(HKEY hKey, LPCWSTR lpSubKey, LPCWSTR lpValueName, LPWSTR p
} }
cbData = (dwBufferLen - 1) * sizeof(*pszBuffer); cbData = (dwBufferLen - 1) * sizeof(*pszBuffer);
lResult = RegQueryValueExW(hKey, lpValueName, NULL, &dwType, (LPBYTE) pszBuffer, &cbData); lResult = RegQueryValueExW(hKey, lpValueName, NULL, &dwType, (LPBYTE)pszBuffer, &cbData);
if (lResult != ERROR_SUCCESS) if (lResult != ERROR_SUCCESS)
goto done; goto done;
if (dwType != REG_SZ) if (dwType != REG_SZ)

View file

@ -3,20 +3,7 @@
* *
* Copyright (C) 2010 Adam Kachwalla <geekdundee@gmail.com> * Copyright (C) 2010 Adam Kachwalla <geekdundee@gmail.com>
* Copyright (C) 2012 Hermès Bélusca - Maïto <hermes.belusca@sfr.fr> * Copyright (C) 2012 Hermès Bélusca - Maïto <hermes.belusca@sfr.fr>
* * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include "regedit.h" #include "regedit.h"

View file

@ -1,19 +1,7 @@
/* /*
* Regedit find dialog * Regedit find dialog
* *
* This library is free software; you can redistribute it and/or * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include "regedit.h" #include "regedit.h"
@ -543,7 +531,6 @@ success:
return TRUE; return TRUE;
} }
static DWORD GetFindFlags(void) static DWORD GetFindFlags(void)
{ {
HKEY hKey; HKEY hKey;

View file

@ -2,20 +2,7 @@
* Regedit frame window * Regedit frame window
* *
* Copyright (C) 2002 Robert Dickenson <robd@reactos.org> * Copyright (C) 2002 Robert Dickenson <robd@reactos.org>
* * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include "regedit.h" #include "regedit.h"
@ -24,20 +11,10 @@
#include <cderr.h> #include <cderr.h>
#include <objsel.h> #include <objsel.h>
/********************************************************************************
* Global and Local Variables:
*/
#define FAVORITES_MENU_POSITION 3 #define FAVORITES_MENU_POSITION 3
static WCHAR s_szFavoritesRegKey[] = L"Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Regedit\\Favorites"; 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 */ static BOOL bInMenuLoop = FALSE; /* Tells us if we are in the menu loop */
extern WCHAR Suggestions[256]; extern WCHAR Suggestions[256];
/*******************************************************************************
* Local module support methods
*/
static UINT ErrorBox(HWND hWnd, UINT Error) static UINT ErrorBox(HWND hWnd, UINT Error)
{ {
@ -70,8 +47,6 @@ static void resize_frame_client(HWND hWnd)
resize_frame_rect(hWnd, &rect); resize_frame_rect(hWnd, &rect);
} }
/********************************************************************************/
static void OnInitMenu(HWND hWnd) static void OnInitMenu(HWND hWnd)
{ {
LONG lResult; LONG lResult;
@ -1193,7 +1168,7 @@ static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
ARRAY_SIZE(szComputerName)); ARRAY_SIZE(szComputerName));
if (hRet == S_OK) if (hRet == S_OK)
{ {
/* FIXME - connect to the registry */ // FIXME - connect to the registry
} }
FreeObjectPicker(ObjectPicker); FreeObjectPicker(ObjectPicker);

View file

@ -2,20 +2,7 @@
* Hex editor control * Hex editor control
* *
* Copyright (C) 2004 Thomas Weidenmueller <w3seek@reactos.com> * Copyright (C) 2004 Thomas Weidenmueller <w3seek@reactos.com>
* * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include "regedit.h" #include "regedit.h"

View file

@ -1,7 +1,5 @@
/* Превод на Български/ Bulgarian translation */ /* Превод на Български/ Bulgarian translation */
/* https://reactos.org/wiki/Bulgarian_translation */ /* https://reactos.org/wiki/Bulgarian_translation */
/* LOCATION: base/applications/regedit/lang */
/* НЕДОВЪРШЕН/ INCOMPLETE */
LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
@ -71,18 +69,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "&Файл"
BEGIN
MENUITEM "Из&ход", ID_REGISTRY_EXIT
END
POPUP "Помо&щ"
BEGIN
MENUITEM "&За", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "&Файл" POPUP "&Файл"

View file

@ -66,18 +66,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "&Soubor"
BEGIN
MENUITEM "U&končit", ID_REGISTRY_EXIT
END
POPUP "&Nápověda"
BEGIN
MENUITEM "&O editoru registru", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "&Registry" POPUP "&Registry"

View file

@ -66,18 +66,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "&Datei"
BEGIN
MENUITEM "&Beenden", ID_REGISTRY_EXIT
END
POPUP "&Hilfe"
BEGIN
MENUITEM "Inf&o", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "&Datei" POPUP "&Datei"
@ -441,7 +429,7 @@ STRINGTABLE
BEGIN BEGIN
ID_EDIT_MODIFY "Ändert die Daten eines Wertes" ID_EDIT_MODIFY "Ändert die Daten eines Wertes"
ID_EDIT_NEW_KEY "Fügt einen neuen Schlüssel hinzu" ID_EDIT_NEW_KEY "Fügt einen neuen Schlüssel hinzu"
ID_EDIT_NEW_STRINGVALUE "Fügt eine neue Zeichenkette hinzu " ID_EDIT_NEW_STRINGVALUE "Fügt eine neue Zeichenkette hinzu"
ID_EDIT_NEW_BINARYVALUE "Fügt einen neuen Binärwärt hinzu" ID_EDIT_NEW_BINARYVALUE "Fügt einen neuen Binärwärt hinzu"
ID_EDIT_NEW_DWORDVALUE "Fügt einen neuen DWORD-Wert hinzu" ID_EDIT_NEW_DWORDVALUE "Fügt einen neuen DWORD-Wert hinzu"
ID_REGISTRY_IMPORTREGISTRYFILE "Importiert eine Textddatei in die Registry" ID_REGISTRY_IMPORTREGISTRYFILE "Importiert eine Textddatei in die Registry"

View file

@ -66,18 +66,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "&Αρχείο"
BEGIN
MENUITEM "Έ&ξοδος", ID_REGISTRY_EXIT
END
POPUP "&Βοήθεια"
BEGIN
MENUITEM "&Σχετικά", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "&Αρχείο" POPUP "&Αρχείο"

View file

@ -66,18 +66,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "&File"
BEGIN
MENUITEM "E&xit", ID_REGISTRY_EXIT
END
POPUP "&Help"
BEGIN
MENUITEM "&About", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "&File" POPUP "&File"

View file

@ -1,5 +1,5 @@
/* Spanish Language resource file. /* Spanish Language resource file.
* Translated by: ?? and Ismael Ferreras Morezuelas <2014-11-07> */ * TRANSLATOR: 2014 Ismael Ferreras Morezuelas */
LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
@ -69,18 +69,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "&Archivo"
BEGIN
MENUITEM "&Salir", ID_REGISTRY_EXIT
END
POPUP "Ay&uda"
BEGIN
MENUITEM "&Acerca de", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "&Archivo" POPUP "&Archivo"
@ -705,7 +693,7 @@ FONT 8, "MS Shell Dlg"
BEGIN BEGIN
DEFPUSHBUTTON "Buscar &siguiente", IDOK, 187, 7, 60, 14 DEFPUSHBUTTON "Buscar &siguiente", IDOK, 187, 7, 60, 14
PUSHBUTTON "Cancelar", IDCANCEL, 187, 24, 60, 14 PUSHBUTTON "Cancelar", IDCANCEL, 187, 24, 60, 14
GROUPBOX "Buscar en ", IDC_STATIC, 7, 25, 63, 51 GROUPBOX "Buscar en", IDC_STATIC, 7, 25, 63, 51
LTEXT "&Buscar:", IDC_STATIC, 7, 8, 30, 10 LTEXT "&Buscar:", IDC_STATIC, 7, 8, 30, 10
EDITTEXT IDC_FINDWHAT, 40, 7, 142, 13, ES_AUTOHSCROLL EDITTEXT IDC_FINDWHAT, 40, 7, 142, 13, ES_AUTOHSCROLL
CONTROL "&Claves", IDC_LOOKAT_KEYS, "Button", BS_AUTOCHECKBOX | CONTROL "&Claves", IDC_LOOKAT_KEYS, "Button", BS_AUTOCHECKBOX |

View file

@ -66,18 +66,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "&Fichier"
BEGIN
MENUITEM "&Quitter", ID_REGISTRY_EXIT
END
POPUP "&Aide"
BEGIN
MENUITEM "&À propos", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "&Fichier" POPUP "&Fichier"

View file

@ -66,18 +66,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "&קובץ"
BEGIN
MENUITEM "&יציאה", ID_REGISTRY_EXIT
END
POPUP "&עזרה"
BEGIN
MENUITEM "&אודות", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "&קובץ" POPUP "&קובץ"

View file

@ -66,18 +66,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "&File"
BEGIN
MENUITEM "&Kilépés", ID_REGISTRY_EXIT
END
POPUP "&Súgó"
BEGIN
MENUITEM "&Névjegy", ID_HELP_ABOUT //FIXME: There are 2 ID_HELP_ABOUT and their text should be synced
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "&File" POPUP "&File"
@ -133,11 +121,11 @@ BEGIN
MENUITEM "&Add to Favorites", ID_FAVOURITES_ADDTOFAVOURITES, GRAYED MENUITEM "&Add to Favorites", ID_FAVOURITES_ADDTOFAVOURITES, GRAYED
MENUITEM "&Remove Favorite", ID_FAVOURITES_REMOVEFAVOURITE, GRAYED MENUITEM "&Remove Favorite", ID_FAVOURITES_REMOVEFAVOURITE, GRAYED
END END
POPUP "&Help" POPUP "&Súgó"
BEGIN BEGIN
MENUITEM "&Help Topics\tF1", ID_HELP_HELPTOPICS MENUITEM "&Help Topics\tF1", ID_HELP_HELPTOPICS
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&About Registry Editor", ID_HELP_ABOUT //FIXME: There are 2 ID_HELP_ABOUT and their text should be synced MENUITEM "&Névjegy", ID_HELP_ABOUT
END END
END END

View file

@ -66,18 +66,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "Be&rkas"
BEGIN
MENUITEM "&Keluar", ID_REGISTRY_EXIT
END
POPUP "&Bantuan"
BEGIN
MENUITEM "&Tentang", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "Be&rkas" POPUP "Be&rkas"
@ -213,9 +201,9 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_POPUP |
CAPTION "Edit String" CAPTION "Edit String"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "&Nama Nilai:", IDC_STATIC, 6, 6, 134, 8 LTEXT "&Nama nilai:", IDC_STATIC, 6, 6, 134, 8
EDITTEXT IDC_VALUE_NAME, 6, 17, 240, 12, ES_AUTOHSCROLL | ES_READONLY EDITTEXT IDC_VALUE_NAME, 6, 17, 240, 12, ES_AUTOHSCROLL | ES_READONLY
LTEXT "&Data Nilai:", IDC_STATIC, 6, 35, 161, 8 LTEXT "&Data nilai:", IDC_STATIC, 6, 35, 161, 8
EDITTEXT IDC_VALUE_DATA, 6, 46, 240, 12, ES_AUTOHSCROLL EDITTEXT IDC_VALUE_DATA, 6, 46, 240, 12, ES_AUTOHSCROLL
DEFPUSHBUTTON "OK", IDOK, 142, 64, 50, 14 DEFPUSHBUTTON "OK", IDOK, 142, 64, 50, 14
PUSHBUTTON "Batal", IDCANCEL, 196, 64, 50, 14 PUSHBUTTON "Batal", IDCANCEL, 196, 64, 50, 14

View file

@ -74,18 +74,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "&File"
BEGIN
MENUITEM "E&sci", ID_REGISTRY_EXIT
END
POPUP "&Aiuto"
BEGIN
MENUITEM "&Informazioni sull'editor del Registro", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "&File" POPUP "&File"

View file

@ -66,18 +66,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "ファイル(&F)"
BEGIN
MENUITEM "レジストリ エディタの終了(&X)", ID_REGISTRY_EXIT
END
POPUP "ヘルプ(&H)"
BEGIN
MENUITEM "バージョン情報(&A)", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "ファイル(&F)" POPUP "ファイル(&F)"

View file

@ -68,18 +68,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "파일(&F)"
BEGIN
MENUITEM "종료(&X)", ID_REGISTRY_EXIT
END
POPUP "도움말(&H)"
BEGIN
MENUITEM "대하여(&A)", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "파일(&F)" POPUP "파일(&F)"

View file

@ -66,18 +66,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "&Bestand"
BEGIN
MENUITEM "&Afsluiten", ID_REGISTRY_EXIT
END
POPUP "&Help"
BEGIN
MENUITEM "&Info", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "&Registerbestand" POPUP "&Registerbestand"

View file

@ -66,18 +66,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "&Fil"
BEGIN
MENUITEM "&Avslutt", ID_REGISTRY_EXIT
END
POPUP "&Hjelp"
BEGIN
MENUITEM "&Om", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "&Fil" POPUP "&Fil"
@ -106,7 +94,7 @@ BEGIN
MENUITEM "&Strengverdi", ID_EDIT_NEW_STRINGVALUE MENUITEM "&Strengverdi", ID_EDIT_NEW_STRINGVALUE
MENUITEM "&Binær verdi", ID_EDIT_NEW_BINARYVALUE MENUITEM "&Binær verdi", ID_EDIT_NEW_BINARYVALUE
MENUITEM "&DWORD-verdi", ID_EDIT_NEW_DWORDVALUE MENUITEM "&DWORD-verdi", ID_EDIT_NEW_DWORDVALUE
MENUITEM "&Multistreng verdi", ID_EDIT_NEW_MULTISTRINGVALUE MENUITEM "&Multistrengverdi", ID_EDIT_NEW_MULTISTRINGVALUE
MENUITEM "&Utvidbar strengverdi", ID_EDIT_NEW_EXPANDABLESTRINGVALUE MENUITEM "&Utvidbar strengverdi", ID_EDIT_NEW_EXPANDABLESTRINGVALUE
END END
MENUITEM SEPARATOR MENUITEM SEPARATOR

View file

@ -1,11 +1,9 @@
/* /*
* Update by Caemyr - Olaf Siejka (Jan, 2007; May, 2011) * 2007-2011 Caemyr - Olaf Siejka
* Use ReactOS forum PM or IRC to contact me * 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) * 2011 Adam Stachowicz (Saibamen) <saibamenppl@gmail.com>
* UTF-8 conversion by Caemyr (May, 2011) * 2011 wojo664
* Update by wojo664 (04.08.2011)
*/ */
LANGUAGE LANG_POLISH, SUBLANG_DEFAULT LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
@ -76,21 +74,9 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "&Plik" //FIXME: harmonize those strings (part1 of 2). I do recommend to use "&Plik" for both!
BEGIN
MENUITEM "Za&kończ", ID_REGISTRY_EXIT
END
POPUP "Pomo&c"
BEGIN
MENUITEM "&Informacje", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "&Rejestr" //FIXME: harmonize those strings (part2 of 2). I do recommend to use "&Plik" for both! POPUP "&Plik"
BEGIN BEGIN
MENUITEM "&Importuj plik rejestru...", ID_REGISTRY_IMPORTREGISTRYFILE MENUITEM "&Importuj plik rejestru...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Eksportuj plik rejestru...", ID_REGISTRY_EXPORTREGISTRYFILE MENUITEM "&Eksportuj plik rejestru...", ID_REGISTRY_EXPORTREGISTRYFILE

View file

@ -66,18 +66,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "&Arquivo"
BEGIN
MENUITEM "Sai&r", ID_REGISTRY_EXIT
END
POPUP "A&juda"
BEGIN
MENUITEM "&Sobre", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "&Arquivo" POPUP "&Arquivo"
@ -95,7 +83,7 @@ BEGIN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Sair", ID_REGISTRY_EXIT MENUITEM "&Sair", ID_REGISTRY_EXIT
END END
POPUP "&Editar" POPUP "&Editar"//FIXME: accelerator collision &E
BEGIN BEGIN
MENUITEM "&Modificar", ID_EDIT_MODIFY MENUITEM "&Modificar", ID_EDIT_MODIFY
MENUITEM SEPARATOR MENUITEM SEPARATOR
@ -120,7 +108,7 @@ BEGIN
MENUITEM "Locali&zar...\tCtrl+F", ID_EDIT_FIND MENUITEM "Locali&zar...\tCtrl+F", ID_EDIT_FIND
MENUITEM "Localizar pró&ximo\tF3", ID_EDIT_FINDNEXT MENUITEM "Localizar pró&ximo\tF3", ID_EDIT_FINDNEXT
END END
POPUP "&Exibir" POPUP "&Exibir"//FIXME: accelerator collision &E
BEGIN BEGIN
MENUITEM "Barra de &status", ID_VIEW_STATUSBAR MENUITEM "Barra de &status", ID_VIEW_STATUSBAR
MENUITEM SEPARATOR MENUITEM SEPARATOR

View file

@ -76,18 +76,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "&Ficheiro"
BEGIN
MENUITEM "Sai&r", ID_REGISTRY_EXIT
END
POPUP "Aj&uda"
BEGIN
MENUITEM "&Acerca do 'Editor de registo'", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "&Ficheiro" POPUP "&Ficheiro"
@ -223,9 +211,9 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_POPUP |
CAPTION "Editar texto" CAPTION "Editar texto"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "Nome do valor:", IDC_STATIC, 5, 5, 119, 8 LTEXT "&Nome do valor:", IDC_STATIC, 5, 5, 119, 8
EDITTEXT IDC_VALUE_NAME, 5, 15, 200, 12, ES_AUTOHSCROLL | ES_READONLY EDITTEXT IDC_VALUE_NAME, 5, 15, 200, 12, ES_AUTOHSCROLL | ES_READONLY
LTEXT "Dados do valor:", IDC_STATIC, 5, 30, 119, 8 LTEXT "&Dados do valor:", IDC_STATIC, 5, 30, 119, 8
EDITTEXT IDC_VALUE_DATA, 5, 40, 200, 12, ES_AUTOHSCROLL EDITTEXT IDC_VALUE_DATA, 5, 40, 200, 12, ES_AUTOHSCROLL
DEFPUSHBUTTON "OK", IDOK, 140, 60, 30, 11 DEFPUSHBUTTON "OK", IDOK, 140, 60, 30, 11
PUSHBUTTON "Cancelar", IDCANCEL, 175, 60, 30, 11 PUSHBUTTON "Cancelar", IDCANCEL, 175, 60, 30, 11

View file

@ -76,18 +76,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "&Fișier"
BEGIN
MENUITEM "I&eșire", ID_REGISTRY_EXIT
END
POPUP "Aj&utor"
BEGIN
MENUITEM "&Despre…", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "&Fișier" POPUP "&Fișier"

View file

@ -79,18 +79,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "&Файл"
BEGIN
MENUITEM "В&ыход", ID_REGISTRY_EXIT
END
POPUP "&Справка"
BEGIN
MENUITEM "&О программе", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "&Файл" POPUP "&Файл"

View file

@ -1,5 +1,4 @@
/* TRANSLATOR : Mário Kačmár /Mario Kacmar/ aka Kario (kario@szm.sk) /* TRANSLATOR: 2008 Mário Kačmár /Mario Kacmar/ aka Kario <kario@szm.sk>
* DATE OF TR.: 07-07-2008
*/ */
LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT
@ -70,18 +69,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "&Súbor"
BEGIN
MENUITEM "S&končiť", ID_REGISTRY_EXIT
END
POPUP "&Pomocník"
BEGIN
MENUITEM "Č&o je", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "&Súbor" POPUP "&Súbor"
@ -241,7 +228,7 @@ END
IDD_EDIT_BIN_DATA DIALOGEX 32, 24, 252, 174 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 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Úprava binárnej hodnoty" //upraviť, upravenie CAPTION "Úprava binárnej hodnoty"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "Value &name:", IDC_STATIC, 6, 6, 134, 8 LTEXT "Value &name:", IDC_STATIC, 6, 6, 134, 8

View file

@ -66,21 +66,9 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "&Datoteka" //FIXME: Harmonize those 2 strings (part 1 of 2). I do recommend to use "&Register" for both. Attention: &D would collide with "D", ID_ADDRESS_FOCUS, VIRTKEY, ALT
BEGIN
MENUITEM "Iz&hod", ID_REGISTRY_EXIT
END
POPUP "&Pomoè"
BEGIN
MENUITEM "&O", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "&Register" //FIXME: Harmonize those 2 strings (part 2 of 2). I do recommend to use "&Register" for both. Attention: &D would collide with "D", ID_ADDRESS_FOCUS, VIRTKEY, ALT POPUP "&Register"
BEGIN BEGIN
MENUITEM "&Uvozi registrsko datoteko...", ID_REGISTRY_IMPORTREGISTRYFILE MENUITEM "&Uvozi registrsko datoteko...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Izvozi registrsko datoteko...", ID_REGISTRY_EXPORTREGISTRYFILE MENUITEM "&Izvozi registrsko datoteko...", ID_REGISTRY_EXPORTREGISTRYFILE

View file

@ -1,5 +1,4 @@
/* TRANSLATOR : Ardit Dani (Ard1t) (ardit.dani@gmail.com) /* TRANSLATOR: 2013 Ardit Dani (Ard1t) <ardit.dani@gmail.com>
* DATE OF TR: 29-11-2013
*/ */
LANGUAGE LANG_ALBANIAN, SUBLANG_NEUTRAL LANGUAGE LANG_ALBANIAN, SUBLANG_NEUTRAL
@ -70,18 +69,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "&File"
BEGIN
MENUITEM "Dil", ID_REGISTRY_EXIT
END
POPUP "Ndihmë"
BEGIN
MENUITEM "rRETH", ID_HELP_ABOUT //FIXME: This string should be synced with the other MENUITEM "Rreth Registry Editor", ID_HELP_ABOUT (part 2 of 2). I did use MENUITEM "Rreth" for both in older releases. //FIXME: It should also have an accelerator.
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "&File" POPUP "&File"
@ -97,7 +84,7 @@ BEGIN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Printo...\tCtrl+P", ID_REGISTRY_PRINT, GRAYED MENUITEM "&Printo...\tCtrl+P", ID_REGISTRY_PRINT, GRAYED
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "Dil", ID_REGISTRY_EXIT MENUITEM "Dil", ID_REGISTRY_EXIT//FIXME: missing accelerator
END END
POPUP "Modifiko" POPUP "Modifiko"
BEGIN BEGIN
@ -137,11 +124,11 @@ BEGIN
MENUITEM "Shto tek Favoritet", ID_FAVOURITES_ADDTOFAVOURITES, GRAYED MENUITEM "Shto tek Favoritet", ID_FAVOURITES_ADDTOFAVOURITES, GRAYED
MENUITEM "Hiq nga Favorite", ID_FAVOURITES_REMOVEFAVOURITE, GRAYED MENUITEM "Hiq nga Favorite", ID_FAVOURITES_REMOVEFAVOURITE, GRAYED
END END
POPUP "Ndihmë" POPUP "Ndihmë"//FIXME: missing accelerator
BEGIN BEGIN
MENUITEM "Ndihmë temë\tF1", ID_HELP_HELPTOPICS MENUITEM "Ndihmë temë\tF1", ID_HELP_HELPTOPICS//FIXME: missing accelerator
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "Rreth Registry Editor", ID_HELP_ABOUT //FIXME: This string should be synced with the other MENUITEM "rRETH", ID_HELP_ABOUT (part 2 of 2). I did use MENUITEM "Rreth" for both in older releases. //FIXME: It should also have an accelerator. MENUITEM "Rreth Registry Editor", ID_HELP_ABOUT//FIXME: missing accelerator
END END
END END

View file

@ -66,21 +66,9 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "&Arkiv" //FIXME: Harmonize that string with POPUP "R&egistret" (part 1 of 2). I used "&Arkiv" for both locations for the backport.
BEGIN
MENUITEM "&Avsluta", ID_REGISTRY_EXIT
END
POPUP "&Hjälp"
BEGIN
MENUITEM "&Om", ID_HELP_ABOUT //FIXME: Harmonize that string with the 2nd ID_HELP_ABOUT (part 1 of 2). I used "&Om" for both in the backport.
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "R&egistret" //FIXME: Harmonize that string with POPUP "&Arkiv" (part 2 of 2). I used "&Arkiv" for both locations for the backport. POPUP "&Arkiv"
BEGIN BEGIN
MENUITEM "&Importera registerfil...", ID_REGISTRY_IMPORTREGISTRYFILE MENUITEM "&Importera registerfil...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Exportera registerfil...", ID_REGISTRY_EXPORTREGISTRYFILE MENUITEM "&Exportera registerfil...", ID_REGISTRY_EXPORTREGISTRYFILE
@ -137,7 +125,7 @@ BEGIN
BEGIN BEGIN
MENUITEM "&Hjälpavsnitt\tF1", ID_HELP_HELPTOPICS MENUITEM "&Hjälpavsnitt\tF1", ID_HELP_HELPTOPICS
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Om Registereditorn", ID_HELP_ABOUT //FIXME: Harmonize that string with the 2nd ID_HELP_ABOUT (part 2 of 2). I used "&Om" for both in the backport. MENUITEM "&Om Registereditorn", ID_HELP_ABOUT
END END
END END

View file

@ -68,18 +68,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "แ&ฟ้ม"
BEGIN
MENUITEM "&ออกจากโปรแกรม", ID_REGISTRY_EXIT
END
POPUP "&ช่วยเหลือ"
BEGIN
MENUITEM "เ&กี่ยวกับ", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "แ&ฟ้ม" POPUP "แ&ฟ้ม"
@ -135,7 +123,7 @@ BEGIN
MENUITEM "&Add to Favorites", ID_FAVOURITES_ADDTOFAVOURITES, GRAYED MENUITEM "&Add to Favorites", ID_FAVOURITES_ADDTOFAVOURITES, GRAYED
MENUITEM "&Remove Favorite", ID_FAVOURITES_REMOVEFAVOURITE, GRAYED MENUITEM "&Remove Favorite", ID_FAVOURITES_REMOVEFAVOURITE, GRAYED
END END
POPUP "&Help" POPUP "&ช่วยเหลือ"
BEGIN BEGIN
MENUITEM "&Help Topics\tF1", ID_HELP_HELPTOPICS MENUITEM "&Help Topics\tF1", ID_HELP_HELPTOPICS
MENUITEM SEPARATOR MENUITEM SEPARATOR

View file

@ -1,4 +1,4 @@
/* TRANSLATOR: 2013-2015 Erdem Ersoy (eersoy93) (erdemersoy [at] erdemersoy [dot] net) */ /* TRANSLATOR: 2013-2015 Erdem Ersoy (eersoy93) <erdemersoy@erdemersoy.net> */
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
@ -68,21 +68,9 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "&Dosya" //FIXME: 3x accelerator collision &D: with POPUP "&Düzen" and also with "D", ID_ADDRESS_FOCUS, VIRTKEY, ALT. I used "&Kütük" for the backport
BEGIN
MENUITEM "&Çıkış", ID_REGISTRY_EXIT
END
POPUP "&Yardım"
BEGIN
MENUITEM "&Hakkında", ID_HELP_ABOUT //FIXME: There are 2 ID_HELP_ABOUT in here. Sync their text! I just used "&Üzerine" for the backport
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "&Dosya" //FIXME: 3x accelerator collision &D: with POPUP "&Düzen" and also with "D", ID_ADDRESS_FOCUS, VIRTKEY, ALT. If you decide to change this then please keep it in sync with the IDC_REGEDIT MENU. I used "&Kütük" for the backport POPUP "&Kütük"
BEGIN BEGIN
MENUITEM "&Al...", ID_REGISTRY_IMPORTREGISTRYFILE MENUITEM "&Al...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Ver...", ID_REGISTRY_EXPORTREGISTRYFILE MENUITEM "&Ver...", ID_REGISTRY_EXPORTREGISTRYFILE
@ -97,7 +85,7 @@ BEGIN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Çıkış", ID_REGISTRY_EXIT MENUITEM "&Çıkış", ID_REGISTRY_EXIT
END END
POPUP "&Düzen" //FIXME: 3x accelerator collision &D: with POPUP "&Dosya" and also with "D", ID_ADDRESS_FOCUS, VIRTKEY, ALT. POPUP "&Düzen" //FIXME: 2x accelerator collision &D: with "D", ID_ADDRESS_FOCUS, VIRTKEY, ALT.
BEGIN BEGIN
MENUITEM "&Değiştir...", ID_EDIT_MODIFY MENUITEM "&Değiştir...", ID_EDIT_MODIFY
MENUITEM SEPARATOR MENUITEM SEPARATOR
@ -139,7 +127,7 @@ BEGIN
BEGIN BEGIN
MENUITEM "&Yardım Konuları\tF1", ID_HELP_HELPTOPICS MENUITEM "&Yardım Konuları\tF1", ID_HELP_HELPTOPICS
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Kayıt Defteri Düzenleyicisi Hakkında", ID_HELP_ABOUT //FIXME: There are 2 ID_HELP_ABOUT in here. Sync their text! I just used "&Üzerine" for the backport MENUITEM "&Kayıt Defteri Düzenleyicisi Hakkında", ID_HELP_ABOUT
END END
END END

View file

@ -68,21 +68,9 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "&Файл" //FIXME: Harmonize this string (part 1 of 2)
BEGIN
MENUITEM "В&ихід", ID_REGISTRY_EXIT
END
POPUP "&Довідка"
BEGIN
MENUITEM "Пр&о програму", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "Фа&йл" //FIXME: Harmonize this string (part 2 of 2) POPUP "&Файл"
BEGIN BEGIN
MENUITEM "&Імпорт...", ID_REGISTRY_IMPORTREGISTRYFILE MENUITEM "&Імпорт...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Експорт...", ID_REGISTRY_EXPORTREGISTRYFILE MENUITEM "&Експорт...", ID_REGISTRY_EXPORTREGISTRYFILE

View file

@ -76,18 +76,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "文件(&F)"
BEGIN
MENUITEM "退出(&X)", ID_REGISTRY_EXIT
END
POPUP "帮助(&H)"
BEGIN
MENUITEM "关于注册表编辑器(&A)", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "文件(&F)" POPUP "文件(&F)"

View file

@ -75,18 +75,6 @@ END
/* Menus */ /* Menus */
IDC_REGEDIT MENU
BEGIN
POPUP "檔案(&F)"
BEGIN
MENUITEM "結束(&X)", ID_REGISTRY_EXIT
END
POPUP "說明(&H)"
BEGIN
MENUITEM "關於登錄編輯程式(&A)", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU IDR_REGEDIT_MENU MENU
BEGIN BEGIN
POPUP "檔案(&F)" POPUP "檔案(&F)"

View file

@ -2,20 +2,7 @@
* Regedit listviews * Regedit listviews
* *
* Copyright (C) 2002 Robert Dickenson <robd@reactos.org> * Copyright (C) 2002 Robert Dickenson <robd@reactos.org>
* * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include "regedit.h" #include "regedit.h"
@ -24,8 +11,8 @@
#define CY_ICON 16 #define CY_ICON 16
#define LISTVIEW_NUM_ICONS 2 #define LISTVIEW_NUM_ICONS 2
int Image_String = 0; int Image_String;
int Image_Bin = 0; int Image_Bin;
INT iListViewSelect = -1; INT iListViewSelect = -1;
typedef struct tagLINE_INFO typedef struct tagLINE_INFO
@ -46,7 +33,7 @@ typedef struct tagSORT_INFO
* Global and Local Variables: * Global and Local Variables:
*/ */
static INT g_iSortedColumn = 0; static INT g_iSortedColumn;
#define MAX_LIST_COLUMNS (IDS_LIST_COLUMN_LAST - IDS_LIST_COLUMN_FIRST + 1) #define MAX_LIST_COLUMNS (IDS_LIST_COLUMN_LAST - IDS_LIST_COLUMN_FIRST + 1)
static const int default_column_widths[MAX_LIST_COLUMNS] = { 35, 25, 40 }; /* in percents */ static const int default_column_widths[MAX_LIST_COLUMNS] = { 35, 25, 40 }; /* in percents */
@ -665,7 +652,6 @@ void DestroyListView(HWND hwndLV)
free(((LINE_INFO*)item.lParam)->name); free(((LINE_INFO*)item.lParam)->name);
HeapFree(GetProcessHeap(), 0, (void*)item.lParam); HeapFree(GetProcessHeap(), 0, (void*)item.lParam);
} }
} }
BOOL RefreshListView(HWND hwndLV, HKEY hKey, LPCWSTR keyPath, BOOL bSelectNone) BOOL RefreshListView(HWND hwndLV, HKEY hKey, LPCWSTR keyPath, BOOL bSelectNone)

View file

@ -2,20 +2,7 @@
* Regedit main function * Regedit main function
* *
* Copyright (C) 2002 Robert Dickenson <robd@reactos.org> * Copyright (C) 2002 Robert Dickenson <robd@reactos.org>
* * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include "regedit.h" #include "regedit.h"
@ -35,7 +22,7 @@ HINSTANCE hInst;
HWND hFrameWnd; HWND hFrameWnd;
HWND hStatusBar; HWND hStatusBar;
HMENU hMenuFrame; HMENU hMenuFrame;
HMENU hPopupMenus = 0; HMENU hPopupMenus;
UINT nClipboardFormat; UINT nClipboardFormat;
LPCWSTR strClipboardFormat = L"TODO: SET CORRECT FORMAT"; LPCWSTR strClipboardFormat = L"TODO: SET CORRECT FORMAT";
@ -45,19 +32,13 @@ WCHAR szFrameClass[MAX_LOADSTRING];
WCHAR szChildClass[MAX_LOADSTRING]; WCHAR szChildClass[MAX_LOADSTRING];
/******************************************************************************* /**
*
*
* FUNCTION: InitInstance(HANDLE, int)
*
* PURPOSE: Saves instance handle and creates main window * PURPOSE: Saves instance handle and creates main window
* *
* COMMENTS: * COMMENTS:
*
* In this function, we save the instance handle in a global variable and * In this function, we save the instance handle in a global variable and
* create and display the main program window. * create and display the main program window.
*/ */
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{ {
BOOL AclUiAvailable; BOOL AclUiAvailable;
@ -133,11 +114,8 @@ BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS | WS_CLIPCHILDREN, WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS | WS_CLIPCHILDREN,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, hMenuFrame, hInstance, NULL/*lpParam*/); NULL, hMenuFrame, hInstance, NULL/*lpParam*/);
if (!hFrameWnd) if (!hFrameWnd)
{
return FALSE; return FALSE;
}
/* Create the status bar */ /* Create the status bar */
hStatusBar = CreateStatusWindowW(WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | SBT_NOBORDERS, hStatusBar = CreateStatusWindowW(WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | SBT_NOBORDERS,
@ -154,20 +132,15 @@ BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
return TRUE; return TRUE;
} }
/******************************************************************************/
/* /*
* We need to destroy the main menu before destroying the main window * We need to destroy the main menu before destroying the main window
* to avoid a memory leak. * to avoid a memory leak.
*/ */
void DestroyMainMenu() void DestroyMainMenu()
{ {
DestroyMenu(hMenuFrame); DestroyMenu(hMenuFrame);
} }
/******************************************************************************/
void ExitInstance(HINSTANCE hInstance) void ExitInstance(HINSTANCE hInstance)
{ {
UnregisterHexEditorClass(hInstance); UnregisterHexEditorClass(hInstance);
@ -224,16 +197,13 @@ int WINAPI wWinMain(HINSTANCE hInstance,
LoadStringW(hInstance, IDC_REGEDIT, szChildClass, ARRAY_SIZE(szChildClass)); LoadStringW(hInstance, IDC_REGEDIT, szChildClass, ARRAY_SIZE(szChildClass));
if (ProcessCmdLine(GetCommandLineW())) if (ProcessCmdLine(GetCommandLineW()))
{
return 0; return 0;
}
switch (GetUserDefaultUILanguage()) switch (GetUserDefaultUILanguage())
{ {
case MAKELANGID(LANG_HEBREW, SUBLANG_DEFAULT): case MAKELANGID(LANG_HEBREW, SUBLANG_DEFAULT):
SetProcessDefaultLayout(LAYOUT_RTL); SetProcessDefaultLayout(LAYOUT_RTL);
break; break;
default: default:
break; break;
} }
@ -242,9 +212,8 @@ int WINAPI wWinMain(HINSTANCE hInstance,
/* Perform application initialization */ /* Perform application initialization */
if (!InitInstance(hInstance, nCmdShow)) if (!InitInstance(hInstance, nCmdShow))
{
return 0; return 0;
}
hAccel = LoadAcceleratorsW(hInstance, MAKEINTRESOURCEW(ID_ACCEL)); hAccel = LoadAcceleratorsW(hInstance, MAKEINTRESOURCEW(ID_ACCEL));
/* Main message loop */ /* Main message loop */

View file

@ -2,20 +2,7 @@
* Regedit definitions * Regedit definitions
* *
* Copyright (C) 2002 Robert Dickenson <robd@reactos.org> * Copyright (C) 2002 Robert Dickenson <robd@reactos.org>
* * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#pragma once #pragma once

View file

@ -2,20 +2,7 @@
* Windows regedit.exe registry editor implementation. * Windows regedit.exe registry editor implementation.
* *
* Copyright 2002 Andriy Palamarchuk * Copyright 2002 Andriy Palamarchuk
* * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#ifndef __REACTOS__ #ifndef __REACTOS__

View file

@ -2,20 +2,7 @@
* Regedit resources * Regedit resources
* *
* Copyright 2002 Robert Dickenson * Copyright 2002 Robert Dickenson
* * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include <windef.h> #include <windef.h>

View file

@ -5,20 +5,7 @@
* Copyright 1999 Sylvain St-Germain * Copyright 1999 Sylvain St-Germain
* Copyright 2002 Andriy Palamarchuk * Copyright 2002 Andriy Palamarchuk
* Copyright 2008 Alexander N. Sørnes <alex@thehandofagony.com> * Copyright 2008 Alexander N. Sørnes <alex@thehandofagony.com>
* * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#ifdef __REACTOS__ #ifdef __REACTOS__

View file

@ -2,20 +2,7 @@
* Regedit resource definitions * Regedit resource definitions
* *
* Copyright 2002 Robert Dickenson * Copyright 2002 Robert Dickenson
* * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#pragma once #pragma once
@ -271,7 +258,6 @@
#define IDS_SHARE_SHARED 31620 #define IDS_SHARE_SHARED 31620
#define IDS_SHARE_UNDETERMINED 31621 #define IDS_SHARE_UNDETERMINED 31621
#define IDD_EDIT_STRING 2000 #define IDD_EDIT_STRING 2000
#define IDC_VALUE_NAME 2001 #define IDC_VALUE_NAME 2001
#define IDC_VALUE_DATA 2002 #define IDC_VALUE_DATA 2002

View file

@ -1,21 +1,8 @@
/* /*
* Regedit ACL Editor for Registry Keys * Regedit ACL Editor for Registry Keys
* *
* Copyright (C) 2004 - 2006 Thomas Weidenmueller <w3seek@reactos.com> * Copyright (C) 2004-2006 Thomas Weidenmueller <w3seek@reactos.com>
* * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include "regedit.h" #include "regedit.h"
@ -89,9 +76,7 @@ CRegKeySecurity_fnRelease(PCRegKeySecurity obj)
Ret = (ULONG)InterlockedDecrement((LONG*)&obj->ref); Ret = (ULONG)InterlockedDecrement((LONG*)&obj->ref);
if (Ret == 0) if (Ret == 0)
{ {
HeapFree(GetProcessHeap(), HeapFree(GetProcessHeap(), 0, obj);
0,
obj);
} }
return Ret; return Ret;
@ -104,31 +89,23 @@ CRegKeySecurity_fnQueryInterface(PCRegKeySecurity obj,
{ {
PVOID pvObj = NULL; PVOID pvObj = NULL;
if (IsEqualGUID(iid, if (IsEqualGUID(iid, &IID_IRegKeySecurity))
&IID_IRegKeySecurity))
{ {
pvObj = (PVOID)impl_to_interface(obj, pvObj = (PVOID)impl_to_interface(obj, ISecurityInformation);
ISecurityInformation);
} }
#if REGEDIT_IMPLEMENT_ISECURITYINFORMATION2 #if REGEDIT_IMPLEMENT_ISECURITYINFORMATION2
else if (IsEqualGUID(iid, else if (IsEqualGUID(iid, &IID_IRegKeySecurity2))
&IID_IRegKeySecurity2))
{ {
pvObj = (PVOID)impl_to_interface(obj, pvObj = (PVOID)impl_to_interface(obj, ISecurityInformation2);
ISecurityInformation2);
} }
#endif #endif
else if (IsEqualGUID(iid, else if (IsEqualGUID(iid, &IID_IEffectivePermission))
&IID_IEffectivePermission))
{ {
pvObj = (PVOID)impl_to_interface(obj, pvObj = (PVOID)impl_to_interface(obj, IEffectivePermission);
IEffectivePermission);
} }
else if (IsEqualGUID(iid, else if (IsEqualGUID(iid, &IID_ISecurityObjectTypeInfo))
&IID_ISecurityObjectTypeInfo))
{ {
pvObj = (PVOID)impl_to_interface(obj, pvObj = (PVOID)impl_to_interface(obj, ISecurityObjectTypeInfo);
ISecurityObjectTypeInfo);
} }
if (pvObj == NULL) if (pvObj == NULL)
@ -370,8 +347,7 @@ ISecurityInformation_fnQueryInterface(struct ISecurityInformation *this,
REFIID iid, REFIID iid,
PVOID *pvObject) PVOID *pvObject)
{ {
if (IsEqualGUID(iid, if (IsEqualGUID(iid, &IID_IUnknown))
&IID_IUnknown))
{ {
*pvObject = (PVOID)this; *pvObject = (PVOID)this;
ISecurityInformation_fnAddRef(this); ISecurityInformation_fnAddRef(this);
@ -458,8 +434,7 @@ ISecurityInformation_fnMapGeneric(struct ISecurityInformation *this,
UCHAR* pAceFlags, UCHAR* pAceFlags,
ACCESS_MASK* pMask) ACCESS_MASK* pMask)
{ {
MapGenericMask(pMask, MapGenericMask(pMask, &RegAccessMasks);
&RegAccessMasks);
*pMask &= ~SYNCHRONIZE; *pMask &= ~SYNCHRONIZE;
return S_OK; return S_OK;
} }
@ -501,8 +476,7 @@ ISecurityInformation2_fnQueryInterface(struct ISecurityInformation2 *this,
REFIID iid, REFIID iid,
PVOID *pvObject) PVOID *pvObject)
{ {
if (IsEqualGUID(iid, if (IsEqualGUID(iid, &IID_IUnknown))
&IID_IUnknown))
{ {
*pvObject = (PVOID)this; *pvObject = (PVOID)this;
ISecurityInformation2_fnAddRef(this); ISecurityInformation2_fnAddRef(this);
@ -554,8 +528,7 @@ IEffectivePermission_fnQueryInterface(struct IEffectivePermission *this,
REFIID iid, REFIID iid,
PVOID *pvObject) PVOID *pvObject)
{ {
if (IsEqualGUID(iid, if (IsEqualGUID(iid, &IID_IUnknown))
&IID_IUnknown))
{ {
*pvObject = (PVOID)this; *pvObject = (PVOID)this;
IEffectivePermission_fnAddRef(this); IEffectivePermission_fnAddRef(this);
@ -600,8 +573,7 @@ IEffectivePermission_fnGetEffectivePermission(struct IEffectivePermission *this,
*ppObjectTypeList = &DefObjTypeList; *ppObjectTypeList = &DefObjTypeList;
*pcObjectTypeListLength = 1; *pcObjectTypeListLength = 1;
BuildTrusteeWithSid(&Trustee, BuildTrusteeWithSid(&Trustee, pUserSid);
pUserSid);
if (GetSecurityDescriptorDacl(pSD, if (GetSecurityDescriptorDacl(pSD,
&DaclPresent, &DaclPresent,
@ -642,8 +614,7 @@ ISecurityObjectTypeInfo_fnQueryInterface(struct ISecurityObjectTypeInfo *this,
REFIID iid, REFIID iid,
PVOID *pvObject) PVOID *pvObject)
{ {
if (IsEqualGUID(iid, if (IsEqualGUID(iid, &IID_IUnknown))
&IID_IUnknown))
{ {
*pvObject = (PVOID)this; *pvObject = (PVOID)this;
ISecurityObjectTypeInfo_fnAddRef(this); ISecurityObjectTypeInfo_fnAddRef(this);
@ -680,13 +651,9 @@ ISecurityObjectTypeInfo_fnGetInheritSource(struct ISecurityObjectTypeInfo *this,
LPWSTR lpBuf; LPWSTR lpBuf;
pifSize = pACL->AceCount * sizeof(INHERITED_FROM); pifSize = pACL->AceCount * sizeof(INHERITED_FROM);
pif = (PINHERITED_FROM)HeapAlloc(GetProcessHeap(), pif = (PINHERITED_FROM)HeapAlloc(GetProcessHeap(), 0, pifSize);
0,
pifSize);
if (pif == NULL) if (pif == NULL)
{
return E_OUTOFMEMORY; return E_OUTOFMEMORY;
}
ErrorCode = GetInheritanceSourceW(obj->szRegKey, ErrorCode = GetInheritanceSourceW(obj->szRegKey,
SE_REGISTRY_KEY, SE_REGISTRY_KEY,
@ -698,23 +665,17 @@ ISecurityObjectTypeInfo_fnGetInheritSource(struct ISecurityObjectTypeInfo *this,
NULL, NULL,
&RegAccessMasks, &RegAccessMasks,
pif); pif);
if (ErrorCode == ERROR_SUCCESS) if (ErrorCode == ERROR_SUCCESS)
{ {
/* Calculate the size of the buffer to return */ /* Calculate the size of the buffer to return */
for (i = 0; for (i = 0; i < pACL->AceCount; i++)
i < pACL->AceCount;
i++)
{ {
if (pif[i].AncestorName != NULL) if (pif[i].AncestorName != NULL)
{
pifSize += (wcslen(pif[i].AncestorName) + 1) * sizeof(WCHAR); pifSize += (wcslen(pif[i].AncestorName) + 1) * sizeof(WCHAR);
} }
}
/* Allocate enough space for the array and the strings */ /* Allocate enough space for the array and the strings */
pif2 = (PINHERITED_FROM)LocalAlloc(LMEM_FIXED, pif2 = (PINHERITED_FROM)LocalAlloc(LMEM_FIXED, pifSize);
pifSize);
if (pif2 == NULL) if (pif2 == NULL)
{ {
ErrorCode = GetLastError(); ErrorCode = GetLastError();
@ -723,9 +684,7 @@ ISecurityObjectTypeInfo_fnGetInheritSource(struct ISecurityObjectTypeInfo *this,
/* copy the array and strings to the buffer */ /* copy the array and strings to the buffer */
lpBuf = (LPWSTR)((ULONG_PTR)pif2 + (pACL->AceCount * sizeof(INHERITED_FROM))); lpBuf = (LPWSTR)((ULONG_PTR)pif2 + (pACL->AceCount * sizeof(INHERITED_FROM)));
for (i = 0; for (i = 0; i < pACL->AceCount; i++)
i < pACL->AceCount;
i++)
{ {
pif2[i].GenerationGap = pif[i].GenerationGap; pif2[i].GenerationGap = pif[i].GenerationGap;
if (pif[i].AncestorName != NULL) if (pif[i].AncestorName != NULL)
@ -744,12 +703,8 @@ ISecurityObjectTypeInfo_fnGetInheritSource(struct ISecurityObjectTypeInfo *this,
} }
Cleanup: Cleanup:
FreeInheritedFromArray(pif, FreeInheritedFromArray(pif, pACL->AceCount, NULL);
pACL->AceCount, HeapFree(GetProcessHeap(), 0, pif);
NULL);
HeapFree(GetProcessHeap(),
0,
pif);
return HRESULT_FROM_WIN32(ErrorCode); return HRESULT_FROM_WIN32(ErrorCode);
} }
@ -890,26 +845,18 @@ RegKeyEditPermissions(HWND hWndOwner,
if (lnMachine != 0) if (lnMachine != 0)
{ {
wcscat(lpKeyPath, wcscat(lpKeyPath, L"\\\\");
L"\\\\"); wcscat(lpKeyPath, lpMachine);
wcscat(lpKeyPath, wcscat(lpKeyPath, L"\\");
lpMachine);
wcscat(lpKeyPath,
L"\\");
} }
wcscat(lpKeyPath, wcscat(lpKeyPath, lphKey);
lphKey);
if (lpKeyName != NULL && lpKeyName[0] != L'\0') if (lpKeyName != NULL && lpKeyName[0] != L'\0')
{ {
if (lpKeyName[0] != L'\\') if (lpKeyName[0] != L'\\')
{ wcscat(lpKeyPath, L"\\");
wcscat(lpKeyPath,
L"\\");
}
wcscat(lpKeyPath, wcscat(lpKeyPath, lpKeyName);
lpKeyName);
} }
ObjectInfo.dwFlags = SI_EDIT_ALL | SI_ADVANCED | SI_CONTAINER | SI_EDIT_EFFECTIVE | SI_EDIT_PERMS | ObjectInfo.dwFlags = SI_EDIT_ALL | SI_ADVANCED | SI_CONTAINER | SI_EDIT_EFFECTIVE | SI_EDIT_PERMS |
@ -928,20 +875,14 @@ RegKeyEditPermissions(HWND hWndOwner,
} }
/* display the security editor dialog */ /* display the security editor dialog */
pfnEditSecurity(hWndOwner, pfnEditSecurity(hWndOwner, impl_to_interface(RegKeySecurity, ISecurityInformation));
impl_to_interface(RegKeySecurity,
ISecurityInformation));
/* dereference the interface, it should be destroyed here */ /* dereference the interface, it should be destroyed here */
CRegKeySecurity_fnRelease(RegKeySecurity); CRegKeySecurity_fnRelease(RegKeySecurity);
Cleanup: Cleanup:
if (lpKeyPath != NULL) if (lpKeyPath != NULL)
{ HeapFree(GetProcessHeap(), 0, lpKeyPath);
HeapFree(GetProcessHeap(),
0,
lpKeyPath);
}
return Result; return Result;
} }

View file

@ -1,22 +1,9 @@
/* /*
* Regedit settings * Regedit settings
* *
* Copyright (C) 2012 Edijs Kolesnikovics <terminedijs@yahoo.com> * Copyright 2012 Edijs Kolesnikovics <terminedijs@yahoo.com>
* Copyright (C) 2012 Grégori Macário Harbs <mysoft64bits at gmail dot com> * Copyright 2012 Grégori Macário Harbs <mysoft64bits@gmail.com>
* * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include "regedit.h" #include "regedit.h"

View file

@ -2,35 +2,20 @@
* Regedit treeview * Regedit treeview
* *
* Copyright (C) 2002 Robert Dickenson <robd@reactos.org> * Copyright (C) 2002 Robert Dickenson <robd@reactos.org>
* * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include "regedit.h" #include "regedit.h"
/* Global variables and constants */ /* Global variables and constants */
/* Image_Open, Image_Closed, and Image_Root - integer variables for indexes of the images. */ /* Image_Open, Image_Closed, and Image_Root - integer variables for indexes of the images */
/* CX_ICON and CY_ICON - width and height of an icon. */ static int Image_Open;
/* NUM_ICON - number of icons to add to the image list. */ static int Image_Closed;
static int Image_Open = 0; static int Image_Root;
static int Image_Closed = 0;
static int Image_Root = 0;
static LPWSTR pathBuffer; static LPWSTR pathBuffer;
#define NUM_ICONS 3 #define NUM_ICONS 3 /* number of icons to add to the image list */
/* External resources in shell32.dll */ /* External resources in shell32.dll */
#define IDI_SHELL_FOLDER 4 #define IDI_SHELL_FOLDER 4
@ -92,17 +77,13 @@ LPCWSTR GetItemPath(HWND hwndTV, HTREEITEM hItem, HKEY* phRootKey)
*phRootKey = NULL; *phRootKey = NULL;
if (!pathBuffer) if (!pathBuffer)
{
pathBuffer = HeapAlloc(GetProcessHeap(), 0, 1024); pathBuffer = HeapAlloc(GetProcessHeap(), 0, 1024);
}
if (!pathBuffer) if (!pathBuffer)
{
return NULL; return NULL;
}
*pathBuffer = UNICODE_NULL; *pathBuffer = UNICODE_NULL;
maxLen = (int) HeapSize(GetProcessHeap(), 0, pathBuffer); maxLen = (int)HeapSize(GetProcessHeap(), 0, pathBuffer);
if (!hItem) if (!hItem)
{ {
@ -444,7 +425,6 @@ static BOOL InitTreeViewItems(HWND hwndTV, LPWSTR pHostName)
return TRUE; return TRUE;
} }
/* /*
* InitTreeViewImageLists - creates an image list, adds three bitmaps * InitTreeViewImageLists - creates an image list, adds three bitmaps
* to it, and associates the image list with a tree view control. * to it, and associates the image list with a tree view control.
@ -580,7 +560,6 @@ done:
return TRUE; return TRUE;
} }
BOOL CreateNewKey(HWND hwndTV, HTREEITEM hItem) BOOL CreateNewKey(HWND hwndTV, HTREEITEM hItem)
{ {
WCHAR szNewKeyFormat[128]; WCHAR szNewKeyFormat[128];