Condividi tramite


Funzione InitVariantFromVariantArrayElem (propvarutil.h)

Inizializza una struttura VARIANT con un valore archiviato in un'altra struttura VARIANT .

Sintassi

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

Parametri

[in] varIn

Tipo: REFVARIANT

Riferimento alla struttura VARIANT di origine.

[in] iElem

Tipo: ULONG

Indice di uno degli elementi della struttura VARIANT di origine.

[out] pvar

Tipo: VARIANT*

Quando questa funzione restituisce, contiene la struttura VARIANT inizializzata.

Valore restituito

Tipo: HRESULT

Se questa funzione ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

Questa funzione helper funziona per le strutture VARIANT dei tipi seguenti:

  • VT_BSTR
  • VT_BOOL
  • VT_I2
  • VT_I4
  • VT_I8
  • VT_U12
  • VT_U14
  • VT_U18
  • VT_DATE
  • VT_ARRAY | (uno qualsiasi di VT_BSTR, VT_BOOL, VT_I2, VT_I4, VT_I8, VT_U12, VT_U14, VT_U18, VT_DATE)
I tipi aggiuntivi possono essere supportati in futuro.

Questa funzione estrae un singolo valore dalla struttura VARIANT di origine e usa tale valore per inizializzare la struttura VARIANT di output. L'applicazione chiamante deve usare VariantClear per liberare variantia cui fa riferimento pvar quando non è più necessario.

Se l'origine VARIANT è una matrice, iElem deve essere minore del numero di elementi nella matrice.

Se l'origine VARIANT ha un singolo valore, iElem deve essere 0.

Se l'origine VARIANT è vuota, questa funzione restituisce sempre un codice di errore.

È possibile usare VariantGetElementCount per ottenere il numero di elementi nella matrice o nella matrice.

Esempio

Nell'esempio seguente, da includere come parte di un programma più ampio, viene illustrato come usare InitVariantFromVariantArrayElem in un'istruzione di iterazione per accedere ai valori in una variante.

// 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);
    }
}

Requisiti

Requisito Valore
Client minimo supportato Windows XP con SP2, Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2003 con SP1 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione propvarutil.h
Libreria Propsys.lib
DLL Propsys.dll (versione 6.0 o successiva)
Componente ridistribuibile Windows Desktop Search (WDS) 3.0

Vedi anche

InitPropVariantFromPropVariantVectorElem

VariantGetElem