Danke Andreas L.
Unglaublich aber wahr, so klappts!
Delphi-Quellcode:
function GetDateTimeFromLargeInteger(largeIntValue: IADsLargeInteger): TDateTime;
var
int64Value: Int64;
LocalTime: TFileTime;
SystemTime: TSystemTime;
FileTime : TFileTime;
begin
int64Value := largeIntValue.HighPart;
int64Value := int64Value shl 32;
int64Value := int64Value or largeIntValue.LowPart;
FileTime := TFileTime(int64Value);
Result := EncodeDate(1601,1,1);
if FileTimeToLocalFileTime(FileTime, LocalTime) then
if FileTimeToSystemTime(LocalTime, SystemTime) then
Result := SystemTimeToDateTime(SystemTime);
end;
und so kann das ganze in Aktion aussehen:
Delphi-Quellcode:
pls := Get('pwdLastSet');
li := IDispatch(pls) As IADsLargeInteger;
if Trunc(GetDateTimeFromLargeInteger(li)) = EncodeDate(1601,1,1) then
ShowMessage('password never expires')
else
ShowMessage(DateTimeToStr(GetDateTimeFromLargeInteger(li)));
Nun drängt sich mir aber die Frage auf, was soll das ganze??? geht das nicht auch einfacher?