[ros-diffs] [janderwald] 35319: * Implement SHFormatDrive using fmifs api (format drive dialog in explorer)

janderwald at svn.reactos.org janderwald at svn.reactos.org
Wed Aug 13 23:29:30 CEST 2008


Author: janderwald
Date: Wed Aug 13 16:29:29 2008
New Revision: 35319

URL: http://svn.reactos.org/svn/reactos?rev=35319&view=rev
Log:
* Implement SHFormatDrive using fmifs api (format drive dialog in explorer)

Modified:
    trunk/reactos/dll/win32/shell32/drive.c
    trunk/reactos/dll/win32/shell32/lang/bg-BG.rc
    trunk/reactos/dll/win32/shell32/lang/ca-ES.rc
    trunk/reactos/dll/win32/shell32/lang/cs-CZ.rc
    trunk/reactos/dll/win32/shell32/lang/da-DK.rc
    trunk/reactos/dll/win32/shell32/lang/de-DE.rc
    trunk/reactos/dll/win32/shell32/lang/el-GR.rc
    trunk/reactos/dll/win32/shell32/lang/en-GB.rc
    trunk/reactos/dll/win32/shell32/lang/en-US.rc
    trunk/reactos/dll/win32/shell32/lang/es-ES.rc
    trunk/reactos/dll/win32/shell32/lang/fi-FI.rc
    trunk/reactos/dll/win32/shell32/lang/fr-FR.rc
    trunk/reactos/dll/win32/shell32/lang/hu-HU.rc
    trunk/reactos/dll/win32/shell32/lang/it-IT.rc
    trunk/reactos/dll/win32/shell32/lang/ja-JP.rc
    trunk/reactos/dll/win32/shell32/lang/ko-KR.rc
    trunk/reactos/dll/win32/shell32/lang/nl-NL.rc
    trunk/reactos/dll/win32/shell32/lang/no-NO.rc
    trunk/reactos/dll/win32/shell32/lang/pl-PL.rc
    trunk/reactos/dll/win32/shell32/lang/pt-BR.rc
    trunk/reactos/dll/win32/shell32/lang/pt-PT.rc
    trunk/reactos/dll/win32/shell32/lang/ru-RU.rc
    trunk/reactos/dll/win32/shell32/lang/sk-SK.rc
    trunk/reactos/dll/win32/shell32/lang/sl-SI.rc
    trunk/reactos/dll/win32/shell32/lang/sv-SE.rc
    trunk/reactos/dll/win32/shell32/lang/tr-TR.rc
    trunk/reactos/dll/win32/shell32/lang/uk-UA.rc
    trunk/reactos/dll/win32/shell32/lang/zh-CN.rc
    trunk/reactos/dll/win32/shell32/lang/zh-TW.rc
    trunk/reactos/dll/win32/shell32/shellord.c
    trunk/reactos/dll/win32/shell32/shresdef.h

Modified: trunk/reactos/dll/win32/shell32/drive.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/drive.c?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/drive.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/drive.c [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -26,29 +26,27 @@
 #define ConvertUlongToLargeInteger RtlConvertUlongToLargeInteger
 #define LargeIntegerSubtract RtlLargeIntegerSubtract
 #define MAX_PROPERTY_SHEET_PAGE 32
+
+#define WIN32_NO_STATUS
+#define NTOS_MODE_USER
+#define UNICODE
+#define _UNICODE
+#include <windows.h>
+#include <ndk/ntndk.h>
+
 #include <string.h>
 #include <stdarg.h>
 #include <stdio.h>
-#include "winerror.h"
-#include "windef.h"
-#include "winbase.h"
-#include "winreg.h"
-#include "wingdi.h"
-#include "winuser.h"
-#include "commdlg.h"
 #include "wine/debug.h"
-
-#include "shellapi.h"
+#include "shresdef.h"
+
 #include <shlwapi.h>
-#include "shlobj.h"
-#include "shell32_main.h"
-#include "shresdef.h"
-#include "undocshell.h"
+#include <shlobj.h>
 #include <prsht.h>
 #include <initguid.h>
 #include <devguid.h>
-#include <winioctl.h>
 #include <largeint.h>
+#include <fmifs/fmifs.h>
 
 WINE_DEFAULT_DEBUG_CHANNEL(shell);
 
@@ -58,6 +56,53 @@
     HWPD_LARGELIST,
     HWPD_MAX = HWPD_LARGELIST
 } HWPAGE_DISPLAYMODE, *PHWPAGE_DISPLAYMODE;
