Partager via


Fonction PropVariantToCLSID (propvarutil.h)

Extrait la valeur de propriété d’identificateur de classe (CLSID) d’une structure PROPVARIANT .

Syntaxe

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

Paramètres

[in] propvar

Type : REFPROPVARIANT

Référence à une structure PROPVARIANT source.

[out] pclsid

Type : CLSID*

Lorsque cette fonction est retournée, contient la valeur de la propriété extraite, le cas échéant.

Valeur retournée

Type : HRESULT

Si cette fonction réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Remarques

Cette fonction d’assistance fonctionne pour les structuresPROPVARIANT des types suivants :

  • VT_CLSID
  • VT_BSTR
  • VT_LPWSTR
  • VT_ARRAY | VT_UI1
Il s’agit d’une fonction inline, avec son code source fourni dans l’en-tête. Il n’est inclus dans aucun fichier .dll ou .lib.

PropVariantToCLSID est utilisé dans les endroits où l’application appelante s’attend à ce qu’un PROPVARIANT contienne une seule valeur CLSID ou GUID. Par instance, une application qui obtient des valeurs à partir d’un magasin de propriétés peut l’utiliser pour extraire en toute sécurité la valeur CLSID pour les propriétés GUID.

Exemples

L’exemple suivant, à inclure dans le cadre d’un programme plus large, montre comment utiliser PropVariantToCLSID pour accéder à une valeur CLSID dans 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);
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP avec SP2, Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 avec SP1 [applications de bureau uniquement]
Plateforme cible Windows
En-tête propvarutil.h
Composant redistribuable Windows Desktop Search (WDS) 3.0

Voir aussi

InitPropVariantFromCLSID

PropVariantToGUID

VariantToGUID