Alexander Nicolaysen Sørnes : regedit: Convert value creation to unicode.
Alexandre Julliard
julliard at winehq.org
Fri Aug 29 07:29:19 CDT 2008
Module: wine
Branch: master
Commit: 9d6b80b12131808d806564bb72d2ea14d6ee13ab
URL: http://source.winehq.org/git/wine.git/?a=commit;h=9d6b80b12131808d806564bb72d2ea14d6ee13ab
Author: Alexander Nicolaysen Sørnes <alex at thehandofagony.com>
Date: Thu Aug 28 16:18:44 2008 +0200
regedit: Convert value creation to unicode.
---
programs/regedit/edit.c | 14 ++++----
programs/regedit/framewnd.c | 71 ++++++++++++++++++++++--------------------
programs/regedit/main.h | 2 +-
3 files changed, 45 insertions(+), 42 deletions(-)
diff --git a/programs/regedit/edit.c b/programs/regedit/edit.c
index 1c26baa..4e4c1ed 100644
--- a/programs/regedit/edit.c
+++ b/programs/regedit/edit.c
@@ -449,27 +449,27 @@ done:
return result;
}
-BOOL CreateValue(HWND hwnd, HKEY hKeyRoot, LPCTSTR keyPath, DWORD valueType, LPTSTR valueName)
+BOOL CreateValue(HWND hwnd, HKEY hKeyRoot, LPCWSTR keyPath, DWORD valueType, LPWSTR valueName)
{
LONG lRet = ERROR_SUCCESS;
- TCHAR newValue[256];
+ WCHAR newValue[256];
DWORD valueDword = 0;
BOOL result = FALSE;
int valueNum;
HKEY hKey;
- lRet = RegOpenKeyEx(hKeyRoot, keyPath, 0, KEY_READ | KEY_SET_VALUE, &hKey);
+ lRet = RegOpenKeyExW(hKeyRoot, keyPath, 0, KEY_READ | KEY_SET_VALUE, &hKey);
if (lRet != ERROR_SUCCESS) {
error_code_messagebox(hwnd, lRet);
return FALSE;
}
- if (!LoadString(GetModuleHandle(0), IDS_NEWVALUE, newValue, COUNT_OF(newValue))) goto done;
+ if (!LoadStringW(GetModuleHandle(0), IDS_NEWVALUE, newValue, COUNT_OF(newValue))) goto done;
/* try to find out a name for the newly create key (max 100 times) */
for (valueNum = 1; valueNum < 100; valueNum++) {
- wsprintf(valueName, newValue, valueNum);
- lRet = RegQueryValueEx(hKey, valueName, 0, 0, 0, 0);
+ wsprintfW(valueName, newValue, valueNum);
+ lRet = RegQueryValueExW(hKey, valueName, 0, 0, 0, 0);
if (lRet == ERROR_FILE_NOT_FOUND) break;
}
if (lRet != ERROR_FILE_NOT_FOUND) {
@@ -477,7 +477,7 @@ BOOL CreateValue(HWND hwnd, HKEY hKeyRoot, LPCTSTR keyPath, DWORD valueType, LPT
goto done;
}
- lRet = RegSetValueEx(hKey, valueName, 0, valueType, (BYTE*)&valueDword, sizeof(DWORD));
+ lRet = RegSetValueExW(hKey, valueName, 0, valueType, (BYTE*)&valueDword, sizeof(DWORD));
if (lRet != ERROR_SUCCESS) {
error_code_messagebox(hwnd, lRet);
goto done;
diff --git a/programs/regedit/framewnd.c b/programs/regedit/framewnd.c
index dc76eab..2053f70 100644
--- a/programs/regedit/framewnd.c
+++ b/programs/regedit/framewnd.c
@@ -636,15 +636,11 @@ static INT_PTR CALLBACK removefavorite_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM w
static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HKEY hKeyRoot = 0;
- LPCTSTR keyPath;
LPCTSTR valueName;
- TCHAR newKey[MAX_NEW_KEY_LEN];
DWORD valueType;
int curIndex;
BOOL firstItem = TRUE;
- keyPath = GetItemPath(g_pChildWnd->hTreeWnd, 0, &hKeyRoot);
-
if (LOWORD(wParam) >= ID_FAVORITE_FIRST && LOWORD(wParam) <= ID_FAVORITE_LAST) {
HKEY hKey;
if (RegOpenKeyExW(HKEY_CURRENT_USER, favoritesKey,
@@ -683,15 +679,15 @@ static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
}
case ID_EDIT_DELETE:
if (GetFocus() == g_pChildWnd->hTreeWnd) {
- WCHAR* keyPathW = GetWideString(keyPath);
+ WCHAR* keyPath = GetItemPathW(g_pChildWnd->hTreeWnd, 0, &hKeyRoot);
if (keyPath == 0 || *keyPath == 0) {
- MessageBeep(MB_ICONHAND);
- } else if (DeleteKey(hWnd, hKeyRoot, keyPathW)) {
+ MessageBeep(MB_ICONHAND);
+ } else if (DeleteKey(hWnd, hKeyRoot, keyPath)) {
DeleteNode(g_pChildWnd->hTreeWnd, 0);
}
- HeapFree(GetProcessHeap(), 0, keyPathW);
+ HeapFree(GetProcessHeap(), 0, keyPath);
} else if (GetFocus() == g_pChildWnd->hListWnd) {
- WCHAR* keyPathW = GetItemPathW(g_pChildWnd->hTreeWnd, 0, &hKeyRoot);
+ WCHAR* keyPath = GetItemPathW(g_pChildWnd->hTreeWnd, 0, &hKeyRoot);
curIndex = ListView_GetNextItem(g_pChildWnd->hListWnd, -1, LVNI_SELECTED);
while(curIndex != -1) {
WCHAR* valueNameW;
@@ -705,7 +701,7 @@ static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
break;
}
valueNameW = GetWideString(valueName);
- if (!DeleteValue(hWnd, hKeyRoot, keyPathW, valueNameW, curIndex==-1 && firstItem))
+ if (!DeleteValue(hWnd, hKeyRoot, keyPath, valueNameW, curIndex==-1 && firstItem))
{
HeapFree(GetProcessHeap(), 0, valueNameW);
break;
@@ -713,8 +709,8 @@ static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
firstItem = FALSE;
HeapFree(GetProcessHeap(), 0, valueNameW);
}
- RefreshListView(g_pChildWnd->hListWnd, hKeyRoot, keyPathW, NULL);
- HeapFree(GetProcessHeap(), 0, keyPathW);
+ RefreshListView(g_pChildWnd->hListWnd, hKeyRoot, keyPath, NULL);
+ HeapFree(GetProcessHeap(), 0, keyPath);
}
break;
case ID_EDIT_MODIFY:
@@ -722,10 +718,12 @@ static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
LPCWSTR valueNameW = GetValueName(g_pChildWnd->hListWnd);
CHAR* valueNameA = GetMultiByteString(valueNameW);
WCHAR* keyPathW = GetItemPathW(g_pChildWnd->hTreeWnd, 0, &hKeyRoot);
- if (ModifyValue(hWnd, hKeyRoot, keyPath, valueNameA))
+ CHAR* keyPathA = GetMultiByteString(keyPathW);
+ if (ModifyValue(hWnd, hKeyRoot, keyPathA, valueNameA))
RefreshListView(g_pChildWnd->hListWnd, hKeyRoot, keyPathW, valueNameW);
HeapFree(GetProcessHeap(), 0, valueNameA);
HeapFree(GetProcessHeap(), 0, keyPathW);
+ HeapFree(GetProcessHeap(), 0, keyPathA);
break;
}
case ID_EDIT_FIND:
@@ -774,12 +772,12 @@ static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
case ID_EDIT_NEW_KEY:
{
WCHAR newKeyW[MAX_NEW_KEY_LEN];
- WCHAR* keyPathW = GetWideString(keyPath);
- if (CreateKey(hWnd, hKeyRoot, keyPathW, newKeyW)) {
+ WCHAR* keyPath = GetItemPathW(g_pChildWnd->hTreeWnd, 0, &hKeyRoot);
+ if (CreateKey(hWnd, hKeyRoot, keyPath, newKeyW)) {
if (InsertNode(g_pChildWnd->hTreeWnd, 0, newKeyW))
StartKeyRename(g_pChildWnd->hTreeWnd);
}
- HeapFree(GetProcessHeap(), 0, keyPathW);
+ HeapFree(GetProcessHeap(), 0, keyPath);
}
break;
case ID_EDIT_NEW_STRINGVALUE:
@@ -795,24 +793,29 @@ static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
valueType = REG_DWORD;
/* fall through */
create_value:
- if (CreateValue(hWnd, hKeyRoot, keyPath, valueType, newKey)) {
- WCHAR* keyPathW = GetItemPathW(g_pChildWnd->hTreeWnd, 0, &hKeyRoot);
- WCHAR* newKeyW = GetWideString(newKey);
- RefreshListView(g_pChildWnd->hListWnd, hKeyRoot, keyPathW, newKeyW);
- HeapFree(GetProcessHeap(), 0, keyPathW);
- HeapFree(GetProcessHeap(), 0, newKeyW);
+ {
+ WCHAR* keyPath = GetItemPathW(g_pChildWnd->hTreeWnd, 0, &hKeyRoot);
+ WCHAR newKey[MAX_NEW_KEY_LEN];
+ if (CreateValue(hWnd, hKeyRoot, keyPath, valueType, newKey)) {
+ RefreshListView(g_pChildWnd->hListWnd, hKeyRoot, keyPath, newKey);
StartValueRename(g_pChildWnd->hListWnd);
- /* FIXME: start rename */
- }
+ /* FIXME: start rename */
+ }
+ HeapFree(GetProcessHeap(), 0, keyPath);
+ }
break;
case ID_EDIT_RENAME:
- if (keyPath == 0 || *keyPath == 0) {
- MessageBeep(MB_ICONHAND);
- } else if (GetFocus() == g_pChildWnd->hTreeWnd) {
- StartKeyRename(g_pChildWnd->hTreeWnd);
- } else if (GetFocus() == g_pChildWnd->hListWnd) {
- StartValueRename(g_pChildWnd->hListWnd);
- }
+ {
+ WCHAR* keyPath = GetItemPathW(g_pChildWnd->hTreeWnd, 0, &hKeyRoot);
+ if (keyPath == 0 || *keyPath == 0) {
+ MessageBeep(MB_ICONHAND);
+ } else if (GetFocus() == g_pChildWnd->hTreeWnd) {
+ StartKeyRename(g_pChildWnd->hTreeWnd);
+ } else if (GetFocus() == g_pChildWnd->hListWnd) {
+ StartValueRename(g_pChildWnd->hListWnd);
+ }
+ HeapFree(GetProcessHeap(), 0, keyPath);
+ }
break;
case ID_REGISTRY_PRINTERSETUP:
/*PRINTDLG pd;*/
@@ -856,10 +859,10 @@ static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
}
case ID_VIEW_REFRESH:
{
- WCHAR* keyPathW = GetItemPathW(g_pChildWnd->hTreeWnd, 0, &hKeyRoot);
+ WCHAR* keyPath = GetItemPathW(g_pChildWnd->hTreeWnd, 0, &hKeyRoot);
RefreshTreeView(g_pChildWnd->hTreeWnd);
- RefreshListView(g_pChildWnd->hListWnd, hKeyRoot, keyPathW, NULL);
- HeapFree(GetProcessHeap(), 0, keyPathW);
+ RefreshListView(g_pChildWnd->hListWnd, hKeyRoot, keyPath, NULL);
+ HeapFree(GetProcessHeap(), 0, keyPath);
}
break;
/*case ID_OPTIONS_TOOLBAR:*/
diff --git a/programs/regedit/main.h b/programs/regedit/main.h
index af1e9bb..aacacc6 100644
--- a/programs/regedit/main.h
+++ b/programs/regedit/main.h
@@ -141,7 +141,7 @@ extern HTREEITEM FindNext(HWND hwndTV, HTREEITEM hItem, LPCWSTR sstring, int mod
/* edit.c */
extern BOOL CreateKey(HWND hwnd, HKEY hKeyRoot, LPCWSTR keyPath, LPWSTR newKeyName);
-extern BOOL CreateValue(HWND hwnd, HKEY hKeyRoot, LPCTSTR keyPath, DWORD valueType, LPTSTR valueName);
+extern BOOL CreateValue(HWND hwnd, HKEY hKeyRoot, LPCWSTR keyPath, DWORD valueType, LPWSTR valueName);
extern BOOL ModifyValue(HWND hwnd, HKEY hKeyRoot, LPCTSTR keyPath, LPCTSTR valueName);
extern BOOL DeleteKey(HWND hwnd, HKEY hKeyRoot, LPCWSTR keyPath);
extern BOOL DeleteValue(HWND hwnd, HKEY hKeyRoot, LPCWSTR keyPath, LPCWSTR valueName, BOOL showMessageBox);
More information about the wine-cvs
mailing list