+
+typedef
+BOOLEAN 
+(NTAPI *INITIALIZE_FMIFS)(
+	IN PVOID hinstDll,
+	IN DWORD dwReason,
+	IN PVOID reserved
+);
+typedef
+BOOLEAN
+(NTAPI *QUERY_AVAILABLEFSFORMAT)(
+	IN DWORD Index,
+	IN OUT PWCHAR FileSystem,
+	OUT UCHAR* Major,
+	OUT UCHAR* Minor,
+	OUT BOOLEAN* LastestVersion
+);
+typedef
+BOOLEAN
+(NTAPI *ENABLEVOLUMECOMPRESSION)(
+	IN PWCHAR DriveRoot,
+	IN USHORT Compression
+);
+
+typedef
+VOID 
+(NTAPI *FORMAT_EX)(
+	IN PWCHAR DriveRoot,
+	IN FMIFS_MEDIA_FLAG MediaFlag,
+	IN PWCHAR Format,
+	IN PWCHAR Label,
+	IN BOOLEAN QuickFormat,
+	IN ULONG ClusterSize,
+	IN PFMIFSCALLBACK Callback
+);
+
+
+typedef struct
+{
+    WCHAR   Drive;
+    UINT    Options;
+    HMODULE hLibrary;
+    QUERY_AVAILABLEFSFORMAT QueryAvailableFileSystemFormat;
+    FORMAT_EX FormatEx;
+    ENABLEVOLUMECOMPRESSION EnableVolumeCompression;
+    UINT Result;
+}FORMAT_DRIVE_CONTEXT, *PFORMAT_DRIVE_CONTEXT;
 
 HWND WINAPI
 DeviceCreateHardwarePageEx(HWND hWndParent,
@@ -65,8 +110,11 @@
                            UINT uNumberOfGuids,
                            HWPAGE_DISPLAYMODE DisplayMode);
 
+HPROPSHEETPAGE SH_CreatePropertySheetPage(LPSTR resname, DLGPROC dlgproc, LPARAM lParam, LPWSTR szTitle);
+
 #define DRIVE_PROPERTY_PAGES (3)
 
+extern HINSTANCE shell32_hInstance;
 
 static
 LARGE_INTEGER
@@ -201,11 +249,11 @@
 
          Result = GetFreeBytesShare(TotalNumberOfFreeBytes, TotalNumberOfBytes);
          /* set free bytes percentage */
-         sprintfW(szResult, L"%02d%%", Result.QuadPart);
+         swprintf(szResult, L"%02d%%", Result.QuadPart);
          SendDlgItemMessageW(hwndDlg, 14007, WM_SETTEXT, (WPARAM)0, (LPARAM)szResult);
          /* store used share amount */
          Result = LargeIntegerSubtract(ConvertUlongToLargeInteger(100), Result);
-         sprintfW(szResult, L"%02d%%", Result.QuadPart);
+         swprintf(szResult, L"%02d%%", Result.QuadPart);
          SendDlgItemMessageW(hwndDlg, 14005, WM_SETTEXT, (WPARAM)0, (LPARAM)szResult);
          if (LoadStringW(shell32_hInstance, IDS_DRIVE_FIXED, szBuffer, sizeof(szBuffer) / sizeof(WCHAR)))
              SendDlgItemMessageW(hwndDlg, 14002, WM_SETTEXT, (WPARAM)0, (LPARAM)szBuffer);
@@ -214,7 +262,7 @@
    }
    /* set drive description */
    SendDlgItemMessageW(hwndDlg, 14010, WM_GETTEXT, (WPARAM)50, (LPARAM)szFormat);
-   sprintfW(szBuffer, szFormat, szDrive);
+   swprintf(szBuffer, szFormat, szDrive);
    SendDlgItemMessageW(hwndDlg, 14010, WM_SETTEXT, (WPARAM)NULL, (LPARAM)szBuffer);
 }
 
@@ -493,3 +541,497 @@
    else
        return TRUE;
 }
