Учебное пособие: Файловая система
return FALSE;}
// пишемпервыйзаголовок
_lwrite(hf, "******** GET VOLUME INFORMATION ********\r\n\r\n", 44);
SetLastError(ERROR_SUCCESS);
n = GetLogicalDriveStrings(0, NULL);
if (GetLastError() != ERROR_SUCCESS) {
// Функция GetLogicalDriveStrings нереализованав Win32s и (вкнигах
// часто утверждают) в Windows-95, возможно, иногда это и так, но у меня
// в Windows-95 версии 4.00.950a, локализованной для России, работает.
// если все же нет, то эмулируем ее работу посредством GetLogicalDrives
// которая точно есть во всех реализациях Win32
n = GetLogicalDrives();
// узнаем, сколько всего устройств
count = 0;
for (i = 1; i; i <<= 1) if (n & i) count++;
// формируем строку с именами устройств
temp = new char [ count * 4 + 1 ];
if (temp) {
p = temp;
for (i = 0; i < 32; i ++) if (n & (1L << i)) {
*p++ = (char)('A' + i); *p++ = ':'; *p++ = '\\'; *p++ = '\0';}
*p++ = '\0';}
} else {
// если функция GetLogicalDriveStrings работает, то используем ее
temp = new char [ n + 1 ];
if (temp) GetLogicalDriveStrings(n, temp);
}
if(temp) {
// исключаем обработку сообщений о критической ошибке