Compartir a través de


Función PropVariantToInt32 (propvarutil.h)

Extrae el valor de la propiedad Int32 de una estructura PROPVARIANT . Si no se puede extraer ningún valor, se asigna un valor predeterminado.

Sintaxis

PSSTDAPI PropVariantToInt32(
  [in]  REFPROPVARIANT propvarIn,
  [out] LONG           *plRet
);

Parámetros

[in] propvarIn

Tipo: REFPROPVARIANT

Referencia a una estructura PROPVARIANT de origen.

[out] plRet

Tipo: LONG*

Cuando se devuelve esta función, contiene el valor extraído si existe uno; de lo contrario, 0.

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 se usa en lugares donde la aplicación que realiza la llamada espera que un PROPVARIANT contenga un valor Int32 . Por ejemplo, una aplicación que obtiene valores de un almacén de propiedades puede usarla para extraer de forma segura el valor Int32 de las propiedades Int32 .

Si el PROPVARIANT de origen tiene el tipo VT_I4, esta función auxiliar extrae el valor largo . De lo contrario, intenta convertir el valor de la estructura PROPVARIANT en un valor long. Si no es posible una conversión, PropVariantToInt32 devolverá un código de error y establecerá plRet en 0. Consulte PropVariantChangeType para obtener una lista de las posibles conversiones. Tenga en cuenta que VT_EMPTY se convierte correctamente en 0.

Ejemplos

// 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.

     // PropVariantToInt32 will convert VT_EMPTY to 0.

     INT32 iStatus;

     hr = PropVariantToInt32(propvar, &iStatus);

     if (SUCCEEDED(hr))

     {

             // iStatus is now valid

     }

     else

     {

             // iStatus is always 0

     }

     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

InitPropVariantFromInt32

PropVariantChangeType

PropVariantToInt32Vector

VariantToInt32