+
+
+
+
+
+VOID
+InsertDefaultClusterSizeForFs(HWND hwndDlg, PFORMAT_DRIVE_CONTEXT pContext)
+{
+    WCHAR szFs[100] = {0};
+    WCHAR szDrive[3] = { L'C', '\\', 0 };
+    INT iSelIndex;
+    ULARGE_INTEGER FreeBytesAvailableUser, TotalNumberOfBytes;
+    DWORD ClusterSize;
+    LRESULT lIndex;
+    HWND hDlgCtrl;
+
+    hDlgCtrl = GetDlgItem(hwndDlg, 28677);
+    iSelIndex = SendMessage(hDlgCtrl, CB_GETCURSEL, 0, 0);
+    if (iSelIndex == CB_ERR)
+        return;
+
+    if (SendMessageW(hDlgCtrl, CB_GETLBTEXT, iSelIndex, (LPARAM)szFs) == CB_ERR)
+        return;
+
+    szFs[(sizeof(szFs)/sizeof(WCHAR))-1] = L'\0';
+    szDrive[0] = pContext->Drive;
+
+    if (!GetDiskFreeSpaceExW(szDrive, &FreeBytesAvailableUser, &TotalNumberOfBytes, NULL))
+        return;
+
+    if (!wcsicmp(szFs, L"FAT16"))
+    {
+        if (TotalNumberOfBytes.QuadPart <= (16 * 1024 * 1024))
+            ClusterSize = 2048;
+        else if (TotalNumberOfBytes.QuadPart <= (32 * 1024 * 1024))
+            ClusterSize = 512;
+        else if (TotalNumberOfBytes.QuadPart <= (64 * 1024 * 1024))
+            ClusterSize = 1024;
+        else if (TotalNumberOfBytes.QuadPart <= (128 * 1024 * 1024))
+            ClusterSize = 2048;
+        else if (TotalNumberOfBytes.QuadPart <= (256 * 1024 * 1024))
+            ClusterSize = 4096;
+        else if (TotalNumberOfBytes.QuadPart <= (512 * 1024 * 1024))
+            ClusterSize = 8192;
+        else if (TotalNumberOfBytes.QuadPart <= (1024 * 1024 * 1024))
+            ClusterSize = 16384;
+        else if (TotalNumberOfBytes.QuadPart <= (2048LL * 1024LL * 1024LL))
+            ClusterSize = 32768;
+        else if (TotalNumberOfBytes.QuadPart <= (4096LL * 1024LL * 1024LL))
+            ClusterSize = 8192;
+        else 
+        {
+            TRACE("FAT16 is not supported on hdd larger than 4G current %lu\n", TotalNumberOfBytes.QuadPart);
+            SendMessageW(hDlgCtrl, CB_DELETESTRING, iSelIndex, 0);
+            return;
+        }
+
+        if (LoadStringW(shell32_hInstance, IDS_DEFAULT_CLUSTER_SIZE, szFs, sizeof(szFs)/sizeof(WCHAR)))
+        {
+            hDlgCtrl = GetDlgItem(hwndDlg, 28680);
+            szFs[(sizeof(szFs)/sizeof(WCHAR))-1] = L'\0';
+            SendMessageW(hDlgCtrl, CB_RESETCONTENT, 0, 0);
+            lIndex = SendMessageW(hDlgCtrl, CB_ADDSTRING, 0, (LPARAM)szFs);
+            if (lIndex != CB_ERR)
+                SendMessageW(hDlgCtrl, CB_SETITEMDATA, lIndex, (LPARAM)ClusterSize);
+        }
+    }
+    else if (!wcsicmp(szFs, L"FAT32"))
+    {
+        if (TotalNumberOfBytes.QuadPart <=(64 * 1024 * 1024))
+            ClusterSize = 512;
+        else if (TotalNumberOfBytes.QuadPart <= (128   * 1024 * 1024))
+            ClusterSize = 1024;
+        else if (TotalNumberOfBytes.QuadPart <= (256   * 1024 * 1024))
+            ClusterSize = 2048;
+        else if (TotalNumberOfBytes.QuadPart <= (8192LL  * 1024LL * 1024LL))
+            ClusterSize = 2048;
+        else if (TotalNumberOfBytes.QuadPart <= (16384LL * 1024LL * 1024LL))
+            ClusterSize = 8192;
+        else if (TotalNumberOfBytes.QuadPart <= (32768LL * 1024LL * 1024LL))
+            ClusterSize = 16384;
+        else 
+        {
+            TRACE("FAT32 is not supported on hdd larger than 32G current %lu\n", TotalNumberOfBytes.QuadPart);
+            SendMessageW(hDlgCtrl, CB_DELETESTRING, iSelIndex, 0);
+            return;
+        }
+        if (LoadStringW(shell32_hInstance, IDS_DEFAULT_CLUSTER_SIZE, szFs, sizeof(szFs)/sizeof(WCHAR)))
+        {
+            hDlgCtrl = GetDlgItem(hwndDlg, 28680);
+            szFs[(sizeof(szFs)/sizeof(WCHAR))-1] = L'\0';
+            SendMessageW(hDlgCtrl, CB_RESETCONTENT, 0, 0);
+            lIndex = SendMessageW(hDlgCtrl, CB_ADDSTRING, 0, (LPARAM)szFs);
+            if (lIndex != CB_ERR)
+                SendMessageW(hDlgCtrl, CB_SETITEMDATA, lIndex, (LPARAM)ClusterSize);
+        }
+    }
+    else if (!wcsicmp(szFs, L"NTFS"))
+    {
+        if (TotalNumberOfBytes.QuadPart <=(512 * 1024 * 1024))
+            ClusterSize = 512;
+        else if (TotalNumberOfBytes.QuadPart <= (1024 * 1024 * 1024))
+            ClusterSize = 1024;
+        else if (TotalNumberOfBytes.QuadPart <= (2048LL * 1024LL * 1024LL))
+            ClusterSize = 2048;
+        else
+            ClusterSize = 2048;
+
+        if (LoadStringW(shell32_hInstance, IDS_DEFAULT_CLUSTER_SIZE, szFs, sizeof(szFs)/sizeof(WCHAR)))
+        {
+            hDlgCtrl = GetDlgItem(hwndDlg, 28680);
+            szFs[(sizeof(szFs)/sizeof(WCHAR))-1] = L'\0';
+            SendMessageW(hDlgCtrl, CB_RESETCONTENT, 0, 0);
+            lIndex = SendMessageW(hDlgCtrl, CB_ADDSTRING, 0, (LPARAM)szFs);
+            if (lIndex != CB_ERR)
+                SendMessageW(hDlgCtrl, CB_SETITEMDATA, lIndex, (LPARAM)ClusterSize);
+        }
+        ClusterSize = 512;
+        for (lIndex = 0; lIndex < 4; lIndex++)
+        {
+            TotalNumberOfBytes.QuadPart = ClusterSize;
+            if (StrFormatByteSizeW(TotalNumberOfBytes.QuadPart, szFs, sizeof(szFs)/sizeof(WCHAR)))
+            {
+                lIndex = SendMessageW(hDlgCtrl, CB_ADDSTRING, 0, (LPARAM)szFs);
+                if (lIndex != CB_ERR)
+                    SendMessageW(hDlgCtrl, CB_SETITEMDATA, lIndex, (LPARAM)ClusterSize);
+            }
+            ClusterSize *= 2;
+        }
+    }
+}
+
+VOID
+InitializeFormatDriveDlg(HWND hwndDlg, PFORMAT_DRIVE_CONTEXT pContext)
+{
+    WCHAR szText[120];
+    WCHAR szDrive[3] = { L'C', '\\', 0 };
+    WCHAR szFs[30] = {0};
+    INT Length, TempLength;
+    DWORD dwSerial, dwMaxComp, dwFileSys;
+    ULARGE_INTEGER FreeBytesAvailableUser, TotalNumberOfBytes;
+    DWORD dwIndex, dwDefault;
+    UCHAR uMinor, uMajor;
+    BOOLEAN Latest;
+    HWND hDlgCtrl;
+
+    Length = GetWindowTextW(hwndDlg, szText, sizeof(szText)/sizeof(WCHAR));
+    szDrive[0] = pContext->Drive;
+    if (GetVolumeInformationW(szDrive, &szText[Length+1], (sizeof(szText)/sizeof(WCHAR))- Length - 2, &dwSerial, &dwMaxComp, &dwFileSys, szFs, sizeof(szFs)/sizeof(WCHAR)))
+    {
+        szText[Length] = L' ';
+        szText[(sizeof(szText)/sizeof(WCHAR))-1] = L'\0';
+        TempLength = wcslen(&szText[Length+1]);
+        if (!TempLength)
+        {
+            /* load default volume label */
+            TempLength = LoadStringW(shell32_hInstance, IDS_DRIVE_FIXED, &szText[Length+1], (sizeof(szText)/sizeof(WCHAR))- Length - 2);
+        }
+        else
+        {
+            /* set volume label */
+            szText[(sizeof(szText)/sizeof(WCHAR))-1] = L'\0';
+            SendDlgItemMessageW(hwndDlg, 28679, WM_SETTEXT, 0, (LPARAM)&szText[Length+1]);
+        }
+        Length += TempLength + 1;
+    }
+    if (Length + 4 < (sizeof(szText)/sizeof(WCHAR)))
+    {
+        szText[Length] = L' ';
+        szText[Length+1] = L'(';
+        szText[Length+2] = szDrive[0];
+        szText[Length+3] = L')';
+        Length +=4;
+    }
+
+    if (Length < (sizeof(szText)/sizeof(WCHAR)))
+        szText[Length] = L'\0';
+    else
+        szText[(sizeof(szText)/sizeof(WCHAR))-1] = L'\0';
+
+    /* set window text */
+    SetWindowTextW(hwndDlg, szText);
+
+    if (GetDiskFreeSpaceExW(szDrive, &FreeBytesAvailableUser, &TotalNumberOfBytes, NULL))
+    {
+        if (StrFormatByteSizeW(TotalNumberOfBytes.QuadPart, szText, sizeof(szText)/sizeof(WCHAR)))
+        {
+            /* add drive capacity */
+            szText[(sizeof(szText)/sizeof(WCHAR))-1] = L'\0';
+            SendDlgItemMessageW(hwndDlg, 28673, LB_ADDSTRING, 0, (LPARAM)szText);
+        }
+    }
+
+    if (pContext->Options & SHFMT_OPT_FULL)
+    {
+        /* check quick format button */
+        SendDlgItemMessageW(hwndDlg, 28674, BM_SETCHECK, BST_CHECKED, 0);
+    }
+
+    /* enumerate all available filesystems */
+    dwIndex = 0;
+    dwDefault = 0;
+    hDlgCtrl = GetDlgItem(hwndDlg, 28677);
+    while(pContext->QueryAvailableFileSystemFormat(dwIndex, szText, &uMajor, &uMinor, &Latest))
+    {
+        szText[(sizeof(szText)/sizeof(WCHAR))-1] = L'\0';
+        if (!wcsicmp(szText, szFs))
+            dwDefault = dwIndex;
+
+         SendMessageW(hDlgCtrl, CB_ADDSTRING, 0, (LPARAM)szText);
+         dwIndex++;
+    }
+
+    if (!dwIndex)
+    {
+        ERR("no filesystem providers\n");
+        return;
+    }
+
+    /* select default filesys */
+    SendMessageW(hDlgCtrl, CB_SETCURSEL, dwIndex, 0);
+    /* setup cluster combo */
+    InsertDefaultClusterSizeForFs(hwndDlg, pContext);
+    /* hide progress control */
+    ShowWindow(GetDlgItem(hwndDlg, 28678), SW_HIDE);
+}
+
+HWND FormatDrvDialog = NULL;
+BOOLEAN bSuccess = FALSE;
+
+
+BOOLEAN
+NTAPI
+FormatExCB(
+	IN CALLBACKCOMMAND Command,
+	IN ULONG SubAction,
+	IN PVOID ActionInfo)
+{
+    PDWORD Progress;
+    PBOOLEAN pSuccess;
+    switch(Command)
+    {
+        case PROGRESS:
+            Progress = (PDWORD)ActionInfo;
+            SendDlgItemMessageW(FormatDrvDialog, 28678, PBM_SETPOS, (WPARAM)*Progress, 0);
+            break;
+        case DONE:
+            pSuccess = (PBOOLEAN)ActionInfo;
+            bSuccess = (*pSuccess);
+            break;
+
+        case VOLUMEINUSE:
+        case INSUFFICIENTRIGHTS:
+        case FSNOTSUPPORTED:
+        case CLUSTERSIZETOOSMALL:
+            bSuccess = FALSE;
+            FIXME("\n");
+            break;
+
+        default:
+            break;
+    }
+
+    return TRUE;
+}
+
+
+
+
+
+VOID
+FormatDrive(HWND hwndDlg, PFORMAT_DRIVE_CONTEXT pContext)
+{
+    WCHAR szDrive[3] = { L'C', '\\', 0 };
+    WCHAR szFileSys[40] = {0};
+    WCHAR szLabel[40] = {0};
+    INT iSelIndex;
+    UINT Length;
+    HWND hDlgCtrl;
+    BOOL QuickFormat;
+    DWORD ClusterSize;
+
+    /* set volume path */
+    szDrive[0] = pContext->Drive;
+
+    /* get filesystem */
+    hDlgCtrl = GetDlgItem(hwndDlg, 28677);
+    iSelIndex = SendMessageW(hDlgCtrl, CB_GETCURSEL, 0, 0);
+    if (iSelIndex == CB_ERR)
+    {
+        FIXME("\n");
+        return;
+    }
+    Length = SendMessageW(hDlgCtrl, CB_GETLBTEXTLEN, iSelIndex, 0);
+    if (Length == CB_ERR || Length + 1> sizeof(szFileSys)/sizeof(WCHAR))
+    {
+        FIXME("\n");
+        return;
+    }
+
+    /* retrieve the file system */
+    SendMessageW(hDlgCtrl, CB_GETLBTEXT, iSelIndex, (LPARAM)szFileSys);
+    szFileSys[(sizeof(szFileSys)/sizeof(WCHAR))-1] = L'\0';
+
+    /* retrieve the volume label */
+    hDlgCtrl = GetWindow(hwndDlg, 28679);
+    Length = SendMessageW(hDlgCtrl, WM_GETTEXTLENGTH, 0, 0);
+    if (Length + 1 > sizeof(szLabel)/sizeof(WCHAR))
+    {
+        FIXME("\n");
+        return;
+    }
+    SendMessageW(hDlgCtrl, WM_GETTEXT, sizeof(szLabel)/sizeof(WCHAR), (LPARAM)szLabel);
+    szLabel[(sizeof(szLabel)/sizeof(WCHAR))-1] = L'\0';
+
+    /* check for quickformat */
+    if (SendDlgItemMessageW(hwndDlg, 28674, BM_GETCHECK, 0, 0) == BST_CHECKED)
+        QuickFormat = TRUE;
+    else
+        QuickFormat = FALSE;
+
+    /* get the cluster size */
+    hDlgCtrl = GetDlgItem(hwndDlg, 28680);
+    iSelIndex = SendMessageW(hDlgCtrl, CB_GETCURSEL, 0, 0);
+    if (iSelIndex == CB_ERR)
+    {
+        FIXME("\n");
+        return;
+    }
+    ClusterSize = SendMessageW(hDlgCtrl, CB_GETITEMDATA, iSelIndex, 0);
+    if (ClusterSize == CB_ERR)
+    {
+        FIXME("\n");
+        return;
+    }
+
+    hDlgCtrl = GetDlgItem(hwndDlg, 28680);
+    ShowWindow(hDlgCtrl, SW_SHOW);
+    SendMessageW(hDlgCtrl, PBM_SETRANGE, 0, MAKELPARAM(0, 100));
+    bSuccess = FALSE;
+
+    /* FIXME
+     * will cause display problems
+     * when performing more than one format
+     */
+    FormatDrvDialog = hwndDlg;
+
+    pContext->FormatEx(szDrive,
+                       FMIFS_HARDDISK, /* FIXME */
+                       szFileSys,
+                       szLabel,
+                       QuickFormat,
+                       ClusterSize,
+                       FormatExCB);
+
+    ShowWindow(hDlgCtrl, SW_HIDE);
+    FormatDrvDialog = NULL;
+    if (!bSuccess)
+    {
+        pContext->Result = SHFMT_ERROR;
+    }
+    else if (QuickFormat)
+    {
+        pContext->Result = SHFMT_OPT_FULL;
+    }
+    else
+    {
+        pContext->Result =  FALSE;
+    }
+}
+
+
+BOOL 
+CALLBACK 
+FormatDriveDlg(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+    PFORMAT_DRIVE_CONTEXT pContext;
+
+    switch(uMsg)
+    {
+        case WM_INITDIALOG:
+            InitializeFormatDriveDlg(hwndDlg, (PFORMAT_DRIVE_CONTEXT)lParam);
+            SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)lParam);
+            return TRUE;
+        case WM_COMMAND:
+            switch(LOWORD(wParam))
+            {
+                case IDOK:
+                    pContext = (PFORMAT_DRIVE_CONTEXT)GetWindowLongPtr(hwndDlg, DWLP_USER);
+                    FormatDrive(hwndDlg, pContext);
+                    break;
+                case IDCANCEL:
+                    pContext = (PFORMAT_DRIVE_CONTEXT)GetWindowLongPtr(hwndDlg, DWLP_USER);
+                    EndDialog(hwndDlg, pContext->Result);
+                    break;
+                case 28677: // filesystem combo
+                    if (HIWORD(wParam) == CBN_SELENDOK)
+                    {
+                        pContext = (PFORMAT_DRIVE_CONTEXT)GetWindowLongPtr(hwndDlg, DWLP_USER);
+                        InsertDefaultClusterSizeForFs(hwndDlg, pContext);
+                    }
+                    break;
+            }
+    }
+    return FALSE;
+}
+
+
+BOOL
+InitializeFmifsLibrary(PFORMAT_DRIVE_CONTEXT pContext)
+{
+    INITIALIZE_FMIFS InitFmifs;
+    BOOLEAN ret;
+    HMODULE hLibrary;
+
+    hLibrary = pContext->hLibrary = LoadLibraryW(L"fmifs.dll");
+    if(!hLibrary)
+    {
+        ERR("failed to load fmifs.dll\n");
+        return FALSE;
+    }
+
+    InitFmifs = (INITIALIZE_FMIFS)GetProcAddress(hLibrary, "InitializeFmIfs");
+    if (!InitFmifs)
+    {
+        ERR("InitializeFmIfs export is missing\n");
+        FreeLibrary(hLibrary);
+        return FALSE;
+    }
+
+    ret = (*InitFmifs)(NULL, DLL_PROCESS_ATTACH, NULL);
+    if (!ret)
+    {
+        ERR("fmifs failed to initialize\n");
+        FreeLibrary(hLibrary);
+        return FALSE;
+    }
+
+    pContext->QueryAvailableFileSystemFormat = (QUERY_AVAILABLEFSFORMAT)GetProcAddress(hLibrary, "QueryAvailableFileSystemFormat");
+    if (!pContext->QueryAvailableFileSystemFormat)
+    {
+        ERR("QueryAvailableFileSystemFormat export is missing\n");
+        FreeLibrary(hLibrary);
+        return FALSE;
+    }
+
+    pContext->FormatEx = (FORMAT_EX) GetProcAddress(hLibrary, "FormatEx");
+    if (!pContext->FormatEx)
+    {
+        ERR("FormatEx export is missing\n");
+        FreeLibrary(hLibrary);
+        return FALSE;
+    }
+
+    pContext->EnableVolumeCompression = (ENABLEVOLUMECOMPRESSION) GetProcAddress(hLibrary, "EnableVolumeCompression");
+    if (!pContext->FormatEx)
+    {
+        ERR("EnableVolumeCompression export is missing\n");
+        FreeLibrary(hLibrary);
+        return FALSE;
+    }
+
+    return TRUE;
+}
+
+/*************************************************************************
+ *              SHFormatDrive (SHELL32.@)
+ */
+
+DWORD 
+WINAPI
+SHFormatDrive(HWND hwnd, UINT drive, UINT fmtID, UINT options)
+{
+    FORMAT_DRIVE_CONTEXT Context;
+    int result;
+
+    TRACE("%p, 0x%08x, 0x%08x, 0x%08x - stub\n", hwnd, drive, fmtID, options);
+
+    if (!InitializeFmifsLibrary(&Context))
+    {
+        ERR("failed to initialize fmifs\n");
+        return SHFMT_NOFORMAT;
+    }
+
+    Context.Drive = drive;
+    Context.Options = options;
+
+    result = DialogBoxParamW(shell32_hInstance, L"FORMAT_DLG", hwnd, FormatDriveDlg, (LPARAM)&Context);
+
+    FreeLibrary(Context.hLibrary);
+    return result;
+}
+
+

