Compartir a través de


Función PropVariantToUInt16WithDefault (propvarutil.h)

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

Sintaxis

PSSTDAPI_(USHORT) PropVariantToUInt16WithDefault(
  [in] REFPROPVARIANT propvarIn,
  [in] USHORT         uiDefault
);

Parámetros

[in] propvarIn

Tipo: REFPROPVARIANT

Referencia a una estructura PROPVARIANT de origen.

[in] uiDefault

Tipo: USHORT

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

Valor devuelto

Tipo: unsigned short

Devuelve el valor corto sin signo 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 corto sin signo . Por ejemplo, una aplicación que obtiene valores de un almacén de propiedades puede usarla para extraer de forma segura el valor corto sin signo de las propiedades UInt16.

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

Ejemplos

En el ejemplo siguiente, para incluirse como parte de un programa más grande, se muestra cómo usar PropVariantToUInt16 para tener acceso a un valor corto sin signo en un PROPVARIANT.

// IPropertyStore *ppropstore;

// Assume variable ppropstore is initialized and valid

PROPVARIANT propvar = {0};

HRESULT hr = ppropstore->GetValue(PKEY_FlagColor, &propvar);

if (SUCCEEDED(hr))

{

     // PKEY_FlagColor is expected to produce a VT_UI2 or VT_EMPTY value.

     // PropVariantToInt32 will convert VT_EMPTY to 0.

     USHORT uColor;

     hr = PropVariantToUInt32(propvar, & uColor);

     if (SUCCEEDED(hr))

     {

             // uColor is now valid

     }

     else

     {

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

InitPropVariantFromUInt16

PropVariantChangeType

PropVariantToUInt16Vector

VariantToUInt16