[REGEDIT]

- Revert lstrcpynW --> wcsncpy changes from r57471 back to lstrcpynW because this function automatically NULL-terminate strings
  (but I wonder if there is a replacement of lstrcpynW which has all its functionalities, in the CRT). This fixes address loading
  after editing it in the address bar. Caught by Edijus ;)
- Unicodize a little bit more regedit.

svn path=/trunk/; revision=58090
This commit is contained in:
Hermès Bélusca-Maïto 2013-01-01 19:38:47 +00:00
parent d225c3c957
commit 9792217df9
6 changed files with 49 additions and 49 deletions

View file

@ -236,16 +236,16 @@ static void SuggestKeys(HKEY hRootKey, LPCWSTR pszKeyPath, LPWSTR pszSuggestions
{ {
/* Sanity check this key; it cannot be empty, nor can it be a /* Sanity check this key; it cannot be empty, nor can it be a
* loop back */ * loop back */
if ((szBuffer[0] != L'\0') && wcsicmp(szBuffer, pszKeyPath)) if ((szBuffer[0] != L'\0') && _wcsicmp(szBuffer, pszKeyPath))
{ {
if (RegOpenKeyW(hRootKey, szBuffer, &hOtherKey) == ERROR_SUCCESS) if (RegOpenKeyW(hRootKey, szBuffer, &hOtherKey) == ERROR_SUCCESS)
{ {
wcsncpy(pszSuggestions, L"HKCR\\", (int) iSuggestionsLength); lstrcpynW(pszSuggestions, L"HKCR\\", (int) iSuggestionsLength);
i = wcslen(pszSuggestions); i = wcslen(pszSuggestions);
pszSuggestions += i; pszSuggestions += i;
iSuggestionsLength -= i; iSuggestionsLength -= i;
wcsncpy(pszSuggestions, szBuffer, (int) iSuggestionsLength); lstrcpynW(pszSuggestions, szBuffer, (int) iSuggestionsLength);
i = MIN(wcslen(pszSuggestions) + 1, iSuggestionsLength); i = MIN(wcslen(pszSuggestions) + 1, iSuggestionsLength);
pszSuggestions += i; pszSuggestions += i;
iSuggestionsLength -= i; iSuggestionsLength -= i;
@ -266,12 +266,12 @@ static void SuggestKeys(HKEY hRootKey, LPCWSTR pszKeyPath, LPWSTR pszSuggestions
if (QueryStringValue(hSubKey, L"CLSID", NULL, szBuffer, if (QueryStringValue(hSubKey, L"CLSID", NULL, szBuffer,
COUNT_OF(szBuffer)) == ERROR_SUCCESS) COUNT_OF(szBuffer)) == ERROR_SUCCESS)
{ {
wcsncpy(pszSuggestions, L"HKCR\\CLSID\\", (int)iSuggestionsLength); lstrcpynW(pszSuggestions, L"HKCR\\CLSID\\", (int)iSuggestionsLength);
i = wcslen(pszSuggestions); i = wcslen(pszSuggestions);
pszSuggestions += i; pszSuggestions += i;
iSuggestionsLength -= i; iSuggestionsLength -= i;
wcsncpy(pszSuggestions, szBuffer, (int)iSuggestionsLength); lstrcpynW(pszSuggestions, szBuffer, (int)iSuggestionsLength);
i = MIN(wcslen(pszSuggestions) + 1, iSuggestionsLength); i = MIN(wcslen(pszSuggestions) + 1, iSuggestionsLength);
pszSuggestions += i; pszSuggestions += i;
iSuggestionsLength -= i; iSuggestionsLength -= i;
@ -286,7 +286,7 @@ LRESULT CALLBACK AddressBarProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lPar
{ {
WNDPROC oldwndproc; WNDPROC oldwndproc;
static WCHAR s_szNode[256]; static WCHAR s_szNode[256];
oldwndproc = (WNDPROC)(LONG_PTR)GetWindowLongPtr(hwnd, GWL_USERDATA); oldwndproc = (WNDPROC)(LONG_PTR)GetWindowLongPtr(hwnd, GWLP_USERDATA);
switch (uMsg) switch (uMsg)
{ {
@ -300,7 +300,7 @@ LRESULT CALLBACK AddressBarProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lPar
default: default:
break; break;
} }
return CallWindowProc(oldwndproc, hwnd, uMsg, wParam, lParam); return CallWindowProcW(oldwndproc, hwnd, uMsg, wParam, lParam);
} }
static VOID static VOID
@ -333,8 +333,8 @@ UpdateAddress(HTREEITEM hItem, HKEY hRootKey, LPCWSTR pszPath)
EnableMenuItem(GetSubMenu(hMenuFrame,0), ID_REGISTRY_LOADHIVE, MF_BYCOMMAND | MF_GRAYED); EnableMenuItem(GetSubMenu(hMenuFrame,0), ID_REGISTRY_LOADHIVE, MF_BYCOMMAND | MF_GRAYED);
EnableMenuItem(GetSubMenu(hMenuFrame,0), ID_REGISTRY_UNLOADHIVE, MF_BYCOMMAND | MF_GRAYED); EnableMenuItem(GetSubMenu(hMenuFrame,0), ID_REGISTRY_UNLOADHIVE, MF_BYCOMMAND | MF_GRAYED);
/* compare the strings to see if we should enable/disable the "Load Hive" menus accordingly */ /* compare the strings to see if we should enable/disable the "Load Hive" menus accordingly */
if (!(wcsicmp(rootName, L"HKEY_LOCAL_MACHINE") && if (!(_wcsicmp(rootName, L"HKEY_LOCAL_MACHINE") &&
wcsicmp(rootName, L"HKEY_USERS"))) _wcsicmp(rootName, L"HKEY_USERS")))
{ {
/* /*
* enable the unload menu item if at the root, otherwise * enable the unload menu item if at the root, otherwise
@ -406,9 +406,9 @@ LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa
0); 0);
} }
/* Subclass the AddressBar */ /* Subclass the AddressBar */
oldproc = (WNDPROC)(LONG_PTR)GetWindowLongPtr(g_pChildWnd->hAddressBarWnd, GWL_WNDPROC); oldproc = (WNDPROC)(LONG_PTR)GetWindowLongPtr(g_pChildWnd->hAddressBarWnd, GWLP_WNDPROC);
SetWindowLongPtr(g_pChildWnd->hAddressBarWnd, GWL_USERDATA, (DWORD_PTR)oldproc); SetWindowLongPtr(g_pChildWnd->hAddressBarWnd, GWLP_USERDATA, (DWORD_PTR)oldproc);
SetWindowLongPtr(g_pChildWnd->hAddressBarWnd, GWL_WNDPROC, (DWORD_PTR)AddressBarProc); SetWindowLongPtr(g_pChildWnd->hAddressBarWnd, GWLP_WNDPROC, (DWORD_PTR)AddressBarProc);
break; break;
} }
case WM_COMMAND: case WM_COMMAND:
@ -660,8 +660,8 @@ LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa
{ {
TVHITTESTINFO hti; TVHITTESTINFO hti;
HMENU hContextMenu; HMENU hContextMenu;
TVITEM item; TVITEMW item;
MENUITEMINFO mii; MENUITEMINFOW mii;
WCHAR resource[256]; WCHAR resource[256];
WCHAR buffer[256]; WCHAR buffer[256];
LPWSTR s; LPWSTR s;

View file

@ -230,7 +230,7 @@ LRESULT CALLBACK DwordEditSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPAR
{ {
WNDPROC oldwndproc; WNDPROC oldwndproc;
oldwndproc = (WNDPROC)(LONG_PTR)GetWindowLongPtr(hwnd, GWL_USERDATA); oldwndproc = (WNDPROC)(LONG_PTR)GetWindowLongPtr(hwnd, GWLP_USERDATA);
switch (uMsg) switch (uMsg)
{ {
@ -263,7 +263,7 @@ LRESULT CALLBACK DwordEditSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPAR
} }
} }
return CallWindowProc(oldwndproc, hwnd, uMsg, wParam, lParam); return CallWindowProcW(oldwndproc, hwnd, uMsg, wParam, lParam);
} }
@ -285,9 +285,9 @@ INT_PTR CALLBACK modify_dword_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LP
/* subclass the edit control */ /* subclass the edit control */
hwndValue = GetDlgItem(hwndDlg, IDC_VALUE_DATA); hwndValue = GetDlgItem(hwndDlg, IDC_VALUE_DATA);
oldproc = (WNDPROC)(LONG_PTR)GetWindowLongPtr(hwndValue, GWL_WNDPROC); oldproc = (WNDPROC)(LONG_PTR)GetWindowLongPtr(hwndValue, GWLP_WNDPROC);
SetWindowLongPtr(hwndValue, GWL_USERDATA, (DWORD_PTR)oldproc); SetWindowLongPtr(hwndValue, GWLP_USERDATA, (DWORD_PTR)oldproc);
SetWindowLongPtr(hwndValue, GWL_WNDPROC, (DWORD_PTR)DwordEditSubclassProc); SetWindowLongPtr(hwndValue, GWLP_WNDPROC, (DWORD_PTR)DwordEditSubclassProc);
if (editValueName && wcscmp(editValueName, L"")) if (editValueName && wcscmp(editValueName, L""))
{ {
@ -665,7 +665,7 @@ ParseResources(HWND hwnd)
HWND hwndLV; HWND hwndLV;
WCHAR buffer[80]; WCHAR buffer[80];
LVITEM item; LVITEMW item;
INT iItem; INT iItem;
pFullDescriptor = &resourceValueData->List[fullResourceIndex]; pFullDescriptor = &resourceValueData->List[fullResourceIndex];
@ -866,7 +866,7 @@ OnResourceNotify(HWND hwndDlg, NMHDR *phdr)
if (lpnmlv->iItem != -1) if (lpnmlv->iItem != -1)
{ {
PCM_PARTIAL_RESOURCE_DESCRIPTOR pDescriptor; PCM_PARTIAL_RESOURCE_DESCRIPTOR pDescriptor;
LVITEM item; LVITEMW item;
item.mask = LVIF_PARAM; item.mask = LVIF_PARAM;
item.iItem = lpnmlv->iItem; item.iItem = lpnmlv->iItem;
@ -968,7 +968,7 @@ static VOID AddFullResourcesToList(HWND hwnd)
{ {
PCM_FULL_RESOURCE_DESCRIPTOR pFullDescriptor; PCM_FULL_RESOURCE_DESCRIPTOR pFullDescriptor;
WCHAR buffer[80]; WCHAR buffer[80];
LVITEM item; LVITEMW item;
ULONG i; ULONG i;
INT iItem; INT iItem;

View file

@ -77,7 +77,7 @@ static BOOL CompareName(LPCWSTR pszName1, LPCWSTR pszName2)
if (s_dwFlags & RSF_MATCHCASE) if (s_dwFlags & RSF_MATCHCASE)
return wcscmp(pszName1, pszName2) == 0; return wcscmp(pszName1, pszName2) == 0;
else else
return wcsicmp(pszName1, pszName2) == 0; return _wcsicmp(pszName1, pszName2) == 0;
} }
else else
{ {
@ -130,7 +130,7 @@ int compare(const void *x, const void *y)
{ {
const LPCWSTR *a = (const LPCWSTR *)x; const LPCWSTR *a = (const LPCWSTR *)x;
const LPCWSTR *b = (const LPCWSTR *)y; const LPCWSTR *b = (const LPCWSTR *)y;
return wcsicmp(*a, *b); return _wcsicmp(*a, *b);
} }
BOOL RegFindRecurse( BOOL RegFindRecurse(
@ -198,7 +198,7 @@ BOOL RegFindRecurse(
if (DoEvents()) if (DoEvents())
goto err; goto err;
if (!fPast && wcsicmp(ppszNames[i], pszValueName) == 0) if (!fPast && _wcsicmp(ppszNames[i], pszValueName) == 0)
{ {
fPast = TRUE; fPast = TRUE;
continue; continue;
@ -390,7 +390,7 @@ BOOL RegFindWalk(
} }
else else
{ {
wcsncpy(szKeyName, pch + 1, MAX_PATH); lstrcpynW(szKeyName, pch + 1, MAX_PATH);
*pch = 0; *pch = 0;
lResult = RegOpenKeyExW(hBaseKey, szSubKey, 0, KEY_ALL_ACCESS, lResult = RegOpenKeyExW(hBaseKey, szSubKey, 0, KEY_ALL_ACCESS,
&hSubKey); &hSubKey);
@ -434,7 +434,7 @@ BOOL RegFindWalk(
if (DoEvents()) if (DoEvents())
goto err; goto err;
if (!fPast && wcsicmp(ppszNames[i], szKeyName) == 0) if (!fPast && _wcsicmp(ppszNames[i], szKeyName) == 0)
{ {
fPast = TRUE; fPast = TRUE;
continue; continue;

View file

@ -453,7 +453,7 @@ static BOOL ImportRegistryFile(HWND hWnd)
{ {
/* Look at the extension of the file to determine its type */ /* Look at the extension of the file to determine its type */
if (ofn.nFileExtension >= 1 && if (ofn.nFileExtension >= 1 &&
wcsicmp(ofn.lpstrFile + ofn.nFileExtension, L"reg") == 0) /* REGEDIT4 or Windows Registry Editor Version 5.00 */ _wcsicmp(ofn.lpstrFile + ofn.nFileExtension, L"reg") == 0) /* REGEDIT4 or Windows Registry Editor Version 5.00 */
{ {
/* Open the file */ /* Open the file */
FILE* fp = _wfopen(ofn.lpstrFile, L"r"); FILE* fp = _wfopen(ofn.lpstrFile, L"r");
@ -1249,7 +1249,7 @@ static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
if ((LOWORD(wParam) >= ID_FAVORITES_MIN) && (LOWORD(wParam) <= ID_FAVORITES_MAX)) if ((LOWORD(wParam) >= ID_FAVORITES_MIN) && (LOWORD(wParam) <= ID_FAVORITES_MAX))
{ {
HMENU hMenu; HMENU hMenu;
MENUITEMINFO mii; MENUITEMINFOW mii;
WCHAR szFavorite[512]; WCHAR szFavorite[512];
hMenu = GetSubMenu(GetMenu(hWnd), FAVORITES_MENU_POSITION); hMenu = GetSubMenu(GetMenu(hWnd), FAVORITES_MENU_POSITION);

View file

@ -56,7 +56,7 @@ static const int column_alignment[MAX_LIST_COLUMNS] = { LVCFMT_LEFT, LVCFMT_LEFT
LPCWSTR GetValueName(HWND hwndLV, int iStartAt) LPCWSTR GetValueName(HWND hwndLV, int iStartAt)
{ {
int item; int item;
LVITEM LVItem; LVITEMW LVItem;
PLINE_INFO lineinfo; PLINE_INFO lineinfo;
/* /*
@ -108,7 +108,7 @@ VOID SetValueName(HWND hwndLV, LPCWSTR pszValueName)
BOOL IsDefaultValue(HWND hwndLV, int i) BOOL IsDefaultValue(HWND hwndLV, int i)
{ {
PLINE_INFO lineinfo; PLINE_INFO lineinfo;
LVITEM Item; LVITEMW Item;
Item.mask = LVIF_PARAM; Item.mask = LVIF_PARAM;
Item.iItem = i; Item.iItem = i;
@ -126,7 +126,7 @@ BOOL IsDefaultValue(HWND hwndLV, int i)
static void AddEntryToList(HWND hwndLV, LPWSTR Name, DWORD dwValType, void* ValBuf, DWORD dwCount, int Position, BOOL ValExists) static void AddEntryToList(HWND hwndLV, LPWSTR Name, DWORD dwValType, void* ValBuf, DWORD dwCount, int Position, BOOL ValExists)
{ {
PLINE_INFO linfo; PLINE_INFO linfo;
LVITEM item; LVITEMW item;
int index; int index;
linfo = (PLINE_INFO)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(LINE_INFO) + dwCount); linfo = (PLINE_INFO)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(LINE_INFO) + dwCount);
@ -654,7 +654,7 @@ fail:
void DestroyListView(HWND hwndLV) void DestroyListView(HWND hwndLV)
{ {
INT count, i; INT count, i;
LVITEM item; LVITEMW item;
count = ListView_GetItemCount(hwndLV); count = ListView_GetItemCount(hwndLV);
for (i = 0; i < count; i++) for (i = 0; i < count; i++)

View file

@ -34,7 +34,7 @@ static LPWSTR pathBuffer;
static BOOL get_item_path(HWND hwndTV, HTREEITEM hItem, HKEY* phKey, LPWSTR* pKeyPath, int* pPathLen, int* pMaxLen) static BOOL get_item_path(HWND hwndTV, HTREEITEM hItem, HKEY* phKey, LPWSTR* pKeyPath, int* pPathLen, int* pMaxLen)
{ {
TVITEM item; TVITEMW item;
size_t maxLen, len; size_t maxLen, len;
LPWSTR newStr; LPWSTR newStr;
@ -109,8 +109,8 @@ BOOL DeleteNode(HWND hwndTV, HTREEITEM hItem)
/* Add an entry to the tree. Only give hKey for root nodes (HKEY_ constants) */ /* Add an entry to the tree. Only give hKey for root nodes (HKEY_ constants) */
static HTREEITEM AddEntryToTree(HWND hwndTV, HTREEITEM hParent, LPWSTR label, HKEY hKey, DWORD dwChildren) static HTREEITEM AddEntryToTree(HWND hwndTV, HTREEITEM hParent, LPWSTR label, HKEY hKey, DWORD dwChildren)
{ {
TVITEM tvi; TVITEMW tvi;
TVINSERTSTRUCT tvins; TVINSERTSTRUCTW tvins;
if (hKey) if (hKey)
{ {
@ -140,7 +140,7 @@ BOOL RefreshTreeItem(HWND hwndTV, HTREEITEM hItem)
LPCWSTR KeyPath; LPCWSTR KeyPath;
DWORD dwCount, dwIndex, dwMaxSubKeyLen; DWORD dwCount, dwIndex, dwMaxSubKeyLen;
LPWSTR Name = NULL; LPWSTR Name = NULL;
TVITEM tvItem; TVITEMW tvItem;
LPWSTR pszNodes = NULL; LPWSTR pszNodes = NULL;
BOOL bSuccess = FALSE; BOOL bSuccess = FALSE;
LPWSTR s; LPWSTR s;
@ -332,7 +332,7 @@ HTREEITEM InsertNode(HWND hwndTV, HTREEITEM hItem, LPWSTR name)
{ {
WCHAR buf[MAX_NEW_KEY_LEN]; WCHAR buf[MAX_NEW_KEY_LEN];
HTREEITEM hNewItem = 0; HTREEITEM hNewItem = 0;
TVITEMEX item; TVITEMEXW item;
/* Default to the current selection */ /* Default to the current selection */
if (!hItem) if (!hItem)
@ -390,8 +390,8 @@ HWND StartKeyRename(HWND hwndTV)
static BOOL InitTreeViewItems(HWND hwndTV, LPWSTR pHostName) static BOOL InitTreeViewItems(HWND hwndTV, LPWSTR pHostName)
{ {
TVITEM tvi; TVITEMW tvi;
TVINSERTSTRUCT tvins; TVINSERTSTRUCTW tvins;
HTREEITEM hRoot; HTREEITEM hRoot;
tvi.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_CHILDREN | TVIF_PARAM; tvi.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_CHILDREN | TVIF_PARAM;
@ -664,7 +664,7 @@ BOOL SelectNode(HWND hwndTV, LPCWSTR keyPath)
WCHAR szPathPart[128]; WCHAR szPathPart[128];
WCHAR szBuffer[128]; WCHAR szBuffer[128];
LPCWSTR s; LPCWSTR s;
TVITEM tvi; TVITEMW tvi;
/* Load "My Computer" string... */ /* Load "My Computer" string... */
LoadStringW(hInst, IDS_MY_COMPUTER, szBuffer, COUNT_OF(szBuffer)); LoadStringW(hInst, IDS_MY_COMPUTER, szBuffer, COUNT_OF(szBuffer));
@ -683,22 +683,22 @@ BOOL SelectNode(HWND hwndTV, LPCWSTR keyPath)
while(keyPath[0]) while(keyPath[0])
{ {
s = wcschr(keyPath, L'\\'); s = wcschr(keyPath, L'\\');
wcsncpy(szPathPart, keyPath, s ? s - keyPath + 1 : wcslen(keyPath) + 1); lstrcpynW(szPathPart, keyPath, s ? s - keyPath + 1 : wcslen(keyPath) + 1);
/* Special case for root to expand root key abbreviations */ /* Special case for root to expand root key abbreviations */
if (hItem == hRoot) if (hItem == hRoot)
{ {
if (!wcsicmp(szPathPart, L"HKCR")) if (!_wcsicmp(szPathPart, L"HKCR"))
wcscpy(szPathPart, L"HKEY_CLASSES_ROOT"); wcscpy(szPathPart, L"HKEY_CLASSES_ROOT");
else if (!wcsicmp(szPathPart, L"HKCU")) else if (!_wcsicmp(szPathPart, L"HKCU"))
wcscpy(szPathPart, L"HKEY_CURRENT_USER"); wcscpy(szPathPart, L"HKEY_CURRENT_USER");
else if (!wcsicmp(szPathPart, L"HKLM")) else if (!_wcsicmp(szPathPart, L"HKLM"))
wcscpy(szPathPart, L"HKEY_LOCAL_MACHINE"); wcscpy(szPathPart, L"HKEY_LOCAL_MACHINE");
else if (!wcsicmp(szPathPart, L"HKU")) else if (!_wcsicmp(szPathPart, L"HKU"))
wcscpy(szPathPart, L"HKEY_USERS"); wcscpy(szPathPart, L"HKEY_USERS");
else if (!wcsicmp(szPathPart, L"HKCC")) else if (!_wcsicmp(szPathPart, L"HKCC"))
wcscpy(szPathPart, L"HKEY_CURRENT_CONFIG"); wcscpy(szPathPart, L"HKEY_CURRENT_CONFIG");
else if (!wcsicmp(szPathPart, L"HKDD")) else if (!_wcsicmp(szPathPart, L"HKDD"))
wcscpy(szPathPart, L"HKEY_DYN_DATA"); wcscpy(szPathPart, L"HKEY_DYN_DATA");
} }
@ -713,7 +713,7 @@ BOOL SelectNode(HWND hwndTV, LPCWSTR keyPath)
(void)TreeView_GetItem(hwndTV, &tvi); (void)TreeView_GetItem(hwndTV, &tvi);
if (!wcsicmp(szBuffer, szPathPart)) if (!_wcsicmp(szBuffer, szPathPart))
break; break;
} }