標準のAPIはありません.
/*
現在のコンベンショナルメモリーの空き容量を計算して返す
単位はバイト
ただし512バイト以下の誤差あり
*/
DWORD GetFreeDosMemSize(void)
{
UINT uiSel, uiSelLast = 0;
DWORD dwFreeSize = 0, cbAllocNow = 65536L * 2;
while(cbAllocNow >= 512) {
if((uiSel = LOWORD(GlobalDosAlloc(cbAllocNow))) != 0) {
dwFreeSize += cbAllocNow;
GlobalLock(uiSel);
*((LPUINT)MAKELP(uiSel, 0)) = uiSelLast;
uiSelLast = uiSel;
} else {
cbAllocNow = (cbAllocNow * 3) / 4;
}
}
while(uiSelLast != 0) {
uiSel = *(LPUINT)MAKELP(uiSelLast, 0);
GlobalUnlock(uiSelLast);
GlobalDosFree(uiSelLast);
uiSelLast = uiSel;
}
return dwFreeSize;
}
参照