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


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

Извлекает значение свойства идентификатора класса (CLSID) структуры PROPVARIANT .

Синтаксис

HRESULT PropVariantToCLSID(
  [in]  REFPROPVARIANT propvar,
  [out] CLSID          *pclsid
);

Параметры

[in] propvar

Тип: REFPROPVARIANT

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

[out] pclsid

Тип: CLSID*

При возврате этой функции содержит извлеченное значение свойства, если оно существует.

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

Тип: HRESULT

Если эта функция завершается успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Эта вспомогательная функция работает для структурPROPVARIANT следующих типов:

  • VT_CLSID
  • VT_BSTR
  • VT_LPWSTR
  • VT_ARRAY | VT_UI1
Это встроенная функция с исходным кодом, указанным в заголовке . Он не входит в .dll или LIB-файл.

PropVariantToCLSID используется в местах, где вызывающее приложение ожидает , что PROPVARIANT будет содержать одно значение CLSID или GUID. Например, приложение, получающее значения из хранилища свойств, может использовать его для безопасного извлечения значения CLSID для свойств GUID.

Примеры

В следующем примере, который будет включен в более крупную программу, показано, как использовать PropVariantToCLSID для доступа к значению CLSID в PROPVARIANT.

// IPropertyStore *ppropstore;
// Assume variable ppropstore is initialized and valid
PROPVARIANT propvar = {0};

HRESULT hr = ppropstore->GetValue(PKEY_Sync_HandlerCollectionID, &propvar);
if (SUCCEEDED(hr))
{
        // PKEY_Sync_HandlerCollectionID is expected to produce a VT_CLSID or VT_EMPTY value.
        // PropVariantToCLSID will convert VT_EMPTY to a failure code.
        CLSID clsidCollectionID;

        hr = PropVariantToCLSID(propvar, &clsidCollectionID);
        if (SUCCEEDED(hr))
        {
             // clsidCollectionID is now valid
        }
        else
        {
            // the extraction failed
        }
        PropVariantClear(&propvar);
}

Требования

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

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

InitPropVariantFromCLSID

PropVariantToGUID

VariantToGUID