diff --git a/rtl/win/sysutils.pp b/rtl/win/sysutils.pp index ff455ee87d..b3cae1c8d1 100644 --- a/rtl/win/sysutils.pp +++ b/rtl/win/sysutils.pp @@ -1454,7 +1454,7 @@ end; {$checkpointer off} Function GetEnvironmentVariable(Const EnvVar : AnsiString) : AnsiString; - +{$ifdef wince} var oemenvvar, oemstr : RawByteString; i, hplen : longint; @@ -1483,9 +1483,16 @@ begin end; FreeEnvironmentStringsA(p); end; +{$else wince} +var + buf : array[0 .. 32767-1] of ansichar; +begin + SetString(Result,PAnsiChar(buf),GetEnvironmentVariableA(PAnsiChar(EnvVar),PAnsiChar(buf),length(buf))); +end; +{$endif wince} Function GetEnvironmentVariable(Const EnvVar : UnicodeString) : UnicodeString; - +{$ifdef wince} var s, upperenv : Unicodestring; i : longint; @@ -1509,6 +1516,13 @@ begin end; FreeEnvironmentStringsW(p); end; +{$else wince} +var + buf : array[0 .. 32767-1] of unicodechar; +begin + SetString(Result,PUnicodeChar(buf),GetEnvironmentVariableW(PUnicodeChar(EnvVar),PUnicodeChar(buf),length(buf))); +end; +{$endif wince} Function GetEnvironmentVariableCount : Integer; @@ -1672,13 +1686,11 @@ end; Initialization code ****************************************************************************} -var - kernel32dll : THandle; - Procedure LoadVersionInfo; // and getfreespaceex Var versioninfo : TOSVERSIONINFO; + kernel32dll : THandle; begin GetDiskFreeSpaceEx:=nil; versioninfo.dwOSVersionInfoSize:=sizeof(versioninfo); @@ -1690,17 +1702,15 @@ begin Move (versioninfo.szCSDVersion ,Win32CSDVersion[1],128); win32CSDVersion[0]:=chr(strlen(PAnsiChar(@versioninfo.szCSDVersion))); kernel32dll:=GetModuleHandle('kernel32'); - if kernel32dll<>0 then - GetDiskFreeSpaceEx:=TGetDiskFreeSpaceEx(GetProcAddress(kernel32dll,'GetDiskFreeSpaceExA')); + GetDiskFreeSpaceEx:=TGetDiskFreeSpaceEx(GetProcAddress(kernel32dll,'GetDiskFreeSpaceExA')); if Win32MajorVersion<6 then FindExInfoDefaults := FindExInfoStandard; // also searches SFNs. XP only. if (Win32MajorVersion>=6) and (Win32MinorVersion>=1) then FindFirstAdditionalFlags := FIND_FIRST_EX_LARGE_FETCH; // win7 and 2008R2+ // GetTimeZoneInformationForYear is supported only on Vista and newer - if (kernel32dll<>0) and (Win32MajorVersion>=6) then + if (Win32MajorVersion>=6) then GetTimeZoneInformationForYear:=TGetTimeZoneInformationForYear(GetProcAddress(kernel32dll,'GetTimeZoneInformationForYear')); - if (kernel32dll<>0) then - GetFinalPathNameByHandle:=TGetFinalPathNameByHandle(GetProcAddress(kernel32dll,'GetFinalPathNameByHandleA')); + GetFinalPathNameByHandle:=TGetFinalPathNameByHandle(GetProcAddress(kernel32dll,'GetFinalPathNameByHandleA')); end; Function GetAppConfigDir(Global : Boolean) : String;