Modified: trunk/reactos/dll/win32/shell32/lang/bg-BG.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/bg-BG.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/bg-BG.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/bg-BG.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -732,8 +732,10 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
-
-
-
-
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END
+
+
+
+

Modified: trunk/reactos/dll/win32/shell32/lang/ca-ES.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ca-ES.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/ca-ES.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/ca-ES.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -729,4 +729,6 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/cs-CZ.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/cs-CZ.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/cs-CZ.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/cs-CZ.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -730,4 +730,6 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/da-DK.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/da-DK.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/da-DK.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/da-DK.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -729,4 +729,6 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/de-DE.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/de-DE.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/de-DE.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/de-DE.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -547,7 +547,7 @@
 
 FORMAT_DLG DIALOGEX 50, 50, 184, 218
 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
-CAPTION "Formatieren"
+CAPTION "Formatieren von"
 FONT 8, "MS Shell Dlg"
 BEGIN
 	DEFPUSHBUTTON "&Starten", IDOK, 53, 198, 60, 14
@@ -731,4 +731,6 @@
 	IDS_PRINTERS                "Drucker"
 	IDS_FONTS                   "Schriftarten"
 	IDS_INSTALLNEWFONT          "Neue Schriftart installieren..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Standardgröße"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/el-GR.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/el-GR.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/el-GR.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/el-GR.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -729,4 +729,6 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/en-GB.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/en-GB.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/en-GB.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/en-GB.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -729,4 +729,6 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/en-US.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/en-US.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/en-US.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/en-US.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -730,4 +730,6 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/es-ES.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/es-ES.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/es-ES.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/es-ES.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -731,4 +731,6 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/fi-FI.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/fi-FI.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/fi-FI.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/fi-FI.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -729,4 +729,6 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/fr-FR.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/fr-FR.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/fr-FR.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/fr-FR.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -733,4 +733,6 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/hu-HU.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/hu-HU.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/hu-HU.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/hu-HU.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -732,4 +732,6 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/it-IT.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/it-IT.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/it-IT.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/it-IT.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -730,4 +730,6 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/ja-JP.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ja-JP.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/ja-JP.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/ja-JP.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -729,4 +729,6 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+
