SET PROCEDURE TO MEMMGR ADDITIVE >>oHeap = CREATEOBJ('Heap') >>LOCAL n3PU_LARGE_Values, cBuffer >>n3PULARGE_Values = oHeap.AllocInitAs(24,CHR(0)) >>DECLARE INTEGER GetDiskFreeSpaceEx IN Win32API ; >> STRING @ lpDirectoryName, ; >> INTEGER lpFreeBytesAvailable, ; >> INTEGER lpTotalNumberOfBytes, ; >> INTEGER lpTotalNumberOfFreeBytes >>IF GetDiskFreeSpaceEx('C:\', ; >> n3PULARGE_Values,; >> n3PULARGE_Values+8, ; >> n3PULARGE_Values+16) # 0 >> cBuffer = oHeap.CopyFrom(n3PULARGE_Values) >> ? 'Free bytes', ConvertULARGE(SUBST(cBuffer,1,8)) >> ? 'Tot. bytes', ConvertULARGE(SUBST(cBuffer,9,8)) >> ? 'Free bytes', ConvertULARGE(SUBST(cBuffer,17,8)) >>ENDIF >>oHeap.DeAlloc(n3PULARGE_Values) >>oHeap = '' >> >>FUNCTION ConvertULARGE >>LPARAMETER tcULARGE >>LOCAL nCtr, nValue >>nValue = 0 >>FOR nCtr = 8 TO 1 STEP -1 >> nValue = (nValue * 256) + ASC(SUBST(tcULARGE,nCtr,1)) >>ENDFOR >>RETURN nValue>>