How to: Use Relative Time to Access Free/Busy Data

How to: Use Relative Time to Access Free/Busy Data

The IFreeBusyData interface in the Free/Busy API uses a concept of relative time, which is the number of minutes since January 1, 1601, expressed in Universal Time (UTC), and is a value of type LONG.

The following are some commonly used relative time values:

-

<table>
<tbody>
<tr class="odd">
<td><pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">

ULONG ulrtmMax = 1525252319L

ULONG ulrtmMin = 0L

Use the preceding maximum and minimum relative time values to help verify that your relative time values are valid.

Because NTFS records file times natively in FILETIME format, it might be handy to use the following code examples to convert relative time to and from FILETIME.

  static const LONGLONG UnitsPerMinute = 600000000;
static const LONGLONG UnitsPerHalfMinute = 300000000;
void RTimeToFileTime(LONG rtime, FILETIME *pft)
{
    Assert(pft != NULL);
    ULARGE_INTEGER *puli = (ULARGE_INTEGER *)pft;
    puli->QuadPart = rtime * UnitsPerMinute;
}
 
void FileTimeToRTime(FILETIME *pft, LONG* prtime)
{
    Assert(pft != NULL);
    Assert(prtime != NULL);
ULARGE_INTEGER uli = *(ULARGE_INTEGER *)pft;

uli.QuadPart += UnitsPerHalfMinute;
uli.QuadPart /= UnitsPerMinute;
*prtime = uli.LowPart;

}

See Also

About the Free/Busy API

IFreeBusyData