Поделиться через


Функция PropVariantToFileTimeVector (propvarutil.h)

Извлекает данные из структуры PROPVARIANT в вектор FILETIME.

Синтаксис

PSSTDAPI PropVariantToFileTimeVector(
  [in]  REFPROPVARIANT propvar,
  [out] FILETIME       *prgft,
  [in]  ULONG          crgft,
  [out] ULONG          *pcElem
);

Параметры

[in] propvar

Тип: REFPROPVARIANT

Ссылка на исходную структуру PROPVARIANT .

[out] prgft

Тип: FILETIME*

Указывает на буфер, содержащий значения crgft FILETIME. При возврате этой функции буфер инициализирован с помощью элементов pcElem FILETIME, извлеченных из исходной структуры PROPVARIANT .

[in] crgft

Тип: ULONG

Размер в элементах буфера, на который указывает prgft.

[out] pcElem

Тип: ULONG*

При возврате этой функции содержит количество элементов FILETIME, извлеченных из исходной структуры PROPVARIANT .

Возвращаемое значение

Тип: HRESULT

Возвращает одно из следующих значений.

Код возврата Описание
S_OK
Возвращает S_OK в случае успешного выполнения или значение ошибки в противном случае.
TYPE_E_BUFFERTOOSMALL
Исходный PROPVARIANT содержал больше значений crgn. Буфер, на который указывает prgft.
E_INVALIDARG
PROPVARIANT не был соответствующего типа.

Комментарии

Эта вспомоганная функция используется в местах, где вызывающее приложение ожидает , что PROPVARIANT будет содержать значение вектора filetime с фиксированным числом элементов.

Если исходный PROPVARIANT имеет тип VT_VECTOR | VT_FILETIME, эта вспомогательная функция извлекает до значений crgft FILETIME и помещает их в буфер, на который указывает prgft. Если PROPVARIANT содержит больше элементов, чем помещается в буфер prgft , эта функция возвращает ошибку и задает pcElem значение 0.

Выходные fileTIMEs будут использовать тот же часовой пояс, что и исходные FILETIMEs.

Примеры

В следующем примере, который будет включен в состав более крупной программы, показано, как использовать PropVariantToFileTimeVector для доступа к значению вектора FILETIME в 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
     }
}

Требования

Требование Значение
Минимальная версия клиента Windows XP с пакетом обновления 2 (SP2), Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2003 с пакетом обновления 1 (SP1) [только классические приложения]
Целевая платформа Windows
Header propvarutil.h
Библиотека Propsys.lib
DLL Propsys.dll (версия 6.0 или более поздняя)
Распространяемые компоненты Windows Desktop Search (WDS) 3.0

См. также раздел

InitPropVariantFromFileTimeVector

PropVariantToFileTime

PropVariantToFileTimeVectorAlloc