Re: get free disk space in win32
- Posted by ssallen Dec 20, 2009
- 1205 views
Ok, I am getting the bad routine (-1) error. Anyone see something wrong with this?
constant kernel32 = open_dll( "kernel32.dll" ), xGetFreeSpace = define_c_func(kernel32, "GetDiskFreeSpaceEx", {C_POINTER, C_POINTER, C_POINTER, C_POINTER}, C_INT) global function get_drive_space(sequence mdir) atom strptr, ptr2, ptr3, ptr4 integer retx sequence rets strptr = allocate_string(mdir) ptr2 = allocate(8) ptr3 = allocate(8) ptr4 = allocate(8) retx = c_func(xGetFreeSpace, {strptr, ptr2, ptr3, ptr4}) if retx <= 0 then return {-1, -1} end if rets = {{0, 0}, {0, 0}, {0, 0}} rets[1][1] = peek4u(ptr2) rets[1][2] = peek4u(ptr2+4) rets[2][1] = peek4u(ptr2) rets[2][2] = peek4u(ptr2+4) rets[3][1] = peek4u(ptr2) rets[3][2] = peek4u(ptr2+4) return rets end function
Aside from needing to free the memory for those pointers I mean! :)
Thanks again!
Steve A.