https://git.reactos.org/?p=reactos.git;a=commitdiff;h=8a3080151668efc99be9e7a2fb22a24392c85ea3

commit 8a3080151668efc99be9e7a2fb22a24392c85ea3
Author:     Hermès Bélusca-Maïto <[email protected]>
AuthorDate: Sun Jul 7 15:57:01 2019 +0200
Commit:     Hermès Bélusca-Maïto <[email protected]>
CommitDate: Sun Jul 7 17:56:51 2019 +0200

    [SHELL32] Recycle-Bin: Minor code enhancements.
    
    - Use _countof() and ZeroMemory().
    - Fix case of 'BitBucket' registry key (Windows-compatible).
    - Simplify code.
    - Minor code formatting.
---
 boot/bootdata/hivesft.inf                   |  4 +-
 dll/win32/shell32/dialogs/recycler_prop.cpp | 67 +++++++++++------------------
 dll/win32/shell32/folders/CRecycleBin.cpp   | 24 +++++------
 3 files changed, 40 insertions(+), 55 deletions(-)

diff --git a/boot/bootdata/hivesft.inf b/boot/bootdata/hivesft.inf
index 330101a29db..818d26745a4 100644
--- a/boot/bootdata/hivesft.inf
+++ b/boot/bootdata/hivesft.inf
@@ -456,8 +456,8 @@ 
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce","InstallRoot.NET",0x000
 
HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons",,0x00000012
 
HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu",,0x00000012
 
HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu","{208D2C60-3AEA-1069-A2D7-08002B30309D}",0x00010001,0x00000000
-HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Bitbucket",,0x00000012
-HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Bitbucket\Volume",,0x00000012
+HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\BitBucket",,0x00000012
+HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\BitBucket\Volume",,0x00000012
 
 ; CMD Settings
 HKLM,"SOFTWARE\Microsoft\Command Processor","AutoRun",0x00020000,""
diff --git a/dll/win32/shell32/dialogs/recycler_prop.cpp 
b/dll/win32/shell32/dialogs/recycler_prop.cpp
index 95840be7699..f6efad5e4ad 100644
--- a/dll/win32/shell32/dialogs/recycler_prop.cpp
+++ b/dll/win32/shell32/dialogs/recycler_prop.cpp
@@ -25,9 +25,9 @@ WINE_DEFAULT_DEBUG_CHANNEL(CRecycleBin);
 
 typedef struct
 {
-    DWORD dwNukeOnDelete;
     DWORD dwSerial;
     DWORD dwMaxCapacity;
+    DWORD dwNukeOnDelete;
 } DRIVE_ITEM_CONTEXT, *PDRIVE_ITEM_CONTEXT;
 
 static void toggleNukeOnDeleteOption(HWND hwndDlg, BOOL bEnable)
@@ -46,11 +46,9 @@ static void toggleNukeOnDeleteOption(HWND hwndDlg, BOOL 
bEnable)
     }
 }
 
