mirror of
https://github.com/pbatard/rufus.git
synced 2024-08-14 23:57:05 +00:00
[ui] fs and cluster size selection improvements
* also added support for FCC_DONE_WITH_STRUCTURE which is used on Small FAT16 formatting
This commit is contained in:
parent
a7d714cefd
commit
af3607715a
3 changed files with 102 additions and 46 deletions
130
rufus.c
130
rufus.c
|
@ -57,10 +57,11 @@
|
||||||
const GUID GUID_DEVINTERFACE_DISK = { 0x53f56307L, 0xb6bf, 0x11d0, {0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b} };
|
const GUID GUID_DEVINTERFACE_DISK = { 0x53f56307L, 0xb6bf, 0x11d0, {0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b} };
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char* FileSystemLabel[FS_MAX] = { "FAT", "FAT32", "NTFS", "exFAT" };
|
||||||
// Don't ask me - just following the MS standard here
|
// Don't ask me - just following the MS standard here
|
||||||
const char* ClusterSizeLabel[] = {"512 bytes", "1024 bytes","2048 bytes","4096 bytes","8192 bytes",
|
const char* ClusterSizeLabel[] = { "512 bytes", "1024 bytes","2048 bytes","4096 bytes","8192 bytes",
|
||||||
"16 kilobytes", "32 kilobytes", "64 kilobytes", "128 kilobytes", "256 kilobytes", "512 kilobytes",
|
"16 kilobytes", "32 kilobytes", "64 kilobytes", "128 kilobytes", "256 kilobytes", "512 kilobytes",
|
||||||
"1024 kilobytes","2048 kilobytes","4096 kilobytes","8192 kilobytes","16 megabytes","32 megabytes"};
|
"1024 kilobytes","2048 kilobytes","4096 kilobytes","8192 kilobytes","16 megabytes","32 megabytes" };
|
||||||
|
|
||||||
// For MinGW
|
// For MinGW
|
||||||
#ifndef PBS_MARQUEE
|
#ifndef PBS_MARQUEE
|
||||||
|
@ -78,6 +79,8 @@ HWND hMainDialog;
|
||||||
char szFolderPath[MAX_PATH];
|
char szFolderPath[MAX_PATH];
|
||||||
HWND hStatus;
|
HWND hStatus;
|
||||||
float fScale = 1.0f;
|
float fScale = 1.0f;
|
||||||
|
int default_fs;
|
||||||
|
ULONG default_clutersize;
|
||||||
|
|
||||||
BOOL bBootable;
|
BOOL bBootable;
|
||||||
BOOL bQuickFormat;
|
BOOL bQuickFormat;
|
||||||
|
@ -87,7 +90,7 @@ struct {
|
||||||
LONGLONG DiskSize;
|
LONGLONG DiskSize;
|
||||||
DISK_GEOMETRY Geometry;
|
DISK_GEOMETRY Geometry;
|
||||||
DWORD FirstSector;
|
DWORD FirstSector;
|
||||||
enum _FSType FSType;
|
int FSType;
|
||||||
struct {
|
struct {
|
||||||
ULONG Allowed;
|
ULONG Allowed;
|
||||||
ULONG Default;
|
ULONG Default;
|
||||||
|
@ -123,13 +126,15 @@ void _uprintf(const char *format, ...)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void DumpBufferHex(unsigned char *buffer, size_t size)
|
void DumpBufferHex(void *buf, size_t size)
|
||||||
{
|
{
|
||||||
|
unsigned char* buffer = (unsigned char*)buf;
|
||||||
size_t i, j, k;
|
size_t i, j, k;
|
||||||
char line[80] = "";
|
char line[80] = "";
|
||||||
|
|
||||||
for (i=0; i<size; i+=16) {
|
for (i=0; i<size; i+=16) {
|
||||||
uprintf("%s\n", line);
|
if (i!=0)
|
||||||
|
uprintf("%s\n", line);
|
||||||
line[0] = 0;
|
line[0] = 0;
|
||||||
sprintf(&line[strlen(line)], " %08x ", (unsigned int)i);
|
sprintf(&line[strlen(line)], " %08x ", (unsigned int)i);
|
||||||
for(j=0,k=0; k<16; j++,k++) {
|
for(j=0,k=0; k<16; j++,k++) {
|
||||||
|
@ -319,16 +324,23 @@ static BOOL GetDriveLabel(DWORD DriveIndex, char* letter, char** label)
|
||||||
#define GB 1073741824LL
|
#define GB 1073741824LL
|
||||||
#define TB 1099511627776LL
|
#define TB 1099511627776LL
|
||||||
|
|
||||||
// Set cluster size values according to http://support.microsoft.com/kb/140365
|
/*
|
||||||
|
* Set cluster size values according to http://support.microsoft.com/kb/140365
|
||||||
|
* this call will return FALSE if we can't find a supportable FS for the drive
|
||||||
|
*/
|
||||||
static BOOL DefineClusterSizes(void)
|
static BOOL DefineClusterSizes(void)
|
||||||
{
|
{
|
||||||
LONGLONG i;
|
LONGLONG i;
|
||||||
// int j;
|
int fs;
|
||||||
|
BOOL r = FALSE;
|
||||||
|
char tmp[64] = "";
|
||||||
|
|
||||||
|
default_fs = FS_UNKNOWN;
|
||||||
memset(&SelectedDrive.ClusterSize, 0, sizeof(SelectedDrive.ClusterSize));
|
memset(&SelectedDrive.ClusterSize, 0, sizeof(SelectedDrive.ClusterSize));
|
||||||
if (SelectedDrive.DiskSize < 8*MB) {
|
if (SelectedDrive.DiskSize < 8*MB) {
|
||||||
// TODO: muck with FAT12 and Small FAT16 like Microsoft does
|
// TODO: muck with FAT12 and Small FAT16 like Microsoft does
|
||||||
uprintf("This application does not support volumes smaller than 8 MB yet\n");
|
uprintf("This application does not support volumes smaller than 8 MB yet\n");
|
||||||
return FALSE;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FAT 16
|
// FAT 16
|
||||||
|
@ -385,19 +397,29 @@ static BOOL DefineClusterSizes(void)
|
||||||
SelectedDrive.ClusterSize[FS_EXFAT].Default = 28*1024;
|
SelectedDrive.ClusterSize[FS_EXFAT].Default = 28*1024;
|
||||||
}
|
}
|
||||||
|
|
||||||
// for (j=0; j<FS_MAX; j++) {
|
out:
|
||||||
// uprintf("SelectedDrive.ClusterSize[%d].Allowed = %08X\n", j, SelectedDrive.ClusterSize[j].Allowed);
|
// Only add the filesystems we can service
|
||||||
// uprintf("SelectedDrive.ClusterSize[%d].Default = %08X\n", j, SelectedDrive.ClusterSize[j].Default);
|
for (fs=0; fs<FS_MAX; fs++) {
|
||||||
// }
|
if (SelectedDrive.ClusterSize[fs].Allowed != 0) {
|
||||||
|
safe_sprintf(tmp, sizeof(tmp), FileSystemLabel[fs]);
|
||||||
|
if (default_fs == FS_UNKNOWN) {
|
||||||
|
safe_strcat(tmp, sizeof(tmp), " (Default)");
|
||||||
|
default_fs = fs;
|
||||||
|
}
|
||||||
|
IGNORE_RETVAL(ComboBox_SetItemData(hFileSystem,
|
||||||
|
ComboBox_AddStringU(hFileSystem, tmp), fs));
|
||||||
|
r = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return TRUE;
|
return r;
|
||||||
}
|
}
|
||||||
#undef KB
|
#undef KB
|
||||||
#undef MB
|
#undef MB
|
||||||
#undef GB
|
#undef GB
|
||||||
#undef TB
|
#undef TB
|
||||||
|
|
||||||
static BOOL SetClusterSizes(enum _FSType FSType)
|
static BOOL SetClusterSizes(int FSType)
|
||||||
{
|
{
|
||||||
char szDefault[64];
|
char szDefault[64];
|
||||||
int i;
|
int i;
|
||||||
|
@ -405,6 +427,11 @@ static BOOL SetClusterSizes(enum _FSType FSType)
|
||||||
|
|
||||||
IGNORE_RETVAL(ComboBox_ResetContent(hClusterSize));
|
IGNORE_RETVAL(ComboBox_ResetContent(hClusterSize));
|
||||||
|
|
||||||
|
if ((FSType < 0) || (FSType >= FS_MAX)) {
|
||||||
|
uprintf("Invalid FS value passed to SetClusterSizes\n");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
if ( (SelectedDrive.ClusterSize[FSType].Allowed == 0)
|
if ( (SelectedDrive.ClusterSize[FSType].Allowed == 0)
|
||||||
|| (SelectedDrive.ClusterSize[FSType].Default == 0) ) {
|
|| (SelectedDrive.ClusterSize[FSType].Default == 0) ) {
|
||||||
uprintf("The drive is incompatible with FS type #%d\n", FSType);
|
uprintf("The drive is incompatible with FS type #%d\n", FSType);
|
||||||
|
@ -503,27 +530,44 @@ static BOOL GetDriveInfo(void)
|
||||||
|
|
||||||
safe_closehandle(hDrive);
|
safe_closehandle(hDrive);
|
||||||
|
|
||||||
SelectedDrive.FSType = FS_DEFAULT;
|
if (!DefineClusterSizes()) {
|
||||||
|
uprintf("no file system is selectable for this drive\n");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// re-select existing FS if it's one we know
|
||||||
if (GetVolumeInformationA(DrivePath, NULL, 0, NULL, NULL, NULL,
|
if (GetVolumeInformationA(DrivePath, NULL, 0, NULL, NULL, NULL,
|
||||||
fs_type, sizeof(fs_type))) {
|
fs_type, sizeof(fs_type))) {
|
||||||
// re-select existing FS if it's one we know
|
for (SelectedDrive.FSType=FS_MAX-1; SelectedDrive.FSType>=0; SelectedDrive.FSType--) {
|
||||||
for (SelectedDrive.FSType=FS_FAT16; SelectedDrive.FSType<FS_MAX; SelectedDrive.FSType++) {
|
if (safe_strcmp(fs_type, FileSystemLabel[SelectedDrive.FSType]) == 0) {
|
||||||
tmp[0] = 0;
|
|
||||||
IGNORE_RETVAL(ComboBox_GetLBTextU(hFileSystem, SelectedDrive.FSType, tmp));
|
|
||||||
if (safe_strcmp(fs_type, tmp) == 0) {
|
|
||||||
IGNORE_RETVAL(ComboBox_SetCurSel(hFileSystem, SelectedDrive.FSType));
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (SelectedDrive.FSType == FS_MAX)
|
} else {
|
||||||
SelectedDrive.FSType = FS_DEFAULT;
|
SelectedDrive.FSType = FS_UNKNOWN;
|
||||||
}
|
}
|
||||||
IGNORE_RETVAL(ComboBox_SetCurSel(hFileSystem, SelectedDrive.FSType));
|
|
||||||
DefineClusterSizes();
|
|
||||||
SetClusterSizes(SelectedDrive.FSType);
|
|
||||||
|
|
||||||
return TRUE;
|
for (i=0; i<ComboBox_GetCount(hFileSystem); i++) {
|
||||||
|
if (ComboBox_GetItemData(hFileSystem, i) == SelectedDrive.FSType) {
|
||||||
|
IGNORE_RETVAL(ComboBox_SetCurSel(hFileSystem, i));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (i == ComboBox_GetCount(hFileSystem)) {
|
||||||
|
// failed to reselect => pick default
|
||||||
|
for (i=0; i<ComboBox_GetCount(hFileSystem); i++) {
|
||||||
|
if (ComboBox_GetItemData(hFileSystem, i) == default_fs) {
|
||||||
|
IGNORE_RETVAL(ComboBox_SetCurSel(hFileSystem, i));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// At least one filesystem is go => enable formatting
|
||||||
|
EnableWindow(GetDlgItem(hMainDialog, IDC_START), TRUE);
|
||||||
|
|
||||||
|
return SetClusterSizes((int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -540,6 +584,7 @@ static BOOL PopulateProperties(int ComboIndex)
|
||||||
IGNORE_RETVAL(ComboBox_ResetContent(hCapacity));
|
IGNORE_RETVAL(ComboBox_ResetContent(hCapacity));
|
||||||
IGNORE_RETVAL(ComboBox_ResetContent(hFileSystem));
|
IGNORE_RETVAL(ComboBox_ResetContent(hFileSystem));
|
||||||
IGNORE_RETVAL(ComboBox_ResetContent(hClusterSize));
|
IGNORE_RETVAL(ComboBox_ResetContent(hClusterSize));
|
||||||
|
EnableWindow(GetDlgItem(hMainDialog, IDC_START), FALSE);
|
||||||
SetWindowTextA(hLabel, "");
|
SetWindowTextA(hLabel, "");
|
||||||
DestroyTooltip(hDeviceTooltip);
|
DestroyTooltip(hDeviceTooltip);
|
||||||
DestroyTooltip(hFSTooltip);
|
DestroyTooltip(hFSTooltip);
|
||||||
|
@ -551,12 +596,6 @@ static BOOL PopulateProperties(int ComboIndex)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Populate the FileSystem values
|
|
||||||
IGNORE_RETVAL(ComboBox_AddStringU(hFileSystem, "FAT"));
|
|
||||||
IGNORE_RETVAL(ComboBox_AddStringU(hFileSystem, "FAT32"));
|
|
||||||
IGNORE_RETVAL(ComboBox_AddStringU(hFileSystem, "NTFS"));
|
|
||||||
IGNORE_RETVAL(ComboBox_AddStringU(hFileSystem, "exFAT"));
|
|
||||||
|
|
||||||
SelectedDrive.DeviceNumber = (DWORD)ComboBox_GetItemData(hDeviceList, ComboIndex);
|
SelectedDrive.DeviceNumber = (DWORD)ComboBox_GetItemData(hDeviceList, ComboIndex);
|
||||||
if (!GetDriveInfo())
|
if (!GetDriveInfo())
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -645,7 +684,7 @@ static BOOL CreatePartition(HANDLE hDrive)
|
||||||
/*
|
/*
|
||||||
* FormatEx callback. Return FALSE to halt operations
|
* FormatEx callback. Return FALSE to halt operations
|
||||||
*/
|
*/
|
||||||
static BOOLEAN __stdcall FormatExCallback(FILE_SYSTEM_CALLBACK_COMMAND Command, DWORD Action, PVOID Data)
|
static BOOLEAN __stdcall FormatExCallback(FILE_SYSTEM_CALLBACK_COMMAND Command, DWORD Action, PVOID pData)
|
||||||
{
|
{
|
||||||
DWORD* percent;
|
DWORD* percent;
|
||||||
int task_number = 0;
|
int task_number = 0;
|
||||||
|
@ -655,7 +694,7 @@ static BOOLEAN __stdcall FormatExCallback(FILE_SYSTEM_CALLBACK_COMMAND Command,
|
||||||
|
|
||||||
switch(Command) {
|
switch(Command) {
|
||||||
case FCC_PROGRESS:
|
case FCC_PROGRESS:
|
||||||
percent = (DWORD*)Data;
|
percent = (DWORD*)pData;
|
||||||
PostMessage(hMainDialog, UM_FORMAT_PROGRESS, (WPARAM)*percent, (LPARAM)0);
|
PostMessage(hMainDialog, UM_FORMAT_PROGRESS, (WPARAM)*percent, (LPARAM)0);
|
||||||
uprintf("%d percent completed.\n", *percent);
|
uprintf("%d percent completed.\n", *percent);
|
||||||
break;
|
break;
|
||||||
|
@ -663,11 +702,17 @@ static BOOLEAN __stdcall FormatExCallback(FILE_SYSTEM_CALLBACK_COMMAND Command,
|
||||||
uprintf("Format task %d/? completed.\n", ++task_number);
|
uprintf("Format task %d/? completed.\n", ++task_number);
|
||||||
break;
|
break;
|
||||||
case FCC_DONE:
|
case FCC_DONE:
|
||||||
if(*(BOOLEAN*)Data == FALSE) {
|
if(*(BOOLEAN*)pData == FALSE) {
|
||||||
uprintf("Error while formatting.\n");
|
uprintf("Error while formatting.\n");
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_GEN_FAILURE;
|
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_GEN_FAILURE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case FCC_DONE_WITH_STRUCTURE: // We get this message when formatting Small FAT16
|
||||||
|
// pData Seems to be a struct with at least one (32 BIT!!!) string pointer to the size in MB
|
||||||
|
uprintf("Done with that sort of things: Action=%d pData=%0p\n", Action, pData);
|
||||||
|
DumpBufferHex(pData, 8);
|
||||||
|
uprintf("Volume size: %s MB\n", (char*)(LONG_PTR)(*(ULONG32*)pData));
|
||||||
|
break;
|
||||||
case FCC_INCOMPATIBLE_FILE_SYSTEM:
|
case FCC_INCOMPATIBLE_FILE_SYSTEM:
|
||||||
uprintf("Incompatible File System\n");
|
uprintf("Incompatible File System\n");
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_INCOMPATIBLE_FS;
|
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_INCOMPATIBLE_FS;
|
||||||
|
@ -693,7 +738,7 @@ static BOOLEAN __stdcall FormatExCallback(FILE_SYSTEM_CALLBACK_COMMAND Command,
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_LABEL_TOO_LONG;
|
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_LABEL_TOO_LONG;
|
||||||
break;
|
break;
|
||||||
case FCC_OUTPUT:
|
case FCC_OUTPUT:
|
||||||
uprintf("%s\n", ((PTEXTOUTPUT)Data)->Output);
|
uprintf("%s\n", ((PTEXTOUTPUT)pData)->Output);
|
||||||
break;
|
break;
|
||||||
case FCC_CLUSTER_SIZE_TOO_BIG:
|
case FCC_CLUSTER_SIZE_TOO_BIG:
|
||||||
case FCC_CLUSTER_SIZE_TOO_SMALL:
|
case FCC_CLUSTER_SIZE_TOO_SMALL:
|
||||||
|
@ -726,6 +771,7 @@ static BOOL FormatDrive(char DriveLetter)
|
||||||
WCHAR wDriveRoot[] = L"?:\\";
|
WCHAR wDriveRoot[] = L"?:\\";
|
||||||
WCHAR wFSType[32];
|
WCHAR wFSType[32];
|
||||||
WCHAR wLabel[128];
|
WCHAR wLabel[128];
|
||||||
|
size_t i;
|
||||||
|
|
||||||
wDriveRoot[0] = (WCHAR)DriveLetter;
|
wDriveRoot[0] = (WCHAR)DriveLetter;
|
||||||
PrintStatus("Formatting...");
|
PrintStatus("Formatting...");
|
||||||
|
@ -733,6 +779,14 @@ static BOOL FormatDrive(char DriveLetter)
|
||||||
|
|
||||||
// TODO: properly set MediaType
|
// TODO: properly set MediaType
|
||||||
GetWindowTextW(hFileSystem, wFSType, ARRAYSIZE(wFSType));
|
GetWindowTextW(hFileSystem, wFSType, ARRAYSIZE(wFSType));
|
||||||
|
// We may have a " (Default)" trail
|
||||||
|
for (i=0; i<wcslen(wFSType); i++) {
|
||||||
|
if (wFSType[i] == ' ') {
|
||||||
|
uprintf("removed %d\n", i);
|
||||||
|
wFSType[i] = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
GetWindowTextW(hLabel, wLabel, ARRAYSIZE(wLabel));
|
GetWindowTextW(hLabel, wLabel, ARRAYSIZE(wLabel));
|
||||||
uprintf("Using cluster size: %d bytes\n", ComboBox_GetItemData(hClusterSize, ComboBox_GetCurSel(hClusterSize)));
|
uprintf("Using cluster size: %d bytes\n", ComboBox_GetItemData(hClusterSize, ComboBox_GetCurSel(hClusterSize)));
|
||||||
pfFormatEx(wDriveRoot, RemovableMedia, wFSType, wLabel,
|
pfFormatEx(wDriveRoot, RemovableMedia, wFSType, wLabel,
|
||||||
|
@ -1251,7 +1305,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
case IDC_FILESYSTEM:
|
case IDC_FILESYSTEM:
|
||||||
switch (HIWORD(wParam)) {
|
switch (HIWORD(wParam)) {
|
||||||
case CBN_SELCHANGE:
|
case CBN_SELCHANGE:
|
||||||
SetClusterSizes((enum _FSType)ComboBox_GetCurSel(hFileSystem));
|
SetClusterSizes((int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem)));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
6
rufus.h
6
rufus.h
|
@ -119,7 +119,9 @@ enum MessageType {
|
||||||
/* File system indexes in our FS combobox */
|
/* File system indexes in our FS combobox */
|
||||||
// TODO: FormatEx should support "NTFS", "FAT", "FAT32", "UDF", and "EXFAT" as per
|
// TODO: FormatEx should support "NTFS", "FAT", "FAT32", "UDF", and "EXFAT" as per
|
||||||
// http://msdn.microsoft.com/en-us/library/windows/desktop/aa819439.aspx
|
// http://msdn.microsoft.com/en-us/library/windows/desktop/aa819439.aspx
|
||||||
enum _FSType {
|
|
||||||
|
enum {
|
||||||
|
FS_UNKNOWN = -1,
|
||||||
FS_FAT16 = 0,
|
FS_FAT16 = 0,
|
||||||
FS_FAT32,
|
FS_FAT32,
|
||||||
FS_NTFS,
|
FS_NTFS,
|
||||||
|
@ -192,7 +194,7 @@ typedef struct {
|
||||||
typedef BOOLEAN (__stdcall *FILE_SYSTEM_CALLBACK)(
|
typedef BOOLEAN (__stdcall *FILE_SYSTEM_CALLBACK)(
|
||||||
FILE_SYSTEM_CALLBACK_COMMAND Command,
|
FILE_SYSTEM_CALLBACK_COMMAND Command,
|
||||||
ULONG Action,
|
ULONG Action,
|
||||||
PVOID Data
|
PVOID pData
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Parameter names aligned to
|
/* Parameter names aligned to
|
||||||
|
|
12
rufus.rc
12
rufus.rc
|
@ -63,7 +63,7 @@ BEGIN
|
||||||
DEFPUSHBUTTON "OK",IDOK,231,175,50,14,WS_GROUP
|
DEFPUSHBUTTON "OK",IDOK,231,175,50,14,WS_GROUP
|
||||||
CONTROL "<a href=""https://github.com/pbatard/rufus/wiki/Rufus"">https://github.com/pbatard/rufus</a>",IDC_ABOUT_RUFUS_URL,
|
CONTROL "<a href=""https://github.com/pbatard/rufus/wiki/Rufus"">https://github.com/pbatard/rufus</a>",IDC_ABOUT_RUFUS_URL,
|
||||||
"SysLink",WS_TABSTOP,46,47,114,9
|
"SysLink",WS_TABSTOP,46,47,114,9
|
||||||
LTEXT "Version 1.0.0 (Build 54)",IDC_STATIC,46,19,78,8
|
LTEXT "Version 1.0.0 (Build 55)",IDC_STATIC,46,19,78,8
|
||||||
PUSHBUTTON "License...",IDC_ABOUT_LICENSE,46,175,50,14,WS_GROUP
|
PUSHBUTTON "License...",IDC_ABOUT_LICENSE,46,175,50,14,WS_GROUP
|
||||||
EDITTEXT IDC_ABOUT_COPYRIGHTS,46,107,235,63,ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
EDITTEXT IDC_ABOUT_COPYRIGHTS,46,107,235,63,ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||||
LTEXT "Report bugs or request enhancements at:",IDC_STATIC,46,66,187,8
|
LTEXT "Report bugs or request enhancements at:",IDC_STATIC,46,66,187,8
|
||||||
|
@ -162,8 +162,8 @@ END
|
||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 1,0,0,54
|
FILEVERSION 1,0,0,55
|
||||||
PRODUCTVERSION 1,0,0,54
|
PRODUCTVERSION 1,0,0,55
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
|
@ -180,13 +180,13 @@ BEGIN
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "akeo.ie"
|
VALUE "CompanyName", "akeo.ie"
|
||||||
VALUE "FileDescription", "Rufus"
|
VALUE "FileDescription", "Rufus"
|
||||||
VALUE "FileVersion", "1.0.0.54"
|
VALUE "FileVersion", "1.0.0.55"
|
||||||
VALUE "InternalName", "Rufus"
|
VALUE "InternalName", "Rufus"
|
||||||
VALUE "LegalCopyright", "© 2011 Pete Batard (GPL v3)"
|
VALUE "LegalCopyright", "© 2011 Pete Batard (GPL v3)"
|
||||||
VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html"
|
VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html"
|
||||||
VALUE "OriginalFilename", "rufus.exe"
|
VALUE "OriginalFilename", "rufus.exe"
|
||||||
VALUE "ProductName", "Rufus"
|
VALUE "ProductName", "Rufus"
|
||||||
VALUE "ProductVersion", "1.0.0.54"
|
VALUE "ProductVersion", "1.0.0.55"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
@ -212,7 +212,7 @@ IDI_ICON ICON "rufus.ico"
|
||||||
|
|
||||||
STRINGTABLE
|
STRINGTABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
IDS_VERSION "Rufus v1.0.0.54"
|
IDS_VERSION "Rufus v1.0.0.55"
|
||||||
END
|
END
|
||||||
|
|
||||||
#endif // English resources
|
#endif // English resources
|
||||||
|
|
Loading…
Reference in a new issue