Compartir a través de


Función PropVariantToCLSID (propvarutil.h)

Extrae el valor de propiedad del identificador de clase (CLSID) de una estructura PROPVARIANT .

Sintaxis

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

Parámetros

[in] propvar

Tipo: REFPROPVARIANT

Referencia a una estructura PROPVARIANT de origen.

[out] pclsid

Tipo: CLSID*

Cuando se devuelve esta función, contiene el valor de propiedad extraído si existe uno.

Valor devuelto

Tipo: HRESULT

Si esta función se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.

Comentarios

Esta función auxiliar funciona para las estructurasPROPVARIANT de los siguientes tipos:

  • VT_CLSID
  • VT_BSTR
  • VT_LPWSTR
  • VT_ARRAY | VT_UI1
Se trata de una función insertada, con su código fuente proporcionado en el encabezado . No se incluye en ningún archivo .dll ni .lib.

PropVariantToCLSID se usa en lugares donde la aplicación que realiza la llamada espera que un PROPVARIANT contenga un único CLSID o un valor GUID. Por ejemplo, una aplicación que obtiene valores de un almacén de propiedades puede usarla para extraer de forma segura el valor CLSID de las propiedades GUID.

Ejemplos

En el ejemplo siguiente, para incluirse como parte de un programa mayor, se muestra cómo usar PropVariantToCLSID para tener acceso a un valor CLSID en un 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);
}

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP con SP2, Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 con SP1 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado propvarutil.h
Redistribuible Windows Desktop Search (WDS) 3.0

Consulte también

InitPropVariantFromCLSID

PropVariantToGUID

VariantToGUID