PropVariantToFileTimeVector function (propvarutil.h)
Extracts data from a PROPVARIANT structure into a FILETIME vector.
Syntax
PSSTDAPI PropVariantToFileTimeVector(
[in] REFPROPVARIANT propvar,
[out] FILETIME *prgft,
[in] ULONG crgft,
[out] ULONG *pcElem
);
Parameters
[in] propvar
Type: REFPROPVARIANT
Reference to a source PROPVARIANT structure.
[out] prgft
Type: FILETIME*
Points to a buffer containing crgft FILETIME values. When this function returns, the buffer has been initialized with pcElem FILETIME elements extracted from the source PROPVARIANT structure.
[in] crgft
Type: ULONG
Size in elements of the buffer pointed to by prgft.
[out] pcElem
Type: ULONG*
When this function returns, contains the count of FILETIME elements extracted from the source PROPVARIANT structure.
Return value
Type: HRESULT
Returns one of the following values.
Return code | Description |
---|---|
|
Returns S_OK if successful, or an error value otherwise. |
|
The source PROPVARIANT contained more than crgn values. The buffer pointed to by prgft. |
|
The PROPVARIANT was not of the appropriate type. |
Remarks
This helper function is used in places where the calling application expects a PROPVARIANT to hold a filetime vector value with a fixed number of elements.
If the source PROPVARIANT has type VT_VECTOR | VT_FILETIME, this helper function extracts up to crgft FILETIME values and places them into the buffer pointed to by prgft. If the PROPVARIANT contains more elements than will fit into the prgft buffer, this function returns an error and sets pcElem to 0.
The output FILETIMEs will use the same time zone as the source FILETIMEs.
Examples
The following example, to be included as part of a larger program, demonstrates how to use PropVariantToFileTimeVector to access a FILETIME vector value in a PROPVARIANT.
// PROPVARIANT propvar;
// Assume the variable propvar is initialized and valid
FILETIME rgTimes[4]; // The application is expecting propvar to hold 4 FILETIMEs in a vector
ULONG cTimes;
HRESULT hr = PropVariantToFileTimeVector(propvar, rgTime, ARRAYSIZE(rgTime), &cTimes);
if (SUCCEEDED(hr))
{
if (cTimes == ARRAYSIZE(rgTime))
{
// The application got 4 FILETIMEs which are now stored in rgTime
}
else
{
// The application got cTimes which are stored in the first cTimes elements of rgTime
}
}
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 |