mirror of
				https://github.com/pbatard/rufus.git
				synced 2024-08-14 23:57:05 +00:00 
			
		
		
		
	[misc] introduce hImageOption and ComboBox_GetCurItemData() to simplify code
* Also add retry to ms-sys' write_sectors()
This commit is contained in:
		
							parent
							
								
									09d2f2f0ab
								
							
						
					
					
						commit
						4617f91e3b
					
				
					 9 changed files with 60 additions and 60 deletions
				
			
		|  | @ -414,7 +414,7 @@ BOOL ExtractFreeDOS(const char* path) | ||||||
| 
 | 
 | ||||||
| BOOL ExtractDOS(const char* path) | BOOL ExtractDOS(const char* path) | ||||||
| { | { | ||||||
| 	switch(ComboBox_GetItemData(hBootType, ComboBox_GetCurSel(hBootType))) { | 	switch(ComboBox_GetCurItemData(hBootType)) { | ||||||
| 	case BT_MSDOS: | 	case BT_MSDOS: | ||||||
| 		return ExtractMSDOS(path); | 		return ExtractMSDOS(path); | ||||||
| 	case BT_FREEDOS: | 	case BT_FREEDOS: | ||||||
|  |  | ||||||
|  | @ -1256,7 +1256,6 @@ BOOL ToggleEsp(DWORD DriveIndex) | ||||||
| 			if (guid != NULL) { | 			if (guid != NULL) { | ||||||
| 				for (i = 0; i < DriveLayout->PartitionCount; i++) { | 				for (i = 0; i < DriveLayout->PartitionCount; i++) { | ||||||
| 					if (CompareGUID(guid, &DriveLayout->PartitionEntry[i].Gpt.PartitionId)) { | 					if (CompareGUID(guid, &DriveLayout->PartitionEntry[i].Gpt.PartitionId)) { | ||||||
| 						uprintf("BD name: '%S'", DriveLayout->PartitionEntry[i].Gpt.Name); |  | ||||||
| 						found = TRUE; | 						found = TRUE; | ||||||
| 						break; | 						break; | ||||||
| 					} | 					} | ||||||
|  | @ -1724,7 +1723,7 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m | ||||||
| 		// CHS sizes that IBM imparted upon us. Long story short, we now align to a
 | 		// CHS sizes that IBM imparted upon us. Long story short, we now align to a
 | ||||||
| 		// cylinder size that is itself aligned to the cluster size.
 | 		// cylinder size that is itself aligned to the cluster size.
 | ||||||
| 		// If this actually breaks old systems, please send your complaints to IBM.
 | 		// If this actually breaks old systems, please send your complaints to IBM.
 | ||||||
| 		LONGLONG ClusterSize = (LONGLONG)ComboBox_GetItemData(hClusterSize, ComboBox_GetCurSel(hClusterSize)); | 		LONGLONG ClusterSize = (LONGLONG)ComboBox_GetCurItemData(hClusterSize); | ||||||
| 		if (ClusterSize == 0) | 		if (ClusterSize == 0) | ||||||
| 			ClusterSize = 0x200; | 			ClusterSize = 0x200; | ||||||
| 		DriveLayoutEx.PartitionEntry[pn].StartingOffset.QuadPart = | 		DriveLayoutEx.PartitionEntry[pn].StartingOffset.QuadPart = | ||||||
|  |  | ||||||
							
								
								
									
										10
									
								
								src/format.c
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								src/format.c
									
										
									
									
									
								
							|  | @ -802,7 +802,7 @@ static BOOL WriteMBR(HANDLE hPhysicalDrive) | ||||||
| 		goto out; | 		goto out; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	switch (ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem))) { | 	switch (ComboBox_GetCurItemData(hFileSystem)) { | ||||||
| 	case FS_FAT16: | 	case FS_FAT16: | ||||||
| 		if (buffer[0x1c2] == 0x0e) { | 		if (buffer[0x1c2] == 0x0e) { | ||||||
| 			uprintf("Partition is already FAT16 LBA...\n"); | 			uprintf("Partition is already FAT16 LBA...\n"); | ||||||
|  | @ -823,7 +823,7 @@ static BOOL WriteMBR(HANDLE hPhysicalDrive) | ||||||
| 	if ((boot_type != BT_NON_BOOTABLE) && (target_type == TT_BIOS)) { | 	if ((boot_type != BT_NON_BOOTABLE) && (target_type == TT_BIOS)) { | ||||||
| 		// Set first partition bootable - masquerade as per the DiskID selected
 | 		// Set first partition bootable - masquerade as per the DiskID selected
 | ||||||
| 		buffer[0x1be] = IsChecked(IDC_RUFUS_MBR) ? | 		buffer[0x1be] = IsChecked(IDC_RUFUS_MBR) ? | ||||||
| 			(BYTE)ComboBox_GetItemData(hDiskID, ComboBox_GetCurSel(hDiskID)):0x80; | 			(BYTE)ComboBox_GetCurItemData(hDiskID):0x80; | ||||||
| 		uprintf("Set bootable USB partition as 0x%02X\n", buffer[0x1be]); | 		uprintf("Set bootable USB partition as 0x%02X\n", buffer[0x1be]); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -1231,7 +1231,7 @@ int SetWinToGoIndex(void) | ||||||
| 	wintogo_index = -1; | 	wintogo_index = -1; | ||||||
| 	wininst_index = 0; | 	wininst_index = 0; | ||||||
| 	if ((nWindowsVersion < WINDOWS_8) || ((WimExtractCheck() & 4) == 0) || | 	if ((nWindowsVersion < WINDOWS_8) || ((WimExtractCheck() & 4) == 0) || | ||||||
| 		(ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem)) != FS_NTFS)) { | 		(ComboBox_GetCurItemData(hFileSystem) != FS_NTFS)) { | ||||||
| 		return -1; | 		return -1; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -1721,7 +1721,7 @@ DWORD WINAPI FormatThread(void* param) | ||||||
| 
 | 
 | ||||||
| 	use_large_fat32 = (fs_type == FS_FAT32) && ((SelectedDrive.DiskSize > LARGE_FAT32_SIZE) || (force_large_fat32)); | 	use_large_fat32 = (fs_type == FS_FAT32) && ((SelectedDrive.DiskSize > LARGE_FAT32_SIZE) || (force_large_fat32)); | ||||||
| 	windows_to_go = (image_options & IMOP_WINTOGO) && (boot_type == BT_IMAGE) && HAS_WINTOGO(img_report) && | 	windows_to_go = (image_options & IMOP_WINTOGO) && (boot_type == BT_IMAGE) && HAS_WINTOGO(img_report) && | ||||||
| 		(ComboBox_GetCurSel(GetDlgItem(hMainDialog, IDC_IMAGE_OPTION)) == 1); | 		ComboBox_GetCurItemData(hImageOption); | ||||||
| 	large_drive = (SelectedDrive.DiskSize > (1*TB)); | 	large_drive = (SelectedDrive.DiskSize > (1*TB)); | ||||||
| 	if (large_drive) | 	if (large_drive) | ||||||
| 		uprintf("Notice: Large drive detected (may produce short writes)"); | 		uprintf("Notice: Large drive detected (may produce short writes)"); | ||||||
|  | @ -2005,7 +2005,7 @@ DWORD WINAPI FormatThread(void* param) | ||||||
| 	GetWindowTextU(hLabel, label, sizeof(label)); | 	GetWindowTextU(hLabel, label, sizeof(label)); | ||||||
| 	if (fs_type < FS_EXT2) | 	if (fs_type < FS_EXT2) | ||||||
| 		ToValidLabel(label, (fs_type == FS_FAT16) || (fs_type == FS_FAT32) || (fs_type == FS_EXFAT)); | 		ToValidLabel(label, (fs_type == FS_FAT16) || (fs_type == FS_FAT32) || (fs_type == FS_EXFAT)); | ||||||
| 	ClusterSize = (DWORD)ComboBox_GetItemData(hClusterSize, ComboBox_GetCurSel(hClusterSize)); | 	ClusterSize = (DWORD)ComboBox_GetCurItemData(hClusterSize); | ||||||
| 	if ((ClusterSize < 0x200) || (write_as_esp)) | 	if ((ClusterSize < 0x200) || (write_as_esp)) | ||||||
| 		ClusterSize = 0;	// 0 = default cluster size
 | 		ClusterSize = 0;	// 0 = default cluster size
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -48,7 +48,7 @@ int64_t write_sectors(HANDLE hDrive, uint64_t SectorSize, | ||||||
|    } |    } | ||||||
| 
 | 
 | ||||||
|    LastWriteError = 0; |    LastWriteError = 0; | ||||||
|    if(!WriteFile(hDrive, pBuf, Size, &Size, NULL)) |    if(!WriteFileWithRetry(hDrive, pBuf, Size, &Size, WRITE_RETRIES)) | ||||||
|    { |    { | ||||||
|       LastWriteError = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|GetLastError(); |       LastWriteError = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|GetLastError(); | ||||||
|       uprintf("write_sectors: Write error %s\n", WindowsErrorString()); |       uprintf("write_sectors: Write error %s\n", WindowsErrorString()); | ||||||
|  |  | ||||||
							
								
								
									
										75
									
								
								src/rufus.c
									
										
									
									
									
								
							
							
						
						
									
										75
									
								
								src/rufus.c
									
										
									
									
									
								
							|  | @ -109,7 +109,7 @@ loc_cmd* selected_locale = NULL; | ||||||
| WORD selected_langid = MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT); | WORD selected_langid = MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT); | ||||||
| DWORD MainThreadId; | DWORD MainThreadId; | ||||||
| HWND hDeviceList, hPartitionScheme, hTargetSystem, hFileSystem, hClusterSize, hLabel, hBootType, hNBPasses, hLog = NULL; | HWND hDeviceList, hPartitionScheme, hTargetSystem, hFileSystem, hClusterSize, hLabel, hBootType, hNBPasses, hLog = NULL; | ||||||
| HWND hLogDialog = NULL, hProgress = NULL, hDiskID; | HWND hImageOption, hLogDialog = NULL, hProgress = NULL, hDiskID; | ||||||
| HANDLE dialog_handle = NULL; | HANDLE dialog_handle = NULL; | ||||||
| BOOL is_x86_32, use_own_c32[NB_OLD_C32] = { FALSE, FALSE }, mbr_selected_by_user = FALSE; | BOOL is_x86_32, use_own_c32[NB_OLD_C32] = { FALSE, FALSE }, mbr_selected_by_user = FALSE; | ||||||
| BOOL op_in_progress = TRUE, right_to_left_mode = FALSE, has_uefi_csm = FALSE, its_a_me_mario = FALSE; | BOOL op_in_progress = TRUE, right_to_left_mode = FALSE, has_uefi_csm = FALSE, its_a_me_mario = FALSE; | ||||||
|  | @ -174,7 +174,7 @@ static void SetAllowedFileSystems(void) | ||||||
| 		if ((image_path != NULL) && (img_report.has_4GB_file)) | 		if ((image_path != NULL) && (img_report.has_4GB_file)) | ||||||
| 			break; | 			break; | ||||||
| 		if (!HAS_WINDOWS(img_report) || (target_type != TT_BIOS) || allow_dual_uefi_bios) { | 		if (!HAS_WINDOWS(img_report) || (target_type != TT_BIOS) || allow_dual_uefi_bios) { | ||||||
| 			if (!HAS_WINTOGO(img_report) || (ComboBox_GetCurSel(GetDlgItem(hMainDialog, IDC_IMAGE_OPTION)) != 1)) { | 			if (!HAS_WINTOGO(img_report) || ComboBox_GetCurItemData(hImageOption)) { | ||||||
| 				allowed_filesystem[FS_FAT16] = TRUE; | 				allowed_filesystem[FS_FAT16] = TRUE; | ||||||
| 				allowed_filesystem[FS_FAT32] = TRUE; | 				allowed_filesystem[FS_FAT32] = TRUE; | ||||||
| 			} | 			} | ||||||
|  | @ -247,9 +247,9 @@ static void SetPartitionSchemeAndTargetSystem(BOOL only_target) | ||||||
| 		IGNORE_RETVAL(ComboBox_ResetContent(hPartitionScheme)); | 		IGNORE_RETVAL(ComboBox_ResetContent(hPartitionScheme)); | ||||||
| 	IGNORE_RETVAL(ComboBox_ResetContent(hTargetSystem)); | 	IGNORE_RETVAL(ComboBox_ResetContent(hTargetSystem)); | ||||||
| 
 | 
 | ||||||
| 	boot_type = (int)ComboBox_GetItemData(hBootType, ComboBox_GetCurSel(hBootType)); | 	boot_type = (int)ComboBox_GetCurItemData(hBootType); | ||||||
| 	is_windows_to_go_selected = (boot_type == BT_IMAGE) && (image_path != NULL) && HAS_WINTOGO(img_report) && | 	is_windows_to_go_selected = (boot_type == BT_IMAGE) && (image_path != NULL) && HAS_WINTOGO(img_report) && | ||||||
| 		(ComboBox_GetCurSel(GetDlgItem(hMainDialog, IDC_IMAGE_OPTION)) == 1); | 		ComboBox_GetCurItemData(hImageOption); | ||||||
| 	// If no device is selected, don't populate anything
 | 	// If no device is selected, don't populate anything
 | ||||||
| 	if (ComboBox_GetCurSel(hDeviceList) < 0) | 	if (ComboBox_GetCurSel(hDeviceList) < 0) | ||||||
| 		return; | 		return; | ||||||
|  | @ -323,7 +323,7 @@ static void SetPartitionSchemeAndTargetSystem(BOOL only_target) | ||||||
| 				preferred_pt = (selected_pt >= 0) ? selected_pt : PARTITION_STYLE_MBR; | 				preferred_pt = (selected_pt >= 0) ? selected_pt : PARTITION_STYLE_MBR; | ||||||
| 		} | 		} | ||||||
| 		SetComboEntry(hPartitionScheme, preferred_pt); | 		SetComboEntry(hPartitionScheme, preferred_pt); | ||||||
| 		partition_type = (int)ComboBox_GetItemData(hPartitionScheme, ComboBox_GetCurSel(hPartitionScheme)); | 		partition_type = (int)ComboBox_GetCurItemData(hPartitionScheme); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	has_uefi_csm = FALSE; | 	has_uefi_csm = FALSE; | ||||||
|  | @ -339,7 +339,7 @@ static void SetPartitionSchemeAndTargetSystem(BOOL only_target) | ||||||
| 		IGNORE_RETVAL(ComboBox_SetItemData(hTargetSystem, | 		IGNORE_RETVAL(ComboBox_SetItemData(hTargetSystem, | ||||||
| 			ComboBox_AddStringU(hTargetSystem, lmprintf(MSG_033)), TT_BIOS)); | 			ComboBox_AddStringU(hTargetSystem, lmprintf(MSG_033)), TT_BIOS)); | ||||||
| 	IGNORE_RETVAL(ComboBox_SetCurSel(hTargetSystem, 0)); | 	IGNORE_RETVAL(ComboBox_SetCurSel(hTargetSystem, 0)); | ||||||
| 	target_type = (int)ComboBox_GetItemData(hTargetSystem, ComboBox_GetCurSel(hTargetSystem)); | 	target_type = (int)ComboBox_GetCurItemData(hTargetSystem); | ||||||
| 	// Can't update a tooltip from a thread, so we send a message instead
 | 	// Can't update a tooltip from a thread, so we send a message instead
 | ||||||
| 	SendMessage(hMainDialog, UM_UPDATE_CSM_TOOLTIP, 0, 0); | 	SendMessage(hMainDialog, UM_UPDATE_CSM_TOOLTIP, 0, 0); | ||||||
| } | } | ||||||
|  | @ -566,15 +566,15 @@ static BOOL SetFileSystemAndClusterSize(char* fs_name) | ||||||
| 		SetComboEntry(hFileSystem, default_fs); | 		SetComboEntry(hFileSystem, default_fs); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return SetClusterSizes((int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem))); | 	return SetClusterSizes((int)ComboBox_GetCurItemData(hFileSystem)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void SetFSFromISO(void) | static void SetFSFromISO(void) | ||||||
| { | { | ||||||
| 	int i, fs_tmp, preferred_fs = FS_UNKNOWN; | 	int i, fs_tmp, preferred_fs = FS_UNKNOWN; | ||||||
| 	uint32_t fs_mask = FS_FAT32 | FS_NTFS; | 	uint32_t fs_mask = FS_FAT32 | FS_NTFS; | ||||||
| 	BOOL windows_to_go = (image_options & IMOP_WINTOGO) && (boot_type == BT_IMAGE) && HAS_WINTOGO(img_report) && | 	BOOL windows_to_go = (image_options & IMOP_WINTOGO) && (boot_type == BT_IMAGE) && | ||||||
| 		(ComboBox_GetCurSel(GetDlgItem(hMainDialog, IDC_IMAGE_OPTION)) == 1); | 		HAS_WINTOGO(img_report) && ComboBox_GetCurItemData(hImageOption); | ||||||
| 
 | 
 | ||||||
| 	if (image_path == NULL) | 	if (image_path == NULL) | ||||||
| 		return; | 		return; | ||||||
|  | @ -633,7 +633,7 @@ static void SetMBRProps(void) | ||||||
| 	BOOL needs_masquerading = HAS_WINPE(img_report) && (!img_report.uses_minint); | 	BOOL needs_masquerading = HAS_WINPE(img_report) && (!img_report.uses_minint); | ||||||
| 
 | 
 | ||||||
| 	if ((!mbr_selected_by_user) && ((image_path == NULL) || (boot_type != BT_IMAGE) || (fs_type != FS_NTFS) || HAS_GRUB(img_report) || | 	if ((!mbr_selected_by_user) && ((image_path == NULL) || (boot_type != BT_IMAGE) || (fs_type != FS_NTFS) || HAS_GRUB(img_report) || | ||||||
| 		((image_options & IMOP_WINTOGO) && (ComboBox_GetCurSel(GetDlgItem(hMainDialog, IDC_IMAGE_OPTION)) == 1)) )) { | 		((image_options & IMOP_WINTOGO) && ComboBox_GetCurItemData(hImageOption)) )) { | ||||||
| 		CheckDlgButton(hMainDialog, IDC_RUFUS_MBR, BST_UNCHECKED); | 		CheckDlgButton(hMainDialog, IDC_RUFUS_MBR, BST_UNCHECKED); | ||||||
| 		IGNORE_RETVAL(ComboBox_SetCurSel(hDiskID, 0)); | 		IGNORE_RETVAL(ComboBox_SetCurSel(hDiskID, 0)); | ||||||
| 		return; | 		return; | ||||||
|  | @ -793,7 +793,7 @@ static void EnableBootOptions(BOOL enable, BOOL remove_checkboxes) | ||||||
| 	if ((boot_type == BT_IMAGE) && (img_report.is_bootable_img) && (!img_report.is_iso)) | 	if ((boot_type == BT_IMAGE) && (img_report.is_bootable_img) && (!img_report.is_iso)) | ||||||
| 		actual_enable = FALSE; | 		actual_enable = FALSE; | ||||||
| 
 | 
 | ||||||
| 	EnableWindow(GetDlgItem(hMainDialog, IDC_IMAGE_OPTION), actual_enable); | 	EnableWindow(hImageOption, actual_enable); | ||||||
| 	EnableWindow(GetDlgItem(hMainDialog, IDC_PERSISTENCE_SLIDER), actual_enable); | 	EnableWindow(GetDlgItem(hMainDialog, IDC_PERSISTENCE_SLIDER), actual_enable); | ||||||
| 	// Make sure we set the range if we have persistence
 | 	// Make sure we set the range if we have persistence
 | ||||||
| 	if ((image_path != NULL) && HAS_PERSISTENCE(img_report)) | 	if ((image_path != NULL) && HAS_PERSISTENCE(img_report)) | ||||||
|  | @ -840,7 +840,7 @@ static void EnableControls(BOOL enable, BOOL remove_checkboxes) | ||||||
| 
 | 
 | ||||||
| 	// Only enable the following controls if a device is active
 | 	// Only enable the following controls if a device is active
 | ||||||
| 	enable = (ComboBox_GetCurSel(hDeviceList) < 0) ? FALSE : enable; | 	enable = (ComboBox_GetCurSel(hDeviceList) < 0) ? FALSE : enable; | ||||||
| 	EnableWindow(GetDlgItem(hMainDialog, IDC_IMAGE_OPTION), enable); | 	EnableWindow(hImageOption, enable); | ||||||
| 	EnableWindow(hSaveToolbar, enable); | 	EnableWindow(hSaveToolbar, enable); | ||||||
| 
 | 
 | ||||||
| 	// Enable or disable the Start button and the other boot options
 | 	// Enable or disable the Start button and the other boot options
 | ||||||
|  | @ -1097,7 +1097,7 @@ static void UpdateImage(void) | ||||||
| 		(image_path == NULL) ? lmprintf(MSG_281, lmprintf(MSG_280)) : short_image_path); | 		(image_path == NULL) ? lmprintf(MSG_281, lmprintf(MSG_280)) : short_image_path); | ||||||
| 	ComboBox_SetItemData(hBootType, image_index, BT_IMAGE); | 	ComboBox_SetItemData(hBootType, image_index, BT_IMAGE); | ||||||
| 	IGNORE_RETVAL(ComboBox_SetCurSel(hBootType, image_index)); | 	IGNORE_RETVAL(ComboBox_SetCurSel(hBootType, image_index)); | ||||||
| 	boot_type = (int)ComboBox_GetItemData(hBootType, ComboBox_GetCurSel(hBootType)); | 	boot_type = (int)ComboBox_GetCurItemData(hBootType); | ||||||
| 	SetBootTypeDropdownWidth(); | 	SetBootTypeDropdownWidth(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -1236,7 +1236,7 @@ static DWORD WINAPI BootCheckThread(LPVOID param) | ||||||
| 			ret = BOOTCHECK_PROCEED; | 			ret = BOOTCHECK_PROCEED; | ||||||
| 			goto out; | 			goto out; | ||||||
| 		} | 		} | ||||||
| 		if ((image_options & IMOP_WINTOGO) && (ComboBox_GetCurSel(GetDlgItem(hMainDialog, IDC_IMAGE_OPTION)) == 1)) { | 		if ((image_options & IMOP_WINTOGO) && ComboBox_GetCurItemData(hImageOption)) { | ||||||
| 			if (fs_type != FS_NTFS) { | 			if (fs_type != FS_NTFS) { | ||||||
| 				// Windows To Go only works for NTFS
 | 				// Windows To Go only works for NTFS
 | ||||||
| 				MessageBoxExU(hMainDialog, lmprintf(MSG_097, "Windows To Go"), lmprintf(MSG_092), MB_OK|MB_ICONERROR|MB_IS_RTL, selected_langid); | 				MessageBoxExU(hMainDialog, lmprintf(MSG_097, "Windows To Go"), lmprintf(MSG_092), MB_OK|MB_ICONERROR|MB_IS_RTL, selected_langid); | ||||||
|  | @ -1495,7 +1495,7 @@ static DWORD WINAPI BootCheckThread(LPVOID param) | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	} else if (boot_type == BT_MSDOS) { | 	} else if (boot_type == BT_MSDOS) { | ||||||
| 		if ((size_check) && (ComboBox_GetItemData(hClusterSize, ComboBox_GetCurSel(hClusterSize)) >= 65536)) { | 		if ((size_check) && (ComboBox_GetCurItemData(hClusterSize) >= 65536)) { | ||||||
| 			// MS-DOS cannot boot from a drive using a 64 kilobytes Cluster size
 | 			// MS-DOS cannot boot from a drive using a 64 kilobytes Cluster size
 | ||||||
| 			MessageBoxExU(hMainDialog, lmprintf(MSG_110), lmprintf(MSG_111), MB_OK|MB_ICONERROR|MB_IS_RTL, selected_langid); | 			MessageBoxExU(hMainDialog, lmprintf(MSG_110), lmprintf(MSG_111), MB_OK|MB_ICONERROR|MB_IS_RTL, selected_langid); | ||||||
| 			goto out; | 			goto out; | ||||||
|  | @ -1530,7 +1530,7 @@ static DWORD WINAPI BootCheckThread(LPVOID param) | ||||||
| 
 | 
 | ||||||
| uefi_target: | uefi_target: | ||||||
| 	if (boot_type == BT_UEFI_NTFS) { | 	if (boot_type == BT_UEFI_NTFS) { | ||||||
| 		fs_type = (int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem)); | 		fs_type = (int)ComboBox_GetCurItemData(hFileSystem); | ||||||
| 		if (fs_type != FS_NTFS && fs_type != FS_EXFAT) { | 		if (fs_type != FS_NTFS && fs_type != FS_EXFAT) { | ||||||
| 			MessageBoxExU(hMainDialog, lmprintf(MSG_097, "UEFI:NTFS"), lmprintf(MSG_092), MB_OK|MB_ICONERROR|MB_IS_RTL, selected_langid); | 			MessageBoxExU(hMainDialog, lmprintf(MSG_097, "UEFI:NTFS"), lmprintf(MSG_092), MB_OK|MB_ICONERROR|MB_IS_RTL, selected_langid); | ||||||
| 			goto out; | 			goto out; | ||||||
|  | @ -1560,7 +1560,6 @@ static __inline const char* IsAlphaOrBeta(void) | ||||||
| static void InitDialog(HWND hDlg) | static void InitDialog(HWND hDlg) | ||||||
| { | { | ||||||
| 	DWORD len; | 	DWORD len; | ||||||
| 	HWND hCtrl; |  | ||||||
| 	HDC hDC; | 	HDC hDC; | ||||||
| 	int i, lfHeight; | 	int i, lfHeight; | ||||||
| 	char tmp[128], *token, *buf, *ext, *msg; | 	char tmp[128], *token, *buf, *ext, *msg; | ||||||
|  | @ -1585,6 +1584,7 @@ static void InitDialog(HWND hDlg) | ||||||
| 	hLabel = GetDlgItem(hDlg, IDC_LABEL); | 	hLabel = GetDlgItem(hDlg, IDC_LABEL); | ||||||
| 	hProgress = GetDlgItem(hDlg, IDC_PROGRESS); | 	hProgress = GetDlgItem(hDlg, IDC_PROGRESS); | ||||||
| 	hBootType = GetDlgItem(hDlg, IDC_BOOT_SELECTION); | 	hBootType = GetDlgItem(hDlg, IDC_BOOT_SELECTION); | ||||||
|  | 	hImageOption = GetDlgItem(hDlg, IDC_IMAGE_OPTION); | ||||||
| 	hSelectImage = GetDlgItem(hDlg, IDC_SELECT); | 	hSelectImage = GetDlgItem(hDlg, IDC_SELECT); | ||||||
| 	hNBPasses = GetDlgItem(hDlg, IDC_NB_PASSES); | 	hNBPasses = GetDlgItem(hDlg, IDC_NB_PASSES); | ||||||
| 	hDiskID = GetDlgItem(hDlg, IDC_DISK_ID); | 	hDiskID = GetDlgItem(hDlg, IDC_DISK_ID); | ||||||
|  | @ -1681,9 +1681,8 @@ static void InitDialog(HWND hDlg) | ||||||
| 	SetBootOptions(); | 	SetBootOptions(); | ||||||
| 
 | 
 | ||||||
| 	// Fill up the Image Options Windows To Go dropdown
 | 	// Fill up the Image Options Windows To Go dropdown
 | ||||||
| 	hCtrl = GetDlgItem(hMainDialog, IDC_IMAGE_OPTION); | 	IGNORE_RETVAL(ComboBox_SetItemData(hImageOption, ComboBox_AddStringU(hImageOption, lmprintf(MSG_117)), FALSE)); | ||||||
| 	IGNORE_RETVAL(ComboBox_SetItemData(hCtrl, ComboBox_AddStringU(hCtrl, lmprintf(MSG_117)), FALSE)); | 	IGNORE_RETVAL(ComboBox_SetItemData(hImageOption, ComboBox_AddStringU(hImageOption, lmprintf(MSG_118)), TRUE)); | ||||||
| 	IGNORE_RETVAL(ComboBox_SetItemData(hCtrl, ComboBox_AddStringU(hCtrl, lmprintf(MSG_118)), TRUE)); |  | ||||||
| 
 | 
 | ||||||
| 	// Fill up the MBR masqueraded disk IDs ("8 disks should be enough for anybody")
 | 	// Fill up the MBR masqueraded disk IDs ("8 disks should be enough for anybody")
 | ||||||
| 	IGNORE_RETVAL(ComboBox_SetItemData(hDiskID, ComboBox_AddStringU(hDiskID, lmprintf(MSG_030, LEFT_TO_RIGHT_EMBEDDING "0x80" POP_DIRECTIONAL_FORMATTING)), 0x80)); | 	IGNORE_RETVAL(ComboBox_SetItemData(hDiskID, ComboBox_AddStringU(hDiskID, lmprintf(MSG_030, LEFT_TO_RIGHT_EMBEDDING "0x80" POP_DIRECTIONAL_FORMATTING)), 0x80)); | ||||||
|  | @ -1733,7 +1732,7 @@ static void InitDialog(HWND hDlg) | ||||||
| 	CreateTooltip(hPartitionScheme, lmprintf(MSG_163), -1); | 	CreateTooltip(hPartitionScheme, lmprintf(MSG_163), -1); | ||||||
| 	CreateTooltip(hTargetSystem, lmprintf(MSG_150), 30000); | 	CreateTooltip(hTargetSystem, lmprintf(MSG_150), 30000); | ||||||
| 	CreateTooltip(GetDlgItem(hDlg, IDS_CSM_HELP_TXT), lmprintf(MSG_151), 30000); | 	CreateTooltip(GetDlgItem(hDlg, IDS_CSM_HELP_TXT), lmprintf(MSG_151), 30000); | ||||||
| 	CreateTooltip(GetDlgItem(hDlg, IDC_IMAGE_OPTION), lmprintf(MSG_305), 30000); | 	CreateTooltip(hImageOption, lmprintf(MSG_305), 30000); | ||||||
| 	CreateTooltip(GetDlgItem(hDlg, IDC_PERSISTENCE_SLIDER), lmprintf(MSG_125), 30000); | 	CreateTooltip(GetDlgItem(hDlg, IDC_PERSISTENCE_SLIDER), lmprintf(MSG_125), 30000); | ||||||
| 	CreateTooltip(GetDlgItem(hDlg, IDC_PERSISTENCE_SIZE), lmprintf(MSG_125), 30000); | 	CreateTooltip(GetDlgItem(hDlg, IDC_PERSISTENCE_SIZE), lmprintf(MSG_125), 30000); | ||||||
| 	CreateTooltip(GetDlgItem(hDlg, IDC_PERSISTENCE_UNITS), lmprintf(MSG_126), 30000); | 	CreateTooltip(GetDlgItem(hDlg, IDC_PERSISTENCE_UNITS), lmprintf(MSG_126), 30000); | ||||||
|  | @ -1876,7 +1875,7 @@ DWORD CheckDriveAccess(DWORD dwTimeOut, BOOL bPrompt) | ||||||
| 	uint64_t start_time = GetTickCount64(), cur_time, end_time = start_time + dwTimeOut; | 	uint64_t start_time = GetTickCount64(), cur_time, end_time = start_time + dwTimeOut; | ||||||
| 
 | 
 | ||||||
| 	// Get the current selected device
 | 	// Get the current selected device
 | ||||||
| 	DWORD DeviceNum = (DWORD)ComboBox_GetItemData(hDeviceList, ComboBox_GetCurSel(hDeviceList)); | 	DWORD DeviceNum = (DWORD)ComboBox_GetCurItemData(hDeviceList); | ||||||
| 	if ((DeviceNum < 0x80) || (DeviceNum == (DWORD)-1)) | 	if ((DeviceNum < 0x80) || (DeviceNum == (DWORD)-1)) | ||||||
| 		return FALSE; | 		return FALSE; | ||||||
| 
 | 
 | ||||||
|  | @ -1986,7 +1985,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA | ||||||
| 						selected_locale = lcmd; | 						selected_locale = lcmd; | ||||||
| 						selected_langid = get_language_id(lcmd); | 						selected_langid = get_language_id(lcmd); | ||||||
| 						// Avoid the FS being reset on language change
 | 						// Avoid the FS being reset on language change
 | ||||||
| 						selected_fs = (int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem)); | 						selected_fs = (int)ComboBox_GetCurItemData(hFileSystem); | ||||||
| 						relaunch = TRUE; | 						relaunch = TRUE; | ||||||
| 						PostMessage(hDlg, WM_COMMAND, IDCANCEL, 0); | 						PostMessage(hDlg, WM_COMMAND, IDCANCEL, 0); | ||||||
| 					} | 					} | ||||||
|  | @ -2096,7 +2095,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA | ||||||
| 			WriteSettingBool(SETTING_ADVANCED_MODE_DEVICE, advanced_mode_device); | 			WriteSettingBool(SETTING_ADVANCED_MODE_DEVICE, advanced_mode_device); | ||||||
| 			ToggleAdvancedDeviceOptions(advanced_mode_device); | 			ToggleAdvancedDeviceOptions(advanced_mode_device); | ||||||
| 			SetBootOptions(); | 			SetBootOptions(); | ||||||
| 			boot_type = (int)ComboBox_GetItemData(hBootType, ComboBox_GetCurSel(hBootType)); | 			boot_type = (int)ComboBox_GetCurItemData(hBootType); | ||||||
| 			EnableControls(TRUE, FALSE); | 			EnableControls(TRUE, FALSE); | ||||||
| 			SetFileSystemAndClusterSize(NULL); | 			SetFileSystemAndClusterSize(NULL); | ||||||
| 			SendMessage(hMainDialog, WM_COMMAND, (CBN_SELCHANGE_INTERNAL<<16) | IDC_FILE_SYSTEM, | 			SendMessage(hMainDialog, WM_COMMAND, (CBN_SELCHANGE_INTERNAL<<16) | IDC_FILE_SYSTEM, | ||||||
|  | @ -2107,7 +2106,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA | ||||||
| 			WriteSettingBool(SETTING_ADVANCED_MODE_FORMAT, advanced_mode_format); | 			WriteSettingBool(SETTING_ADVANCED_MODE_FORMAT, advanced_mode_format); | ||||||
| 			ToggleAdvancedFormatOptions(advanced_mode_format); | 			ToggleAdvancedFormatOptions(advanced_mode_format); | ||||||
| 			if (selected_fs == FS_UNKNOWN) | 			if (selected_fs == FS_UNKNOWN) | ||||||
| 				selected_fs = (int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem)); | 				selected_fs = (int)ComboBox_GetCurItemData(hFileSystem); | ||||||
| 			SetFileSystemAndClusterSize(NULL); | 			SetFileSystemAndClusterSize(NULL); | ||||||
| 			SendMessage(hMainDialog, WM_COMMAND, (CBN_SELCHANGE_INTERNAL << 16) | IDC_FILE_SYSTEM, | 			SendMessage(hMainDialog, WM_COMMAND, (CBN_SELCHANGE_INTERNAL << 16) | IDC_FILE_SYSTEM, | ||||||
| 				ComboBox_GetCurSel(hFileSystem)); | 				ComboBox_GetCurSel(hFileSystem)); | ||||||
|  | @ -2135,7 +2134,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA | ||||||
| 			if (HIWORD(wParam) != CBN_SELCHANGE) | 			if (HIWORD(wParam) != CBN_SELCHANGE) | ||||||
| 				break; | 				break; | ||||||
| 			SetFileSystemAndClusterSize(NULL); | 			SetFileSystemAndClusterSize(NULL); | ||||||
| 			windows_to_go_selection = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_IMAGE_OPTION)); | 			windows_to_go_selection = ComboBox_GetCurSel(hImageOption); | ||||||
| 			break; | 			break; | ||||||
| 		case IDC_PERSISTENCE_SIZE: | 		case IDC_PERSISTENCE_SIZE: | ||||||
| 			if (HIWORD(wParam) == EN_CHANGE) { | 			if (HIWORD(wParam) == EN_CHANGE) { | ||||||
|  | @ -2192,14 +2191,14 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA | ||||||
| 		case IDC_TARGET_SYSTEM: | 		case IDC_TARGET_SYSTEM: | ||||||
| 			if (HIWORD(wParam) != CBN_SELCHANGE) | 			if (HIWORD(wParam) != CBN_SELCHANGE) | ||||||
| 				break; | 				break; | ||||||
| 			target_type = (int)ComboBox_GetItemData(hTargetSystem, ComboBox_GetCurSel(hTargetSystem)); | 			target_type = (int)ComboBox_GetCurItemData(hTargetSystem); | ||||||
| 			SendMessage(hMainDialog, UM_UPDATE_CSM_TOOLTIP, 0, 0); | 			SendMessage(hMainDialog, UM_UPDATE_CSM_TOOLTIP, 0, 0); | ||||||
| 			SetFileSystemAndClusterSize(NULL); | 			SetFileSystemAndClusterSize(NULL); | ||||||
| 			break; | 			break; | ||||||
| 		case IDC_PARTITION_TYPE: | 		case IDC_PARTITION_TYPE: | ||||||
| 			if (HIWORD(wParam) != CBN_SELCHANGE) | 			if (HIWORD(wParam) != CBN_SELCHANGE) | ||||||
| 				break; | 				break; | ||||||
| 			partition_type = (int)ComboBox_GetItemData(hPartitionScheme, ComboBox_GetCurSel(hPartitionScheme)); | 			partition_type = (int)ComboBox_GetCurItemData(hPartitionScheme); | ||||||
| 			SetPartitionSchemeAndTargetSystem(TRUE); | 			SetPartitionSchemeAndTargetSystem(TRUE); | ||||||
| 			SetFileSystemAndClusterSize(NULL); | 			SetFileSystemAndClusterSize(NULL); | ||||||
| 			EnableMBRBootOptions(TRUE, TRUE); | 			EnableMBRBootOptions(TRUE, TRUE); | ||||||
|  | @ -2209,7 +2208,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA | ||||||
| 			if ((HIWORD(wParam) != CBN_SELCHANGE) && (HIWORD(wParam) != CBN_SELCHANGE_INTERNAL)) | 			if ((HIWORD(wParam) != CBN_SELCHANGE) && (HIWORD(wParam) != CBN_SELCHANGE_INTERNAL)) | ||||||
| 				break; | 				break; | ||||||
| 			set_selected_fs = (HIWORD(wParam) == CBN_SELCHANGE); | 			set_selected_fs = (HIWORD(wParam) == CBN_SELCHANGE); | ||||||
| 			fs_type = (int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem)); | 			fs_type = (int)ComboBox_GetCurItemData(hFileSystem); | ||||||
| 			SetClusterSizes(fs_type); | 			SetClusterSizes(fs_type); | ||||||
| 			if (set_selected_fs && (fs_type > 0)) | 			if (set_selected_fs && (fs_type > 0)) | ||||||
| 				selected_fs = fs_type; | 				selected_fs = fs_type; | ||||||
|  | @ -2222,7 +2221,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA | ||||||
| 		case IDC_BOOT_SELECTION: | 		case IDC_BOOT_SELECTION: | ||||||
| 			if (HIWORD(wParam) != CBN_SELCHANGE) | 			if (HIWORD(wParam) != CBN_SELCHANGE) | ||||||
| 				break; | 				break; | ||||||
| 			boot_type = (int)ComboBox_GetItemData(hBootType, ComboBox_GetCurSel(hBootType)); | 			boot_type = (int)ComboBox_GetCurItemData(hBootType); | ||||||
| 			if ((HIWORD(wParam) != CBN_SELCHANGE) || (boot_type == selection_default)) | 			if ((HIWORD(wParam) != CBN_SELCHANGE) || (boot_type == selection_default)) | ||||||
| 				break; | 				break; | ||||||
| 			selection_default = boot_type; | 			selection_default = boot_type; | ||||||
|  | @ -2235,8 +2234,8 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA | ||||||
| 			ToggleImageOptions(); | 			ToggleImageOptions(); | ||||||
| 			SetProposedLabel(ComboBox_GetCurSel(hDeviceList)); | 			SetProposedLabel(ComboBox_GetCurSel(hDeviceList)); | ||||||
| 			EnableControls(TRUE, TRUE); | 			EnableControls(TRUE, TRUE); | ||||||
| 			target_type = (int)ComboBox_GetItemData(hPartitionScheme, ComboBox_GetCurSel(hPartitionScheme)); | 			target_type = (int)ComboBox_GetCurItemData(hPartitionScheme); | ||||||
| 			partition_type = (int)ComboBox_GetItemData(hTargetSystem, ComboBox_GetCurSel(hTargetSystem)); | 			partition_type = (int)ComboBox_GetCurItemData(hTargetSystem); | ||||||
| 			return (INT_PTR)TRUE; | 			return (INT_PTR)TRUE; | ||||||
| 		case IDC_SELECT: | 		case IDC_SELECT: | ||||||
| 			// Ctrl-SELECT is used to select an additional archive of files to extract
 | 			// Ctrl-SELECT is used to select an additional archive of files to extract
 | ||||||
|  | @ -2306,10 +2305,10 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA | ||||||
| 			if (format_thread != NULL) | 			if (format_thread != NULL) | ||||||
| 				return (INT_PTR)TRUE; | 				return (INT_PTR)TRUE; | ||||||
| 			// Just in case
 | 			// Just in case
 | ||||||
| 			boot_type = (int)ComboBox_GetItemData(hBootType, ComboBox_GetCurSel(hBootType)); | 			boot_type = (int)ComboBox_GetCurItemData(hBootType); | ||||||
| 			partition_type = (int)ComboBox_GetItemData(hPartitionScheme, ComboBox_GetCurSel(hPartitionScheme)); | 			partition_type = (int)ComboBox_GetCurItemData(hPartitionScheme); | ||||||
| 			target_type = (int)ComboBox_GetItemData(hTargetSystem, ComboBox_GetCurSel(hTargetSystem)); | 			target_type = (int)ComboBox_GetCurItemData(hTargetSystem); | ||||||
| 			fs_type = (int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem)); | 			fs_type = (int)ComboBox_GetCurItemData(hFileSystem); | ||||||
| 			write_as_image = FALSE; | 			write_as_image = FALSE; | ||||||
| 			write_as_esp = FALSE; | 			write_as_esp = FALSE; | ||||||
| 			installed_uefi_ntfs = FALSE; | 			installed_uefi_ntfs = FALSE; | ||||||
|  | @ -2320,7 +2319,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA | ||||||
| 			StrArrayClear(&BlockingProcess); | 			StrArrayClear(&BlockingProcess); | ||||||
| 			no_confirmation_on_cancel = FALSE; | 			no_confirmation_on_cancel = FALSE; | ||||||
| 			SendMessage(hMainDialog, UM_PROGRESS_INIT, 0, 0); | 			SendMessage(hMainDialog, UM_PROGRESS_INIT, 0, 0); | ||||||
| 			selection_default = (int)ComboBox_GetItemData(hBootType, ComboBox_GetCurSel(hBootType)); | 			selection_default = (int)ComboBox_GetCurItemData(hBootType); | ||||||
| 			// Create a thread to validate options and download files as needed (so that we can update the UI).
 | 			// Create a thread to validate options and download files as needed (so that we can update the UI).
 | ||||||
| 			// On exit, this thread sends message UM_FORMAT_START back to this dialog.
 | 			// On exit, this thread sends message UM_FORMAT_START back to this dialog.
 | ||||||
| 			if (CreateThread(NULL, 0, BootCheckThread, NULL, 0, NULL) == NULL) { | 			if (CreateThread(NULL, 0, BootCheckThread, NULL, 0, NULL) == NULL) { | ||||||
|  | @ -2430,7 +2429,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA | ||||||
| 				KillTimer(hMainDialog, TID_REFRESH_TIMER); | 				KillTimer(hMainDialog, TID_REFRESH_TIMER); | ||||||
| 				if (!op_in_progress) { | 				if (!op_in_progress) { | ||||||
| 					queued_hotplug_event = FALSE; | 					queued_hotplug_event = FALSE; | ||||||
| 					GetDevices((DWORD)ComboBox_GetItemData(hDeviceList, ComboBox_GetCurSel(hDeviceList))); | 					GetDevices((DWORD)ComboBox_GetCurItemData(hDeviceList)); | ||||||
| 					user_changed_label = FALSE; | 					user_changed_label = FALSE; | ||||||
| 					EnableControls(TRUE, FALSE); | 					EnableControls(TRUE, FALSE); | ||||||
| 					if (ComboBox_GetCurSel(hDeviceList) < 0) { | 					if (ComboBox_GetCurSel(hDeviceList) < 0) { | ||||||
|  |  | ||||||
|  | @ -129,6 +129,8 @@ | ||||||
| #define IMOP_WINTOGO                0x01 | #define IMOP_WINTOGO                0x01 | ||||||
| #define IMOP_PERSISTENCE            0x02 | #define IMOP_PERSISTENCE            0x02 | ||||||
| 
 | 
 | ||||||
|  | #define ComboBox_GetCurItemData(hCtrl) ComboBox_GetItemData(hCtrl, ComboBox_GetCurSel(hCtrl)) | ||||||
|  | 
 | ||||||
| #define safe_free(p) do {free((void*)p); p = NULL;} while(0) | #define safe_free(p) do {free((void*)p); p = NULL;} while(0) | ||||||
| #define safe_mm_free(p) do {_mm_free((void*)p); p = NULL;} while(0) | #define safe_mm_free(p) do {_mm_free((void*)p); p = NULL;} while(0) | ||||||
| #define safe_min(a, b) min((size_t)(a), (size_t)(b)) | #define safe_min(a, b) min((size_t)(a), (size_t)(b)) | ||||||
|  | @ -451,7 +453,7 @@ enum CpuArch { | ||||||
| extern RUFUS_UPDATE update; | extern RUFUS_UPDATE update; | ||||||
| extern RUFUS_IMG_REPORT img_report; | extern RUFUS_IMG_REPORT img_report; | ||||||
| extern HINSTANCE hMainInstance; | extern HINSTANCE hMainInstance; | ||||||
| extern HWND hMainDialog, hLogDialog, hStatus, hDeviceList, hCapacity; | extern HWND hMainDialog, hLogDialog, hStatus, hDeviceList, hCapacity, hImageOption; | ||||||
| extern HWND hPartitionScheme, hTargetSystem, hFileSystem, hClusterSize, hLabel, hBootType, hNBPasses, hLog; | extern HWND hPartitionScheme, hTargetSystem, hFileSystem, hClusterSize, hLabel, hBootType, hNBPasses, hLog; | ||||||
| extern HWND hInfo, hProgress, hDiskID; | extern HWND hInfo, hProgress, hDiskID; | ||||||
| extern WORD selected_langid; | extern WORD selected_langid; | ||||||
|  |  | ||||||
							
								
								
									
										10
									
								
								src/rufus.rc
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								src/rufus.rc
									
										
									
									
									
								
							|  | @ -33,7 +33,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL | ||||||
| IDD_DIALOG DIALOGEX 12, 12, 232, 326 | IDD_DIALOG DIALOGEX 12, 12, 232, 326 | ||||||
| STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | ||||||
| EXSTYLE WS_EX_ACCEPTFILES | EXSTYLE WS_EX_ACCEPTFILES | ||||||
| CAPTION "Rufus 3.12.1689" | CAPTION "Rufus 3.12.1690" | ||||||
| FONT 9, "Segoe UI Symbol", 400, 0, 0x0 | FONT 9, "Segoe UI Symbol", 400, 0, 0x0 | ||||||
| BEGIN | BEGIN | ||||||
|     LTEXT           "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP |     LTEXT           "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP | ||||||
|  | @ -397,8 +397,8 @@ END | ||||||
| // | // | ||||||
| 
 | 
 | ||||||
| VS_VERSION_INFO VERSIONINFO | VS_VERSION_INFO VERSIONINFO | ||||||
|  FILEVERSION 3,12,1689,0 |  FILEVERSION 3,12,1690,0 | ||||||
|  PRODUCTVERSION 3,12,1689,0 |  PRODUCTVERSION 3,12,1690,0 | ||||||
|  FILEFLAGSMASK 0x3fL |  FILEFLAGSMASK 0x3fL | ||||||
| #ifdef _DEBUG | #ifdef _DEBUG | ||||||
|  FILEFLAGS 0x1L |  FILEFLAGS 0x1L | ||||||
|  | @ -416,13 +416,13 @@ BEGIN | ||||||
|             VALUE "Comments", "https://rufus.ie" |             VALUE "Comments", "https://rufus.ie" | ||||||
|             VALUE "CompanyName", "Akeo Consulting" |             VALUE "CompanyName", "Akeo Consulting" | ||||||
|             VALUE "FileDescription", "Rufus" |             VALUE "FileDescription", "Rufus" | ||||||
|             VALUE "FileVersion", "3.12.1689" |             VALUE "FileVersion", "3.12.1690" | ||||||
|             VALUE "InternalName", "Rufus" |             VALUE "InternalName", "Rufus" | ||||||
|             VALUE "LegalCopyright", "© 2011-2020 Pete Batard (GPL v3)" |             VALUE "LegalCopyright", "© 2011-2020 Pete Batard (GPL v3)" | ||||||
|             VALUE "LegalTrademarks", "https://www.gnu.org/licenses/gpl-3.0.html" |             VALUE "LegalTrademarks", "https://www.gnu.org/licenses/gpl-3.0.html" | ||||||
|             VALUE "OriginalFilename", "rufus-3.12.exe" |             VALUE "OriginalFilename", "rufus-3.12.exe" | ||||||
|             VALUE "ProductName", "Rufus" |             VALUE "ProductName", "Rufus" | ||||||
|             VALUE "ProductVersion", "3.12.1689" |             VALUE "ProductVersion", "3.12.1690" | ||||||
|         END |         END | ||||||
|     END |     END | ||||||
|     BLOCK "VarFileInfo" |     BLOCK "VarFileInfo" | ||||||
|  |  | ||||||
|  | @ -1486,7 +1486,7 @@ INT_PTR CALLBACK UpdateCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM l | ||||||
| 		case IDC_UPDATE_FREQUENCY: | 		case IDC_UPDATE_FREQUENCY: | ||||||
| 			if (HIWORD(wParam) != CBN_SELCHANGE) | 			if (HIWORD(wParam) != CBN_SELCHANGE) | ||||||
| 				break; | 				break; | ||||||
| 			freq = (int32_t)ComboBox_GetItemData(hFrequency, ComboBox_GetCurSel(hFrequency)); | 			freq = (int32_t)ComboBox_GetCurItemData(hFrequency); | ||||||
| 			WriteSetting32(SETTING_UPDATE_INTERVAL, (DWORD)freq); | 			WriteSetting32(SETTING_UPDATE_INTERVAL, (DWORD)freq); | ||||||
| 			EnableWindow(hBeta, (freq >= 0) && is_x86_32); | 			EnableWindow(hBeta, (freq >= 0) && is_x86_32); | ||||||
| 			return (INT_PTR)TRUE; | 			return (INT_PTR)TRUE; | ||||||
|  |  | ||||||
							
								
								
									
										12
									
								
								src/ui.c
									
										
									
									
									
								
							
							
						
						
									
										12
									
								
								src/ui.c
									
										
									
									
									
								
							|  | @ -271,8 +271,8 @@ void GetFullWidth(HWND hDlg) | ||||||
| 	fw = rc.right - rc.left - ddw; | 	fw = rc.right - rc.left - ddw; | ||||||
| 
 | 
 | ||||||
| 	// Go through the Image Options for Windows To Go
 | 	// Go through the Image Options for Windows To Go
 | ||||||
| 	fw = max(fw, GetTextSize(GetDlgItem(hDlg, IDC_IMAGE_OPTION), lmprintf(MSG_117)).cx); | 	fw = max(fw, GetTextSize(hImageOption, lmprintf(MSG_117)).cx); | ||||||
| 	fw = max(fw, GetTextSize(GetDlgItem(hDlg, IDC_IMAGE_OPTION), lmprintf(MSG_118)).cx); | 	fw = max(fw, GetTextSize(hImageOption, lmprintf(MSG_118)).cx); | ||||||
| 
 | 
 | ||||||
| 	// Now deal with full length checkbox lines
 | 	// Now deal with full length checkbox lines
 | ||||||
| 	for (i = 0; i<ARRAYSIZE(full_width_checkboxes); i++) | 	for (i = 0; i<ARRAYSIZE(full_width_checkboxes); i++) | ||||||
|  | @ -428,7 +428,7 @@ void PositionMainControls(HWND hDlg) | ||||||
| 	hCtrl = GetDlgItem(hDlg, IDC_PERSISTENCE_SLIDER); | 	hCtrl = GetDlgItem(hDlg, IDC_PERSISTENCE_SLIDER); | ||||||
| 	GetWindowRect(hCtrl, &rc); | 	GetWindowRect(hCtrl, &rc); | ||||||
| 	MapWindowPoints(NULL, hDlg, (POINT*)&rc, 2); | 	MapWindowPoints(NULL, hDlg, (POINT*)&rc, 2); | ||||||
| 	SetWindowPos(hCtrl, GetDlgItem(hDlg, IDC_IMAGE_OPTION), mw, rc.top, bsw, rc.bottom - rc.top, 0); | 	SetWindowPos(hCtrl, hImageOption, mw, rc.top, bsw, rc.bottom - rc.top, 0); | ||||||
| 
 | 
 | ||||||
| 	// Reposition the Persistence Units dropdown (no need to resize)
 | 	// Reposition the Persistence Units dropdown (no need to resize)
 | ||||||
| 	hCtrl = GetDlgItem(hDlg, IDC_PERSISTENCE_UNITS); | 	hCtrl = GetDlgItem(hDlg, IDC_PERSISTENCE_UNITS); | ||||||
|  | @ -785,7 +785,7 @@ void ToggleImageOptions(void) | ||||||
| 		 ((!has_wintogo) && (image_options & IMOP_WINTOGO)) ) { | 		 ((!has_wintogo) && (image_options & IMOP_WINTOGO)) ) { | ||||||
| 		image_options ^= IMOP_WINTOGO; | 		image_options ^= IMOP_WINTOGO; | ||||||
| 		// Set the Windows To Go selection in the dropdown
 | 		// Set the Windows To Go selection in the dropdown
 | ||||||
| 		IGNORE_RETVAL(ComboBox_SetCurSel(GetDlgItem(hMainDialog, IDC_IMAGE_OPTION), windows_to_go_selection)); | 		IGNORE_RETVAL(ComboBox_SetCurSel(hImageOption, windows_to_go_selection)); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if (((has_persistence) && !(image_options & IMOP_PERSISTENCE)) || | 	if (((has_persistence) && !(image_options & IMOP_PERSISTENCE)) || | ||||||
|  | @ -818,7 +818,7 @@ void ToggleImageOptions(void) | ||||||
| 	// Set the dropdown default selection
 | 	// Set the dropdown default selection
 | ||||||
| 	if (image_options & IMOP_WINTOGO) { | 	if (image_options & IMOP_WINTOGO) { | ||||||
| 		SetWindowTextU(GetDlgItem(hMainDialog, IDS_IMAGE_OPTION_TXT), image_option_txt); | 		SetWindowTextU(GetDlgItem(hMainDialog, IDS_IMAGE_OPTION_TXT), image_option_txt); | ||||||
| 		IGNORE_RETVAL(ComboBox_SetCurSel(GetDlgItem(hMainDialog, IDC_IMAGE_OPTION), windows_to_go_selection)); | 		IGNORE_RETVAL(ComboBox_SetCurSel(hImageOption, windows_to_go_selection)); | ||||||
| 	} else if (image_options & IMOP_PERSISTENCE) { | 	} else if (image_options & IMOP_PERSISTENCE) { | ||||||
| 		SetWindowTextU(GetDlgItem(hMainDialog, IDS_IMAGE_OPTION_TXT), lmprintf(MSG_123)); | 		SetWindowTextU(GetDlgItem(hMainDialog, IDS_IMAGE_OPTION_TXT), lmprintf(MSG_123)); | ||||||
| 		TogglePersistenceControls(persistence_size != 0); | 		TogglePersistenceControls(persistence_size != 0); | ||||||
|  | @ -1194,7 +1194,7 @@ void InitProgress(BOOL bOnlyFormat) | ||||||
| 			nb_slots[OP_PARTITION] = 1; | 			nb_slots[OP_PARTITION] = 1; | ||||||
| 			nb_slots[OP_FIX_MBR] = 1; | 			nb_slots[OP_FIX_MBR] = 1; | ||||||
| 			nb_slots[OP_CREATE_FS] = (use_vds) ? 2 : | 			nb_slots[OP_CREATE_FS] = (use_vds) ? 2 : | ||||||
| 				nb_steps[ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem))]; | 				nb_steps[ComboBox_GetCurItemData(hFileSystem)]; | ||||||
| 			// So, yeah, if you're doing slow format, or using Large FAT32, and have persistence, you'll see
 | 			// So, yeah, if you're doing slow format, or using Large FAT32, and have persistence, you'll see
 | ||||||
| 			// the progress bar revert during format on account that we reuse the same operation for both
 | 			// the progress bar revert during format on account that we reuse the same operation for both
 | ||||||
| 			// partitions. Maybe one day I'll be bothered to handle two separate OP_FORMAT ops...
 | 			// partitions. Maybe one day I'll be bothered to handle two separate OP_FORMAT ops...
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue