Compartir a través de


Función PropVariantToInt32WithDefault (propvarutil.h)

Extrae un valor Int32 de una estructura PROPVARIANT . Si no existe ningún valor actualmente, se devuelve el valor predeterminado especificado.

Sintaxis

PSSTDAPI_(LONG) PropVariantToInt32WithDefault(
  [in] REFPROPVARIANT propvarIn,
  [in] LONG           lDefault
);

Parámetros

[in] propvarIn

Tipo: REFPROPVARIANT

Referencia a una estructura PROPVARIANT de origen.

[in] lDefault

Tipo: LONG

Especifica un valor de propiedad predeterminado, para su uso cuando no existe ningún valor actualmente.

Valor devuelto

Tipo: LONG

Devuelve el valor LONG extraído 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 LONG 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 LONG de las propiedades Int32 .

Si el PROPVARIANT de origen tiene el tipo VT_I4, esta función auxiliar extrae el valor LONG . De lo contrario, intenta convertir el valor en la estructura PROPVARIANTen long. Si el PROPVARIANT de origen tiene el tipo VT_EMPTY o una conversión no es posible, PropVariantToInt32WithDefault devolverá el valor predeterminado proporcionado por lDefault. Consulte PropVariantChangeType para obtener una lista de las posibles conversiones.

Ejemplos

En el ejemplo siguiente, para incluirse como parte de un programa mayor, se muestra cómo usar PropVariantToInt32WithDefault para tener acceso a un valor LONG en un PROPVARIANT.

// IPropertyStore *ppropstore;
// Assume variable ppropstore is initialized and valid
PROPVARIANT propvar = {0};
HRESULT hr = ppropstore->GetValue(PKEY_FlagStatus, &propvar);
if (SUCCEEDED(hr))
{
     // PKEY_FlagStatus is expected to produce a VT_I4 or VT_EMPTY value.
     // The application developer decided to treat VT_EMPTY or invalid values as 0
     LONG iStatus = PropVariantToInt32WithDefault(propvar, 0);
     // iStatus is now 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 Búsqueda de escritorio de Windows (WDS) 3.0

Consulte también

InitPropVariantFromInt32

PropVariantChangeType

PropVariantToInt32

VariantToInt32