-
 static VOID
 InitializeRecycleBinDlg(HWND hwndDlg, WCHAR DefaultDrive)
 {
-    WCHAR CurDrive = L'A';
     WCHAR szDrive[] = L"A:\\";
     DWORD dwDrives;
     WCHAR szName[100];
@@ -70,12 +68,12 @@ InitializeRecycleBinDlg(HWND hwndDlg, WCHAR DefaultDrive)
 
     hDlgCtrl = GetDlgItem(hwndDlg, 14000);
 
-    if (!LoadStringW(shell32_hInstance, IDS_RECYCLEBIN_LOCATION, szVolume, 
sizeof(szVolume) / sizeof(WCHAR)))
+    if (!LoadStringW(shell32_hInstance, IDS_RECYCLEBIN_LOCATION, szVolume, 
_countof(szVolume)))
         szVolume[0] = 0;
 
     GetClientRect(hDlgCtrl, &rect);
 
-    memset(&lc, 0, sizeof(LV_COLUMN) );
+    ZeroMemory(&lc, sizeof(lc));
     lc.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM | LVCF_FMT;
 
     columnSize = 140; //FIXME
@@ -86,7 +84,7 @@ InitializeRecycleBinDlg(HWND hwndDlg, WCHAR DefaultDrive)
     lc.pszText    = szVolume;
     (void)SendMessageW(hDlgCtrl, LVM_INSERTCOLUMNW, 0, (LPARAM)&lc);
 
-    if (!LoadStringW(shell32_hInstance, IDS_RECYCLEBIN_DISKSPACE, szVolume, 
sizeof(szVolume) / sizeof(WCHAR)))
+    if (!LoadStringW(shell32_hInstance, IDS_RECYCLEBIN_DISKSPACE, szVolume, 
_countof(szVolume)))
         szVolume[0] = 0;
 
     lc.iSubItem   = 1;
@@ -99,33 +97,32 @@ InitializeRecycleBinDlg(HWND hwndDlg, WCHAR DefaultDrive)
     itemCount = 0;
     do
     {
-        if ((dwDrives & 0x1))
+        if (dwDrives & 0x1)
         {
             UINT Type = GetDriveTypeW(szDrive);
             if (Type == DRIVE_FIXED) //FIXME
             {
-                if (!GetVolumeInformationW(szDrive, szName, sizeof(szName) / 
sizeof(WCHAR), &dwSerial, &MaxComponent, &Flags, NULL, 0))
+                if (!GetVolumeInformationW(szDrive, szName, _countof(szName), 
&dwSerial, &MaxComponent, &Flags, NULL, 0))
                 {
                     szName[0] = 0;
                     dwSerial = -1;
                 }
 
                 swprintf(szVolume, L"%s (%c:)", szName, szDrive[0]);
-                memset(&li, 0x0, sizeof(LVITEMW));
+                ZeroMemory(&li, sizeof(li));
                 li.mask = LVIF_TEXT | LVIF_PARAM;
                 li.iSubItem = 0;
                 li.pszText = szVolume;
                 li.iItem = itemCount;
                 SendMessageW(hDlgCtrl, LVM_INSERTITEMW, 0, (LPARAM)&li);
-                if (GetDiskFreeSpaceExW(szDrive, &FreeBytesAvailable , 
&TotalNumberOfBytes, &TotalNumberOfFreeBytes))
+                if (GetDiskFreeSpaceExW(szDrive, &FreeBytesAvailable, 
&TotalNumberOfBytes, &TotalNumberOfFreeBytes))
                 {
-                    if (StrFormatByteSizeW(TotalNumberOfFreeBytes.QuadPart, 
szVolume, sizeof(szVolume) / sizeof(WCHAR)))
+                    if (StrFormatByteSizeW(TotalNumberOfFreeBytes.QuadPart, 
szVolume, _countof(szVolume)))
                     {
-
                         pItem = (DRIVE_ITEM_CONTEXT 
*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DRIVE_ITEM_CONTEXT));
                         if (pItem)
                         {
-                            swprintf(szName, 
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Bitbucket\\Volume\\%04X-%04X",
 LOWORD(dwSerial), HIWORD(dwSerial));
+                            swprintf(szName, 
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\BitBucket\\Volume\\%04X-%04X",
 LOWORD(dwSerial), HIWORD(dwSerial));
                             dwSize = sizeof(DWORD);
                             RegGetValueW(HKEY_CURRENT_USER, szName, 
L"MaxCapacity", RRF_RT_DWORD, NULL, &pItem->dwMaxCapacity, &dwSize);
                             dwSize = sizeof(DWORD);
@@ -134,7 +131,7 @@ InitializeRecycleBinDlg(HWND hwndDlg, WCHAR DefaultDrive)
                             li.mask = LVIF_PARAM;
                             li.lParam = (LPARAM)pItem;
                             (void)SendMessageW(hDlgCtrl, LVM_SETITEMW, 0, 
(LPARAM)&li);
-                            if (CurDrive == DefaultDrive)
+                            if (szDrive[0] == DefaultDrive)
                             {
                                 defIndex = itemCount;
                                 pDefault = pItem;
@@ -153,10 +150,9 @@ InitializeRecycleBinDlg(HWND hwndDlg, WCHAR DefaultDrive)
                 itemCount++;
             }
         }
-        CurDrive++;
-        szDrive[0] = CurDrive;
+        szDrive[0]++;
         dwDrives = (dwDrives >> 1);
-    } while(dwDrives);
+    } while (dwDrives);
 
     if (!pDefault)
         pDefault = pFirst;
@@ -171,7 +167,6 @@ InitializeRecycleBinDlg(HWND hwndDlg, WCHAR DefaultDrive)
     li.state = LVIS_FOCUSED | LVIS_SELECTED;
     li.iItem = defIndex;
     (void)SendMessageW(hDlgCtrl, LVM_SETITEMW, 0, (LPARAM)&li);
-
 }
 
 static BOOL StoreDriveSettings(HWND hwndDlg)
@@ -184,8 +179,7 @@ static BOOL StoreDriveSettings(HWND hwndDlg)
     WCHAR szSerial[20];
     DWORD dwSize;
 
-
-    if (RegCreateKeyExW(HKEY_CURRENT_USER, 
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Bitbucket\\Volume", 
0, NULL, 0, KEY_WRITE, NULL, &hKey, NULL) != ERROR_SUCCESS)
+    if (RegCreateKeyExW(HKEY_CURRENT_USER, 
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\BitBucket\\Volume", 
0, NULL, 0, KEY_WRITE, NULL, &hKey, NULL) != ERROR_SUCCESS)
         return FALSE;
 
     iCount = ListView_GetItemCount(hDlgCtrl);
@@ -193,7 +187,7 @@ static BOOL StoreDriveSettings(HWND hwndDlg)
     ZeroMemory(&li, sizeof(li));
     li.mask = LVIF_PARAM;
 
-    for(iIndex = 0; iIndex < iCount; iIndex++)
+    for (iIndex = 0; iIndex < iCount; iIndex++)
     {
         li.iItem = iIndex;
         if (SendMessageW(hDlgCtrl, LVM_GETITEMW, 0, (LPARAM)&li))
@@ -202,17 +196,16 @@ static BOOL StoreDriveSettings(HWND hwndDlg)
             swprintf(szSerial, L"%04X-%04X", LOWORD(pItem->dwSerial), 
HIWORD(pItem->dwSerial));
             if (RegCreateKeyExW(hKey, szSerial, 0, NULL, 0, KEY_WRITE, NULL, 
&hSubKey, NULL) == ERROR_SUCCESS)
             {
-                dwSize = sizeof(DWORD);
-                RegSetValueExW(hSubKey, L"NukeOnDelete", 0, REG_DWORD, 
(LPBYTE)&pItem->dwNukeOnDelete, dwSize);
                 dwSize = sizeof(DWORD);
                 RegSetValueExW(hSubKey, L"MaxCapacity", 0, REG_DWORD, 
(LPBYTE)&pItem->dwMaxCapacity, dwSize);
+                dwSize = sizeof(DWORD);
+                RegSetValueExW(hSubKey, L"NukeOnDelete", 0, REG_DWORD, 
(LPBYTE)&pItem->dwNukeOnDelete, dwSize);
                 RegCloseKey(hSubKey);
             }
         }
     }
     RegCloseKey(hKey);
     return TRUE;
-
 }
 
 static VOID FreeDriveItemContext(HWND hwndDlg)
