Программирование для Windows NT (том 2)

         

имя файловой системы, серийный номер


            break;

          case 3:

            ltoa(lpDiskInfo->dwMaxFileNameLength, szBuf, 10);

            lpLvdi->item.pszText = szBuf;

            break;

          case 4:

            ltoa(lpDiskInfo->dwTotalSpace, szBuf, 10);

            lpLvdi->item.pszText = szBuf;

            break;

          case 5:

            ltoa(lpDiskInfo->dwFreeSpace, szBuf, 10);

            lpLvdi->item.pszText = szBuf;

            break;

          default:

            break;

        }

        break;

      }

    }

    case NM_DBLCLK:

    {

      int index;

      char szBuf[256];

      // Определяем номер выбранного элемента списка

      index = ListView_GetNextItem(hwndList,

        -1, LVNI_ALL | LVNI_SELECTED);

      if(index == -1)

           return 0;

      // Получаем информацию о выбранном устройстве

      GetVolumeInformation((pdi + index)->szDriveName,

        (pdi + index)->szVolumeName, 30,

        &((pdi + index)->dwVolumeSerialNumber),

        &((pdi + index)->dwMaxFileNameLength),

        &((pdi + index)->dwFileSystemFlags),

        (pdi + index)->szFileSystemName, 10);

      // Определяем объем свободного пространства

      // на диске и общую емкость диска

      GetDiskFreeSpace((pdi + index)->szDriveName,

        &dwSectors, &dwBytes, &dwFreeClusters, &dwClusters);

      (pdi + index)->dwFreeSpace =

        dwSectors * dwBytes * dwFreeClusters;

      (pdi + index)->dwTotalSpace =

        dwSectors * dwBytes * dwClusters;

      // Подготавливаем для отображения имя диска,

      // имя файловой системы, серийный номер и

      // список системных флагов

      sprintf(szBuf, "System flags for drive %s (%s)\n"

        "Serial number: %lX\n",

        (pdi + index)->szDriveName,

        (pdi + index)->szFileSystemName,

        (pdi + index)->dwVolumeSerialNumber);


Содержание  Назад  Вперед