msi: Add the total and free disk space to the VolumeCostList control
James Hawkins
truiken at gmail.com
Thu Sep 14 20:10:30 CDT 2006
Hi,
This should finish out bug 4402. http://bugs.winehq.org/show_bug.cgi?id=4402
Changelog:
* Add the total and free disk space to the VolumeCostList control.
dlls/msi/dialog.c | 27 ++++++++++++++++++++-------
1 files changed, 20 insertions(+), 7 deletions(-)
--
James Hawkins
-------------- next part --------------
diff --git a/dlls/msi/dialog.c b/dlls/msi/dialog.c
index 0b63966..ce1ae81 100644
--- a/dlls/msi/dialog.c
+++ b/dlls/msi/dialog.c
@@ -2290,7 +2290,6 @@ static void msi_dialog_vcl_add_columns(
WCHAR num[10];
LVCOLUMNW lvc;
DWORD count = 0;
- LRESULT r;
static const WCHAR zero[] = {'0',0};
static const WCHAR negative[] = {'-',0};
@@ -2316,20 +2315,20 @@ static void msi_dialog_vcl_add_columns(
if ( !strncmpW( num, negative, 1 ) || !str_is_number( num ) )
return;
- lvc.mask = LVCF_FMT | LVCF_ORDER | LVCF_WIDTH | LVCF_TEXT;
- lvc.iOrder = count;
- lvc.pszText = msi_dialog_get_uitext( dialog, column_keys[count++] );
+ ZeroMemory( &lvc, sizeof(lvc) );
+ lvc.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM;
lvc.cx = atolW( num );
- lvc.fmt = LVCFMT_LEFT;
+ lvc.pszText = msi_dialog_get_uitext( dialog, column_keys[count] );
- r = SendMessageW( control->hwnd, LVM_INSERTCOLUMNW, 0, (LPARAM)&lvc );
+ SendMessageW( control->hwnd, LVM_INSERTCOLUMNW, count++, (LPARAM)&lvc );
msi_free( lvc.pszText );
- if ( r ) return;
}
}
static void msi_dialog_vcl_add_drives( msi_dialog *dialog, msi_control *control )
{
+ ULARGE_INTEGER total, free;
+ WCHAR size_text[MAX_PATH];
LPWSTR drives, ptr;
LVITEMW lvitem;
DWORD size;
@@ -2353,6 +2352,20 @@ static void msi_dialog_vcl_add_drives( m
lvitem.cchTextMax = lstrlenW(ptr) + 1;
SendMessageW( control->hwnd, LVM_INSERTITEMW, 0, (LPARAM)&lvitem );
+ GetDiskFreeSpaceExW(ptr, &free, &total, NULL);
+
+ StrFormatByteSizeW(total.QuadPart, size_text, MAX_PATH);
+ lvitem.iSubItem = 1;
+ lvitem.pszText = size_text;
+ lvitem.cchTextMax = lstrlenW(size_text) + 1;
+ SendMessageW( control->hwnd, LVM_SETITEMW, 0, (LPARAM)&lvitem );
+
+ StrFormatByteSizeW(free.QuadPart, size_text, MAX_PATH);
+ lvitem.iSubItem = 2;
+ lvitem.pszText = size_text;
+ lvitem.cchTextMax = lstrlenW(size_text) + 1;
+ SendMessageW( control->hwnd, LVM_SETITEMW, 0, (LPARAM)&lvitem );
+
ptr += lstrlenW(ptr) + 1;
i++;
}
--
1.4.2
More information about the wine-patches
mailing list