@@ -226,18 +219,18 @@ static VOID FreeDriveItemContext(HWND hwndDlg)
     ZeroMemory(&li, sizeof(li));
     li.mask = LVIF_PARAM;
 
-    for(iIndex = 0; iIndex < iCount; iIndex++)
+    for (iIndex = 0; iIndex < iCount; iIndex++)
     {
         li.iItem = iIndex;
         if (SendMessageW(hDlgCtrl, LVM_GETITEMW, 0, (LPARAM)&li))
         {
-            HeapFree(GetProcessHeap(), 0, (LPVOID)li.lParam);
+            HeapFree(GetProcessHeap(), 0, (PVOID)li.lParam);
         }
     }
 }
 
 static INT
-GetDefaultItem(HWND hwndDlg, LVITEMW * li)
+GetDefaultItem(HWND hwndDlg, LVITEMW* li)
 {
     HWND hDlgCtrl;
     UINT iItemCount, iIndex;
@@ -252,7 +245,7 @@ GetDefaultItem(HWND hwndDlg, LVITEMW * li)
 
     ZeroMemory(li, sizeof(LVITEMW));
     li->mask = LVIF_PARAM | LVIF_STATE;
-    li->stateMask = (UINT) - 1;
+    li->stateMask = (UINT)-1;
     for (iIndex = 0; iIndex < iItemCount; iIndex++)
     {
         li->iItem = iIndex;
@@ -263,7 +256,6 @@ GetDefaultItem(HWND hwndDlg, LVITEMW * li)
         }
     }
     return -1;
