mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-16 05:59:28 +02:00
* win/dos.pp: cleanup GetDiskFreeSpace related stuff, patch similar to sysutils.pp rev.16540.
git-svn-id: trunk@17726 -
This commit is contained in:
parent
e3816d0db2
commit
2099318c3d
@ -94,7 +94,6 @@ type
|
||||
end;
|
||||
|
||||
var
|
||||
versioninfo : OSVERSIONINFO;
|
||||
kernel32dll : THandle;
|
||||
|
||||
{******************************************************************************
|
||||
@ -817,41 +816,17 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
function FreeLibrary(hLibModule : THandle) : longbool;
|
||||
stdcall; external 'kernel32' name 'FreeLibrary';
|
||||
function GetModuleHandle(p : PChar) : PtrUInt;
|
||||
stdcall; external 'kernel32' name 'GetModuleHandleA';
|
||||
function GetVersionEx(var VersionInformation:OSVERSIONINFO) : longbool;
|
||||
stdcall; external 'kernel32' name 'GetVersionExA';
|
||||
function LoadLibrary(lpLibFileName : pchar):THandle;
|
||||
stdcall; external 'kernel32' name 'LoadLibraryA';
|
||||
function GetProcAddress(hModule : THandle;lpProcName : pchar) : pointer;
|
||||
stdcall; external 'kernel32' name 'GetProcAddress';
|
||||
|
||||
var
|
||||
oldexitproc : pointer;
|
||||
|
||||
procedure dosexitproc;
|
||||
|
||||
begin
|
||||
exitproc:=oldexitproc;
|
||||
if kernel32dll<>0 then
|
||||
FreeLibrary(kernel32dll);
|
||||
end;
|
||||
|
||||
begin
|
||||
oldexitproc:=exitproc;
|
||||
exitproc:=@dosexitproc;
|
||||
versioninfo.dwOSVersionInfoSize:=sizeof(versioninfo);
|
||||
GetVersionEx(versioninfo);
|
||||
kernel32dll:=0;
|
||||
GetDiskFreeSpaceEx:=nil;
|
||||
{$ifndef win64}
|
||||
if ((versioninfo.dwPlatformId=VER_PLATFORM_WIN32_WINDOWS) and
|
||||
(versioninfo.dwBuildNUmber>=1000)) or
|
||||
(versioninfo.dwPlatformId=VER_PLATFORM_WIN32_NT) then
|
||||
{$endif win64}
|
||||
begin
|
||||
kernel32dll:=LoadLibrary('kernel32');
|
||||
if kernel32dll<>0 then
|
||||
GetDiskFreeSpaceEx:=TGetDiskFreeSpaceEx(GetProcAddress(kernel32dll,'GetDiskFreeSpaceExA'));
|
||||
end;
|
||||
kernel32dll:=GetModuleHandle('kernel32');
|
||||
if kernel32dll<>0 then
|
||||
GetDiskFreeSpaceEx:=TGetDiskFreeSpaceEx(GetProcAddress(kernel32dll,'GetDiskFreeSpaceExA'));
|
||||
end.
|
||||
|
Loading…
Reference in New Issue
Block a user