Alexander Nicolaysen Sørnes : regedit: Set the unicode flag for the listview.
Alexandre Julliard
julliard at winehq.org
Tue Sep 2 08:33:10 CDT 2008
Module: wine
Branch: master
Commit: d2664e0fbbd6101b468c29e227753d406b3717f7
URL: http://source.winehq.org/git/wine.git/?a=commit;h=d2664e0fbbd6101b468c29e227753d406b3717f7
Author: Alexander Nicolaysen Sørnes <alex at thehandofagony.com>
Date: Sun Aug 31 16:49:43 2008 +0200
regedit: Set the unicode flag for the listview.
---
programs/regedit/edit.c | 6 ++--
programs/regedit/listview.c | 44 ++++++++++++++++++++----------------------
programs/regedit/main.c | 6 +---
programs/regedit/main.h | 3 +-
4 files changed, 27 insertions(+), 32 deletions(-)
diff --git a/programs/regedit/edit.c b/programs/regedit/edit.c
index 0b0c6eb..15dc57a 100644
--- a/programs/regedit/edit.c
+++ b/programs/regedit/edit.c
@@ -165,7 +165,7 @@ static INT_PTR CALLBACK bin_modify_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wPara
if (params->lpszValueName)
SetDlgItemTextW(hwndDlg, IDC_VALUE_NAME, params->lpszValueName);
else
- SetDlgItemTextW(hwndDlg, IDC_VALUE_NAME, g_pszDefaultValueNameW);
+ SetDlgItemTextW(hwndDlg, IDC_VALUE_NAME, g_pszDefaultValueName);
SendDlgItemMessage(hwndDlg, IDC_VALUE_DATA, HEM_SETDATA, (WPARAM)params->cbData, (LPARAM)params->pData);
return TRUE;
case WM_COMMAND:
@@ -299,7 +299,7 @@ BOOL ModifyValue(HWND hwnd, HKEY hKeyRoot, LPCWSTR keyPath, LPCWSTR valueName)
return FALSE;
}
- editValueName = valueName ? valueName : g_pszDefaultValueNameW;
+ editValueName = valueName ? valueName : g_pszDefaultValueName;
if(!(stringValueData = read_value(hwnd, hKey, valueName, &type, &len))) goto done;
if ( (type == REG_SZ) || (type == REG_EXPAND_SZ) ) {
@@ -428,7 +428,7 @@ BOOL DeleteValue(HWND hwnd, HKEY hKeyRoot, LPCWSTR keyPath, LPCWSTR valueName, B
BOOL result = FALSE;
LONG lRet;
HKEY hKey;
- LPCWSTR visibleValueName = valueName ? valueName : g_pszDefaultValueNameW;
+ LPCWSTR visibleValueName = valueName ? valueName : g_pszDefaultValueName;
WCHAR empty = 0;
lRet = RegOpenKeyExW(hKeyRoot, keyPath, 0, KEY_READ | KEY_SET_VALUE, &hKey);
diff --git a/programs/regedit/listview.c b/programs/regedit/listview.c
index f4a239f..accfc65 100644
--- a/programs/regedit/listview.c
+++ b/programs/regedit/listview.c
@@ -2,6 +2,7 @@
* Regedit listviews
*
* Copyright (C) 2002 Robert Dickenson <robd at reactos.org>
+ * Copyright (C) 2008 Alexander N. Sørnes <alex at thehandofagony.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -49,8 +50,7 @@ static BOOL g_invertSort = FALSE;
static LPWSTR g_valueName;
static LPWSTR g_currentPath;
static HKEY g_currentRootKey;
-static WCHAR g_szValueNotSetW[64];
-static TCHAR g_szValueNotSet[64];
+static WCHAR g_szValueNotSet[64];
#define MAX_LIST_COLUMNS (IDS_LIST_COLUMN_LAST - IDS_LIST_COLUMN_FIRST + 1)
static int default_column_widths[MAX_LIST_COLUMNS] = { 200, 175, 400 };
@@ -192,7 +192,7 @@ static void AddEntryToList(HWND hwndLV, LPWSTR Name, DWORD dwValType,
if (ValBuf) {
ListView_SetItemTextW(hwndLV, index, 2, ValBuf);
} else {
- ListView_SetItemTextW(hwndLV, index, 2, g_szValueNotSetW);
+ ListView_SetItemTextW(hwndLV, index, 2, g_szValueNotSet);
}
break;
case REG_DWORD: {
@@ -280,10 +280,10 @@ static BOOL CreateListColumns(HWND hWndListView)
/* OnGetDispInfo - processes the LVN_GETDISPINFO notification message. */
-static void OnGetDispInfo(NMLVDISPINFO* plvdi)
+static void OnGetDispInfo(NMLVDISPINFOW* plvdi)
{
- static TCHAR buffer[200];
- static TCHAR reg_szT[] = {'R','E','G','_','S','Z',0},
+ static WCHAR buffer[200];
+ static WCHAR reg_szT[] = {'R','E','G','_','S','Z',0},
reg_expand_szT[] = {'R','E','G','_','E','X','P','A','N','D','_','S','Z',0},
reg_binaryT[] = {'R','E','G','_','B','I','N','A','R','Y',0},
reg_dwordT[] = {'R','E','G','_','D','W','O','R','D',0},
@@ -300,7 +300,7 @@ static void OnGetDispInfo(NMLVDISPINFO* plvdi)
switch (plvdi->item.iSubItem) {
case 0:
- plvdi->item.pszText = (LPSTR)g_pszDefaultValueName;
+ plvdi->item.pszText = g_pszDefaultValueName;
break;
case 1:
switch (((LINE_INFO*)plvdi->item.lParam)->dwValType) {
@@ -333,9 +333,9 @@ static void OnGetDispInfo(NMLVDISPINFO* plvdi)
break;
default:
{
- TCHAR szUnknownFmt[64];
- LoadString(hInst, IDS_REGISTRY_UNKNOWN_TYPE, szUnknownFmt, COUNT_OF(szUnknownFmt));
- wsprintf(buffer, szUnknownFmt, plvdi->item.lParam);
+ WCHAR szUnknownFmt[64];
+ LoadStringW(hInst, IDS_REGISTRY_UNKNOWN_TYPE, szUnknownFmt, COUNT_OF(szUnknownFmt));
+ wsprintfW(buffer, szUnknownFmt, plvdi->item.lParam);
plvdi->item.pszText = buffer;
break;
}
@@ -403,12 +403,12 @@ static LRESULT CALLBACK ListWndProc(HWND hWnd, UINT message, WPARAM wParam, LPAR
case WM_NOTIFY_REFLECT:
switch (((LPNMHDR)lParam)->code) {
- case LVN_BEGINLABELEDIT:
- if (!((NMLVDISPINFO *)lParam)->item.iItem)
+ case LVN_BEGINLABELEDITW:
+ if (!((NMLVDISPINFOW *)lParam)->item.iItem)
return 1;
return 0;
- case LVN_GETDISPINFO:
- OnGetDispInfo((NMLVDISPINFO*)lParam);
+ case LVN_GETDISPINFOW:
+ OnGetDispInfo((NMLVDISPINFOW*)lParam);
break;
case LVN_COLUMNCLICK:
if (g_columnToSort == ((LPNMLISTVIEW)lParam)->iSubItem)
@@ -418,20 +418,18 @@ static LRESULT CALLBACK ListWndProc(HWND hWnd, UINT message, WPARAM wParam, LPAR
g_invertSort = FALSE;
}
- SendMessage(hWnd, LVM_SORTITEMS, (WPARAM)hWnd, (LPARAM)CompareFunc);
+ SendMessageW(hWnd, LVM_SORTITEMS, (WPARAM)hWnd, (LPARAM)CompareFunc);
break;
- case LVN_ENDLABELEDIT: {
- LPNMLVDISPINFO dispInfo = (LPNMLVDISPINFO)lParam;
+ case LVN_ENDLABELEDITW: {
+ LPNMLVDISPINFOW dispInfo = (LPNMLVDISPINFOW)lParam;
LPWSTR oldName = GetItemTextW(hWnd, dispInfo->item.iItem);
- WCHAR* newName = GetWideString(dispInfo->item.pszText);
LONG ret;
if (!oldName) return -1; /* cannot rename a default value */
- ret = RenameValue(hWnd, g_currentRootKey, g_currentPath, oldName, newName);
+ ret = RenameValue(hWnd, g_currentRootKey, g_currentPath, oldName, dispInfo->item.pszText);
if (ret)
{
- RefreshListView(hWnd, g_currentRootKey, g_currentPath, newName);
+ RefreshListView(hWnd, g_currentRootKey, g_currentPath, dispInfo->item.pszText);
}
- HeapFree(GetProcessHeap(), 0, newName);
HeapFree(GetProcessHeap(), 0, oldName);
return 0;
}
@@ -496,8 +494,7 @@ HWND CreateListView(HWND hwndParent, UINT id)
WCHAR ListView[] = {'L','i','s','t',' ','V','i','e','w',0};
/* prepare strings */
- LoadString(hInst, IDS_REGISTRY_VALUE_NOT_SET, g_szValueNotSet, COUNT_OF(g_szValueNotSet));
- LoadStringW(hInst, IDS_REGISTRY_VALUE_NOT_SET, g_szValueNotSetW, COUNT_OF(g_szValueNotSetW));
+ LoadStringW(hInst, IDS_REGISTRY_VALUE_NOT_SET, g_szValueNotSet, COUNT_OF(g_szValueNotSet));
/* Get the dimensions of the parent window's client area, and create the list view control. */
GetClientRect(hwndParent, &rcClient);
@@ -506,6 +503,7 @@ HWND CreateListView(HWND hwndParent, UINT id)
0, 0, rcClient.right, rcClient.bottom,
hwndParent, (HMENU)ULongToHandle(id), hInst, NULL);
if (!hwndLV) return NULL;
+ SendMessageW(hwndLV, LVM_SETUNICODEFORMAT, TRUE, 0);
SendMessageW(hwndLV, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT);
/* Initialize the image list */
diff --git a/programs/regedit/main.c b/programs/regedit/main.c
index 3033d7d..6fe129a 100644
--- a/programs/regedit/main.c
+++ b/programs/regedit/main.c
@@ -29,8 +29,7 @@
#define REGEDIT_DECLARE_FUNCTIONS
#include "main.h"
-TCHAR g_pszDefaultValueName[64];
-WCHAR g_pszDefaultValueNameW[64];
+WCHAR g_pszDefaultValueName[64];
BOOL ProcessCmdLine(LPSTR lpCmdLine);
@@ -183,8 +182,7 @@ int APIENTRY WinMain(HINSTANCE hInstance,
/* Initialize global strings */
LoadString(hInstance, IDS_APP_TITLE, szTitle, COUNT_OF(szTitle));
- LoadString(hInstance, IDS_REGISTRY_DEFAULT_VALUE, g_pszDefaultValueName, COUNT_OF(g_pszDefaultValueName));
- LoadStringW(hInstance, IDS_REGISTRY_DEFAULT_VALUE, g_pszDefaultValueNameW, COUNT_OF(g_pszDefaultValueNameW));
+ LoadStringW(hInstance, IDS_REGISTRY_DEFAULT_VALUE, g_pszDefaultValueName, COUNT_OF(g_pszDefaultValueName));
/* Store instance handle in our global variable */
hInst = hInstance;
diff --git a/programs/regedit/main.h b/programs/regedit/main.h
index 84a712c..ec2cf98 100644
--- a/programs/regedit/main.h
+++ b/programs/regedit/main.h
@@ -90,8 +90,7 @@ extern enum OPTION_FLAGS Options;
extern TCHAR szTitle[];
extern const TCHAR szFrameClass[];
extern const TCHAR szChildClass[];
-extern TCHAR g_pszDefaultValueName[];
-extern WCHAR g_pszDefaultValueNameW[];
+extern WCHAR g_pszDefaultValueName[];
/* Registry class names and their indexes */
extern const WCHAR* reg_class_namesW[];
More information about the wine-cvs
mailing list