ドライブの空き容量確認

ランダムコピーツール関係です。
前からint型に32ビットもあればそれを超える数を取り扱う機会なんてほとんどないだろうと思ってましたが、そういえばドライブの容量は余裕で4GB超えてるんですね。

//64ビット整数型
ULARGE_INTEGER uiTotal,uiFree;
int iFree;

GetDiskFreeSpaceEx(drive,&uiFree,&uiTotal,NULL);

//MB単位でint型に代入(2^31MBまで)
iFree = uiFree.HighPart << 12 | uiFree.LowPart >> 20;

//KB単位でint型に代入(2^31KBまで)
iFree = uiFree.HighPart << 22 | uiFree.LowPart >> 10;