Index: dll/win32/shell32/folders/CRecycleBin.cpp =================================================================== --- dll/win32/shell32/folders/CRecycleBin.cpp (revision 66113) +++ dll/win32/shell32/folders/CRecycleBin.cpp (working copy) @@ -825,14 +825,28 @@ { // FIXME // path & flags - hr = SHEmptyRecycleBinW(lpcmi->hwnd, L"C:\\", 0); - TRACE("result %x\n", hr); - if (hr != S_OK) - return hr; + WCHAR szEmptyMessage[100]; + WCHAR szEmptyTitle[25]; - lpSB = (LPSHELLBROWSER)SendMessageA(lpcmi->hwnd, CWM_GETISHELLBROWSER, 0, 0); - if (lpSB && SUCCEEDED(lpSB->QueryActiveShellView(&lpSV))) - lpSV->Refresh(); + //TODO: Add the number of objects in the Recycle bin to szEmptyMessage. for now it is a %1 format specifier. + if (!LoadStringW(shell32_hInstance, IDS_DELETEMULTIPLE_TEXT, szEmptyMessage, sizeof(szEmptyMessage) / sizeof(WCHAR))) + szEmptyMessage[0] = 0; + + if (!LoadStringW(shell32_hInstance, IDS_RECYCLEBIN_FOLDER_NAME, szEmptyTitle, sizeof(szEmptyTitle) / sizeof(WCHAR))) + szEmptyTitle[0] = 0; + + if (MessageBoxW(NULL, szEmptyMessage, szEmptyTitle, + MB_ICONEXCLAMATION | MB_YESNO | MB_DEFBUTTON2) == IDYES) + { + hr = SHEmptyRecycleBinW(lpcmi->hwnd, L"C:\\", 0); + TRACE("result %x\n", hr); + if (hr != S_OK) + return hr; + + lpSB = (LPSHELLBROWSER)SendMessageA(lpcmi->hwnd, CWM_GETISHELLBROWSER, 0, 0); + if (lpSB && SUCCEEDED(lpSB->QueryActiveShellView(&lpSV))) + lpSV->Refresh(); + } } return S_OK; }