dwHighDateTime
dwHighDateTime: LongWord
Example
function SameFileTime(const A, B: TFileTime): Boolean;
begin
Result := (A.dwHighDateTime = B.dwHighDateTime) and
(A.dwLowDateTime = B.dwLowDateTime);
end;
Usage
dwHighDateTime stores bits 32 through 63 and the major ordering component of a script TFileTime value.
Safe use
- Compare this field first when ordering two complete FILETIME values; compare the low field only when high fields match.
- Equality requires both fields to match, as in the example.
- Do not treat the high half as seconds, days, a year or a signed integer.
- Preserve unsigned semantics when moving it through a Variant, database or text representation.
- A high field of zero does not make the low field a standalone date/time, and an all-ones high field can have API-specific meaning only when that API documents it.
Additional Technical Info
dwHighDateTime is the high-order unsigned 32-bit field of TFileTime. Its range is 0..4,294,967,295, matching the current public Cardinal/LongWord representation.
One increment of this field represents 2^32 FILETIME ticks, or 429.4967296 seconds, plus whatever low-order value is held in dwLowDateTime. It carries the most significant part of the combined unsigned 64-bit value.
Related Code Library entries
- dwLowDateTime - low-order half and rollover behavior.
- Records - record value and interchange rules.
External references
- Microsoft FILETIME - authoritative high/low field definition.
- Microsoft file times - filesystem timestamp behavior and precision.
- Free Pascal record types - compatible record-field semantics.