Функция SHFormatDrive.
Открывает стандартное диалоговое окно
форматирования диска.
DWORD SHFormatDrive(
HWND hwnd,
UINT drive,
UINT fmtID,
UINT options
);
Параметры
- hwnd
- хэндл родительского окна диалога. Диалог
обязательно должен иметь родительское окно,
поэтому нельзя в этом параметре указывать null.
- drive
- номер диска, который мы хотим отформатировать. 0
для A: , 1 для B: , 2 для С: и т.д.
- fmtID
- ID физического формата.
- SHFMT_ID_DEFAULT
- ID формата поумолчанию.
- options
- Параметры форматирования, которые можно
передать в диалоговое окошко.
- SHFMT_OPT_FULL
- Полное форматирование (для диска, который ещё ни
разу не форматировался). Поумолчанию "Быстрое
форматирование."
- SHFMT_OPT_SYSONLY
- Форматирование с созданием системного диска.
Возвращаемое значение
Возвращает значение DWORD приведённое в
таблице, либо fmtID последнего удачного
форматирования.
SHFMT_ERROR |
В процессе форматирования возникла ошибка. |
SHFMT_CANCEL |
Форматирование было отменено. |
SHFMT_NOFORMAT |
Диск не удалось отформатировать. |
Замечание
Процесс форматирования контролируется
диалоговым окном, поэтому программно запустить
форматирование не получится.
Пример:
#include <windows.h>
void main()
{
WORD DriveNumber = 0; //format drive c:
//0 - диск a:, 1 - b: и т.д.
const int SHFMT_OPT_QUICKFORMAT = 0;
const int SHFMT_OPT_FULLFORMAT = 1;
const int SHFMT_OPT_SYSONLY = 2;
HMODULE hMod = LoadLibrary("SHELL32.DLL");
if(hMod == INVALID_HANDLE_VALUE)
MessageBox(0, "Не удалось загрузить DLL",
"load error", MB_SYSTEMMODAL|MB_ICONERROR);
typedef LONG (WINAPI*tpSHFormatDrive)(HWND, WORD, WORD, WORD);
tpSHFormatDrive SHFormatDrive = (tpSHFormatDrive)
GetProcAddress(GetModuleHandle("SHELL32.DLL"),"SHFormatDrive");
if(SHFormatDrive)
SHFormatDrive(0, DriveNumber, 0xFFFF, SHFMT_OPT_QUICKFORMAT);
else MessageBox(0, "the procedure SHFormatDrive not found","Ошибка",
MB_SYSTEMMODAL|MB_ICONERROR);
}
Дополнительная информация
Минимальная версия DLL: |
shell32.dll версии 5.0 и выше |
Заголовок: |
shlobj.h |
Библиотека: |
shell32.lib |
Операционная система: |
Windows 2000 |
|