+END

Modified: trunk/reactos/dll/win32/shell32/lang/ko-KR.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ko-KR.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/ko-KR.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/ko-KR.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -729,4 +729,6 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/nl-NL.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/nl-NL.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/nl-NL.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/nl-NL.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -729,4 +729,6 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/no-NO.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/no-NO.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/no-NO.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/no-NO.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -707,4 +707,6 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/pl-PL.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/pl-PL.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/pl-PL.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/pl-PL.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -735,4 +735,6 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/pt-BR.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/pt-BR.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/pt-BR.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/pt-BR.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -731,4 +731,6 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/pt-PT.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/pt-PT.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/pt-PT.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/pt-PT.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -731,4 +731,6 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/ru-RU.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ru-RU.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/ru-RU.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/ru-RU.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -727,4 +727,6 @@
 	IDS_PRINTERS                "Ïðèíòåðû"
 	IDS_FONTS                   "Øðèôòû"
 	IDS_INSTALLNEWFONT          "Óñòàíîâèòü íîâûé øðèôò..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/sk-SK.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/sk-SK.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/sk-SK.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/sk-SK.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -735,4 +735,6 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/sl-SI.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/sl-SI.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/sl-SI.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/sl-SI.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -729,4 +729,6 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/sv-SE.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/sv-SE.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/sv-SE.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/sv-SE.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -729,4 +729,6 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/tr-TR.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/tr-TR.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/tr-TR.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/tr-TR.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -729,4 +729,6 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/uk-UA.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/uk-UA.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/uk-UA.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/uk-UA.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -730,4 +730,6 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END

