PropVariantToFileTime function (propvarutil.h)

Extracts the FILETIME structure from a PROPVARIANT structure.

Syntax

PSSTDAPI PropVariantToFileTime(
  [in]  REFPROPVARIANT propvar,
  [in]  PSTIME_FLAGS   pstfOut,
  [out] FILETIME       *pftOut
);

Parameters

[in] propvar

Type: REFPROPVARIANT

Reference to a source PROPVARIANT structure.

[in] pstfOut

Type: PSTIME_FLAGS

Specifies one of the following time flags.

PSTF_UTC (0)

Indicates the output will use coordinated universal time.

PSTF_LOCAL (1)

Indicates the output will use local time.

[out] pftOut

Type: FILETIME*

When this function returns, contains the extracted FILETIME structure.

Return value

Type: HRESULT

If this function succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.

Remarks

This helper function is used in places where the calling application expects a PROPVARIANT to hold a single filetime value. For instance, an application obtaining values from a property store can use this to safely extract a filetime value for filetime properties.

If the source PROPVARIANT has type VT_FILETIME or VT_DATE, this helper function extracts the value as a FILETIME using the timezone specified by pstfOut. If the source PROPVARIANT is VT_EMPTY or any other type, this function returns a failure result.

The source PROPVARIANT must be in Coordinated Universal Time (UTC). The PSTF_UTC and PSTF_LOCAL flags allow the calling application to specify what time zone the output should be converted to.

Examples

The following example, to be included as part of a larger program, demonstrates how to use PropVariantToFileTime to access a FILETIME value in a PROPVARIANT.

// IPropertyStore *ppropstore;
// Assume variable ppropstore is initialized and valid
PROPVARIANT propvar = {0};
HRESULT hr = ppropstore->GetValue(PKEY_DateModified, &propvar);
if (SUCCEEDED(hr))
{
     // PKEY_DateModified is expected to produce a VT_FILETIME or VT_EMPTY value.
     // PropVariantToFileTime will return a failure code for VT_EMPTY
     FILETIME ftModified;
     hr = PropVariantToFileTime(propvar, PSTF_UTC, &ftModified);
     if (SUCCEEDED(hr))
     {
        // ftModified is now valid and contains a file time in UTC
     }
     else
     {
        // Unable to convert propvar to a FILETIME
     }
     PropVariantClear(&propvar);
}

Requirements

Requirement Value
Minimum supported client Windows XP with SP2, Windows Vista [desktop apps only]
Minimum supported server Windows Server 2003 with SP1 [desktop apps only]
Target Platform Windows
Header propvarutil.h
Library Propsys.lib
DLL Propsys.dll (version 6.0 or later)
Redistributable Windows Desktop Search (WDS) 3.0

See also

InitPropVariantFromFileTime

PropVariantChangeType

PropVariantToFileTimeVector

VariantToFileTime