Función PropVariantToStringWithDefault (propvarutil.h)

Extrae el valor de propiedad de cadena de una estructura PROPVARIANT . Si no existe ningún valor, se devuelve el valor predeterminado especificado.

Sintaxis

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

Parámetros

[in] propvarIn

Tipo: REFPROPVARIANT

Referencia a una estructura PROPVARIANT de origen.

[in] pszDefault

Tipo: LPCWSTR

Puntero a un valor de cadena Unicode predeterminado, para su uso cuando no existe ningún valor actualmente. Puede ser NULL.

Valor devuelto

Tipo: PCWSTR

Devuelve el valor de cadena o el valor predeterminado, o el valor predeterminado.

Comentarios

Esta función auxiliar se usa en lugares donde la aplicación que realiza la llamada espera que un PROPVARIANT contenga un valor de cadena y desea usar un valor predeterminado si no lo hace. Por ejemplo, una aplicación que obtiene valores de un almacén de propiedades puede usarlo para extraer de forma segura el valor de cadena para las propiedades de cadena.

Si el PROPVARIANT de origen tiene el tipo VT_LPWSTR o VT_BSTR, esta función auxiliar devuelve un puntero al valor del PROPVARIANT de origen. Si el PROPVARIANT de origen tiene el tipo VT_EMPTY o una conversión no es posible, PropVariantToStringWithDefault devolverá el valor predeterminado proporcionado por pszDefault.

Tenga en cuenta que esta función devolverá punteros a los datos proporcionados en los parámetros. Por lo tanto, la aplicación debe asegurarse de que los datos proporcionados a los parámetros permanecen válidos hasta que el resultado ya no esté en uso.

Ejemplos

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

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
Library Propsys.lib
Archivo DLL Propsys.dll (versión 6.0 o posterior)
Redistribuible Windows Desktop Search (WDS) 3.0

Consulte también

InitPropVariantFromString

PropVariantChangeType

PropVariantToString

PropVariantToStringAlloc

VariantToString