Compartir a través de


Función InitVariantFromVariantArrayElem (propvarutil.h)

Inicializa una estructura VARIANT con un valor almacenado en otra estructura VARIANT .

Sintaxis

PSSTDAPI InitVariantFromVariantArrayElem(
  [in]  REFVARIANT varIn,
  [in]  ULONG      iElem,
  [out] VARIANT    *pvar
);

Parámetros

[in] varIn

Tipo: REFVARIANT

Referencia a la estructura VARIANT de origen.

[in] iElem

Tipo: ULONG

Índice de uno de los elementos de estructura VARIANT de origen.

[out] pvar

Tipo: VARIANT*

Cuando esta función devuelve , contiene la estructura VARIANT inicializada.

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 funciona para estructuras VARIANT de los siguientes tipos:

  • VT_BSTR
  • VT_BOOL
  • VT_I2
  • VT_I4
  • VT_I8
  • VT_U12
  • VT_U14
  • VT_U18
  • VT_DATE
  • VT_ARRAY | (cualquiera de VT_BSTR, VT_BOOL, VT_I2, VT_I4, VT_I8, VT_U12, VT_U14, VT_U18, VT_DATE)
Es posible que se admita más tipos en el futuro.

Esta función extrae un valor único de la estructura VARIANT de origen y usa ese valor para inicializar la estructura VARIANT de salida. La aplicación que realiza la llamada debe usar VariantClear para liberar la VARIANTE a la que hace referencia pvar cuando ya no se necesita.

Si el valor VARIANT de origen es una matriz, iElem debe ser menor que el número de elementos de la matriz.

Si el valor VARIANT de origen tiene un valor único, iElem debe ser 0.

Si el valor VARIANT de origen está vacío, esta función siempre devuelve un código de error.

Puede usar VariantGetElementCount para obtener el número de elementos de la matriz o matriz.

Ejemplos

En el ejemplo siguiente, para incluirse como parte de un programa mayor, se muestra cómo usar InitVariantFromVariantArrayElem en una instrucción de iteración para tener acceso a los valores de un variant.

// VARIANT var;
// Assume var is initialized and valid.
UINT cElem = VariantGetElementCount(var);
HRESULT hr = <mark type="const">S_OK</mark>;

for (UINT iElem = 0; SUCCEEDED(hr) && iElem < cElem; iElem ++)
{
    VARIANT varElem = {0};

    hr = InitVariantFromVariantArrayElem(var, iElem, &varElem);

    if (SUCCEEDED(hr))
    {
        // varElem is now valid.
        VariantClear(&varElem);
    }
}

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

InitPropVariantFromPropVariantVectorElem

VariantGetElem