-
 }
 
 static INT_PTR CALLBACK
@@ -271,8 +263,7 @@ RecycleBinDlg(
     HWND hwndDlg,
     UINT uMsg,
     WPARAM wParam,
-    LPARAM lParam
-)
+    LPARAM lParam)
 {
     LPPSHNOTIFY lppsn;
     LPNMLISTVIEW lppl;
@@ -387,12 +378,10 @@ BOOL SH_ShowRecycleBinProperties(WCHAR sDrive)
     HPROPSHEETPAGE hpsp[1];
     PROPSHEETHEADERW psh;
     HPROPSHEETPAGE hprop;
+    INT_PTR ret;
 
-    BOOL ret;
-
-
-    ZeroMemory(&psh, sizeof(PROPSHEETHEADERW));
-    psh.dwSize = sizeof(PROPSHEETHEADERW);
+    ZeroMemory(&psh, sizeof(psh));
+    psh.dwSize = sizeof(psh);
     psh.dwFlags = PSP_DEFAULT | PSH_PROPTITLE;
     psh.pszCaption = MAKEINTRESOURCEW(IDS_RECYCLEBIN_FOLDER_NAME);
     psh.hwndParent = NULL;
@@ -408,10 +397,6 @@ BOOL SH_ShowRecycleBinProperties(WCHAR sDrive)
     hpsp[psh.nPages] = hprop;
     psh.nPages++;
 
-
     ret = PropertySheetW(&psh);
-    if (ret < 0)
-        return FALSE;
-    else
-        return TRUE;
+    return (ret >= 0);
 }
diff --git a/dll/win32/shell32/folders/CRecycleBin.cpp 
b/dll/win32/shell32/folders/CRecycleBin.cpp
index ad80c9dbc73..e2198897fdc 100644
--- a/dll/win32/shell32/folders/CRecycleBin.cpp
+++ b/dll/win32/shell32/folders/CRecycleBin.cpp
@@ -320,30 +320,30 @@ HRESULT WINAPI 
CRecycleBinItemContextMenu::QueryContextMenu(HMENU hMenu, UINT in
 
     TRACE("(%p)->(hmenu=%p indexmenu=%x cmdfirst=%x cmdlast=%x flags=%x )\n", 
this, hMenu, indexMenu, idCmdFirst, idCmdLast, uFlags);
 
-    if (LoadStringW(shell32_hInstance, IDS_RESTORE, szBuffer, sizeof(szBuffer) 
/ sizeof(WCHAR)))
+    if (LoadStringW(shell32_hInstance, IDS_RESTORE, szBuffer, 
_countof(szBuffer)))
     {
-        szBuffer[(sizeof(szBuffer)/sizeof(WCHAR))-1] = L'\0';
+        szBuffer[_countof(szBuffer)-1] = L'\0';
         _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + Count, 
MFT_STRING, szBuffer, MFS_ENABLED);
         Count++;
     }
 
