Funzione PropVariantToStringWithDefault (propvarutil.h)

Estrae il valore della proprietà stringa di una struttura PROPVARIANT . Se non esiste alcun valore, viene restituito il valore predefinito specificato.

Sintassi

PSSTDAPI_(PCWSTR) PropVariantToStringWithDefault(
  [in] REFPROPVARIANT propvarIn,
  [in] LPCWSTR        pszDefault
);

Parametri

[in] propvarIn

Tipo: REFPROPVARIANT

Riferimento a una struttura PROPVARIANT di origine.

[in] pszDefault

Tipo: LPCWSTR

Puntatore a un valore stringa Unicode predefinito, per l'uso in cui non esiste alcun valore. Può essere NULL.

Valore restituito

Tipo: PCWSTR

Restituisce il valore stringa o il valore predefinito oppure il valore predefinito.

Commenti

Questa funzione helper viene usata in posizioni in cui l'applicazione chiamante prevede che un PROPVARIANT contenga un valore stringa e desideri usare un valore predefinito se non lo fa. Ad esempio, un'applicazione che ottiene valori da un archivio proprietà può usarla per estrarre in modo sicuro il valore stringa per le proprietà stringa.

Se l'origine PROPVARIANT ha tipo VT_LPWSTR o VT_BSTR, questa funzione helper restituisce un puntatore al valore nel PROPVARIANT di origine. Se l'origine PROPVARIANT ha tipo VT_EMPTY o non è possibile eseguire una conversione, PropVariantToStringWithDefault restituirà il valore predefinito fornito da pszDefault.

Si noti che questa funzione restituirà puntatori ai dati forniti nei parametri. Pertanto, l'applicazione deve garantire che i dati forniti ai parametri rimangano validi fino a quando il risultato non è più in uso.

Esempio

Nell'esempio seguente, da includere come parte di un programma più ampio, viene illustrato come usare PropVariantToStringWithDefault per accedere a un valore stringa in un PROPVARIANT.

// IPropertyStore *ppropstore;
// Assume variable ppropstore is initialized and valid
PROPVARIANT propvar = {0};
HRESULT hr = ppropstore->GetValue(PKEY_Title, &propvar);
if (SUCCEEDED(hr))
{
     // PKEY_Title is expected to produce a VT_LPWSTR or VT_EMPTY value.
     // The application developer decided to treat VT_EMPTY or invalid values as ""
     PCWSTR pszTitle = PropVariantToStringWithDefault(propvar, L"");
     // pszTitle is now valid.
     PropVariantClear(&propvar);
}
// ... later in the program ...
hr = ppropstore->GetValue(PKEY_Comment, &propvar);
if (SUCCEEDED(hr))
{
         // PKEY_Comment is expected to produce a VT_LPWSTR or VT_EMPTY value.
         // The application developer decided to treat VT_EMPTY as NULL
         PCWSTR pszComment = PropVariantToStringWithDefault(propvar, NULL);
         if (pszComment)
         {
                 // pszComment is valid
         }
         PropVariantClear(&propvar);
}

Requisiti

Requisito Valore
Client minimo supportato Windows XP con SP2, Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2003 con SP1 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione propvarutil.h
Libreria Propsys.lib
DLL Propsys.dll (versione 6.0 o successiva)
Componente ridistribuibile Windows Desktop Search (WDS) 3.0

Vedi anche

InitPropVariantFromString

PropVariantChangeType

PropVariantToString

PropVariantToStringAlloc

VariantToString