Главный файл исходных текстов приложения DiskInfo приведен в листинге 1.5.
Заметим, что так как в приложении используется орган управления List View, в файле проекта вы должны подключить библиотеку comctl32.lib. В противном случае редактор связей выдаст сообщения об ошибках.
Листинг 1.5. Файл DiskInfo/DiskInfo.c
// ==================================================
// Приложение DiskInfo
// Получение и отображение информации о дисковых
// устройствах, имеющихся в системе
//
// (С) Фролов А.В., 1996
// Email: frolov@glas.apc.org
// ==================================================
#define STRICT
#include <windows.h>
#include <windowsx.h>
#include <commctrl.h>
#include <stdio.h>
#include "resource.h"
#include "afxres.h"
#include "diskinfo.h"
// Структура для хранения информации о
// логическом диске
typedef struct tagDISKINFO
{
char szDriveName[10]; // имя диска
UINT nDriveType; // тип диска
char szVolumeName[30]; // имя тома
DWORD dwVolumeSerialNumber; // серийный номер
DWORD dwMaxFileNameLength; // длина имени
DWORD dwFileSystemFlags; // системные флаги
char szFileSystemName[10]; // имя файловой системы
int iImage; // номер пиктограммы
DWORD dwFreeSpace; // свободное пространство
DWORD dwTotalSpace; // общий объем диска
} DISKINFO;
// -----------------------------------------------------
// Глобальные переменные
// -----------------------------------------------------
HINSTANCE hInst;
char szAppName[] = "DriveInfoApp";
char szAppTitle[] = "Logical Drive Information";
HWND hwndList;
// Указатель на область памяти, в которую будет
// записан массив строк имен дисков
LPSTR lpLogicalDriveStrings;
// Указатель на массив структур типа DISKINFO,
// в котором будет хранится информация о дисках
DISKINFO *pdi;
// Количество логических дисков в системе