Modified: trunk/reactos/dll/win32/shell32/lang/zh-CN.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/zh-CN.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/zh-CN.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/zh-CN.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -717,5 +717,7 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
-END
-
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+END
+

Modified: trunk/reactos/dll/win32/shell32/lang/zh-TW.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/zh-TW.rc?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/lang/zh-TW.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/lang/zh-TW.rc [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -730,6 +730,9 @@
 	IDS_PRINTERS                "Printers"
 	IDS_FONTS                   "Fonts"
 	IDS_INSTALLNEWFONT          "Install New Font..."
+
+	IDS_DEFAULT_CLUSTER_SIZE    "Default allocation size"
+
 END
 
 #pragma code_page(default)

Modified: trunk/reactos/dll/win32/shell32/shellord.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shellord.c?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/shellord.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/shellord.c [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -2057,13 +2057,6 @@
     return S_OK;
 }
 
-DWORD WINAPI SHFormatDrive(HWND hwnd, UINT drive, UINT fmtID, UINT options)
-{
-    FIXME("%p, 0x%08x, 0x%08x, 0x%08x - stub\n", hwnd, drive, fmtID, options);
-
-    return SHFMT_NOFORMAT;
-}
-
 HRESULT WINAPI SHQueryRecycleBinA(LPCSTR pszRootPath, LPSHQUERYRBINFO pSHQueryRBInfo)
 {
     LPWSTR szRootPathW = NULL;

Modified: trunk/reactos/dll/win32/shell32/shresdef.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shresdef.h?rev=35319&r1=35318&r2=35319&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/shresdef.h [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/shresdef.h [iso-8859-1] Wed Aug 13 16:29:29 2008
@@ -160,6 +160,7 @@
 #define IDS_SHV_COLUMN_MODEL        322
 #define IDS_CUT                     323
 #define IDS_RESTORE                 324
+#define IDS_DEFAULT_CLUSTER_SIZE    325
 
 /* Note: this string is referenced from the registry */
 #define IDS_RECYCLEBIN_FOLDER_NAME   8964



More information about the Ros-diffs mailing list