-    if (LoadStringW(shell32_hInstance, IDS_CUT, szBuffer, sizeof(szBuffer) / 
sizeof(WCHAR)))
+    if (LoadStringW(shell32_hInstance, IDS_CUT, szBuffer, _countof(szBuffer)))
     {
         _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + Count++, 
MFT_SEPARATOR, NULL, MFS_ENABLED);
-        szBuffer[(sizeof(szBuffer)/sizeof(WCHAR))-1] = L'\0';
+        szBuffer[_countof(szBuffer)-1] = L'\0';
         _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + Count++, 
MFT_STRING, szBuffer, MFS_ENABLED);
     }
 
-    if (LoadStringW(shell32_hInstance, IDS_DELETE, szBuffer, sizeof(szBuffer) 
/ sizeof(WCHAR)))
+    if (LoadStringW(shell32_hInstance, IDS_DELETE, szBuffer, 
_countof(szBuffer)))
     {
-        szBuffer[(sizeof(szBuffer)/sizeof(WCHAR))-1] = L'\0';
+        szBuffer[_countof(szBuffer)-1] = L'\0';
         _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + Count++, 
MFT_SEPARATOR, NULL, MFS_ENABLED);
         _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + Count++, 
MFT_STRING, szBuffer, MFS_ENABLED);
     }
 
-    if (LoadStringW(shell32_hInstance, IDS_PROPERTIES, szBuffer, 
sizeof(szBuffer) / sizeof(WCHAR)))
+    if (LoadStringW(shell32_hInstance, IDS_PROPERTIES, szBuffer, 
_countof(szBuffer)))
     {
-        szBuffer[(sizeof(szBuffer)/sizeof(WCHAR))-1] = L'\0';
+        szBuffer[_countof(szBuffer)-1] = L'\0';
         _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + Count++, 
MFT_SEPARATOR, NULL, MFS_ENABLED);
         _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + Count, 
MFT_STRING, szBuffer, MFS_DEFAULT);
     }
@@ -791,12 +791,12 @@ HRESULT WINAPI CRecycleBin::QueryContextMenu(HMENU hMenu, 
UINT indexMenu, UINT i
     if (!hMenu)
         return E_INVALIDARG;
 
-    memset(&mii, 0, sizeof(mii));
+    ZeroMemory(&mii, sizeof(mii));
     mii.cbSize = sizeof(mii);
     mii.fMask = MIIM_TYPE | MIIM_ID | MIIM_STATE;
     mii.fState = RecycleBinIsEmpty() ? MFS_DISABLED : MFS_ENABLED;
     szBuffer[0] = L'\0';
-    LoadStringW(shell32_hInstance, IDS_EMPTY_BITBUCKET, szBuffer, 
sizeof(szBuffer) / sizeof(WCHAR));
+    LoadStringW(shell32_hInstance, IDS_EMPTY_BITBUCKET, szBuffer, 
_countof(szBuffer));
     mii.dwTypeData = szBuffer;
     mii.cch = wcslen(mii.dwTypeData);
     mii.wID = idCmdFirst + id++;
@@ -881,7 +881,7 @@ TRASH_CanTrashFile(LPCWSTR wszPath)
     DWORD FileSystemFlags, dwSize, dwDisposition;
     HKEY hKey;
     WCHAR szBuffer[10];
-    WCHAR szKey[150] = 
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Bitbucket\\Volume\\";
+    WCHAR szKey[150] = 
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\BitBucket\\Volume\\";
 
     if (wszPath[1] != L':')
     {
@@ -1116,7 +1116,7 @@ HRESULT WINAPI SHEmptyRecycleBinW(HWND hwnd, LPCWSTR 
pszRootPath, DWORD dwFlags)
         if (dwType != REG_EXPAND_SZ) /* type dismatch */
             return S_OK;
 
-        szPath[(sizeof(szPath)/sizeof(WCHAR))-1] = L'\0';
+        szPath[_countof(szPath)-1] = L'\0';
         PlaySoundW(szPath, NULL, SND_FILENAME);
     }
     return S_OK;

Reply via email to