Based on an example from MSDN
const char Drive[4];
int Error;
ULARGE_INTEGER FreeBytesAvailableToCaller = {0.0,0.0};
ULARGE_INTEGER TotalNumberOfBytes = {0.0,0.0};
ULARGE_INTEGER TotalNumberOfFreeBytes = {0.0,0.0};
double Total_Size = 0.0;
double Free_Size = 0.0;
char Total[256];
char Available[256];
Fmt(Drive,"C:\\");
Error = GetDiskFreeSpaceEx(Drive,&FreeBytesAvailableToCaller,&TotalNumberOfBytes,&TotalNumberOfFreeBytes);
if ( Error == 0 )
{
MessagePopup ("Error","Error, Could not read Disk!");
}
Total_Size = (LONGLONG)TotalNumberOfBytes.QuadPart;
Free_Size = (LONGLONG)TotalNumberOfFreeBytes.QuadPart;
Total_Size /= (1024 * 1024 * 1024);
Free_Size /= (1024 * 1024 * 1024);
Fmt (Total,"%f GB",Total_Size);
Fmt (Available,"%f GB",Free_Size);