[SHELL32]
authorPierre Schweitzer <pierre@reactos.org>
Mon, 9 Jan 2017 21:01:22 +0000 (21:01 +0000)
committerPierre Schweitzer <pierre@reactos.org>
Mon, 9 Jan 2017 21:01:22 +0000 (21:01 +0000)
Stub support for BtrFS helper.

CORE-12617

svn path=/trunk/; revision=73516

reactos/dll/win32/shell32/dialogs/drive.cpp

index 5be94b6..8ea0cb5 100644 (file)
@@ -96,6 +96,11 @@ GetDefaultClusterSize(LPWSTR szFs, PDWORD pClusterSize, PULARGE_INTEGER TotalNum
         // auto block size calculation
         ClusterSize = 0;
     }
         // auto block size calculation
         ClusterSize = 0;
     }
+    else if (!wcsicmp(szFs, L"BtrFS"))
+    {
+        // auto block size calculation
+        ClusterSize = 0;
+    }
     else
         return FALSE;
 
     else
         return FALSE;
 
@@ -309,6 +314,27 @@ InsertDefaultClusterSizeForFs(HWND hwndDlg, PFORMAT_DRIVE_CONTEXT pContext)
 
         EnableWindow(GetDlgItem(hwndDlg, 28675), TRUE);
     }
 
         EnableWindow(GetDlgItem(hwndDlg, 28675), TRUE);
     }
+    else if (!wcsicmp(wszBuf, L"BtrFS"))
+    {
+        if (!GetDefaultClusterSize(wszBuf, &ClusterSize, &TotalNumberOfBytes))
+        {
+            TRACE("BtrFS is not supported on hdd larger than 16E current %lu\n", TotalNumberOfBytes.QuadPart);
+            SendMessageW(hDlgCtrl, CB_DELETESTRING, iSelIndex, 0);
+            return;
+        }
+
+        if (LoadStringW(shell32_hInstance, IDS_DEFAULT_CLUSTER_SIZE, wszBuf, _countof(wszBuf)))
+        {
+            hDlgCtrl = GetDlgItem(hwndDlg, 28680);
+            SendMessageW(hDlgCtrl, CB_RESETCONTENT, 0, 0);
+            lIndex = SendMessageW(hDlgCtrl, CB_ADDSTRING, 0, (LPARAM)wszBuf);
+            if (lIndex != CB_ERR)
+                SendMessageW(hDlgCtrl, CB_SETITEMDATA, lIndex, (LPARAM)ClusterSize);
+            SendMessageW(hDlgCtrl, CB_SETCURSEL, 0, 0);
+        }
+
+        EnableWindow(GetDlgItem(hwndDlg, 28675), TRUE);
+    }
     else
     {
         FIXME("unknown fs\n");
     else
     {
         FIXME("unknown fs\n");