EN
Ce contenu n’est pas disponible dans votre langue. Voici la version anglaise.

PropVariantToInt64Vector function

Extracts data from a PROPVARIANT structure into an Int64 vector.

Syntax


HRESULT PropVariantToInt64Vector(
  _In_  REFPROPVARIANT propvar,
  _Out_ LONGLONG       *prgn,
  _In_  ULONG          crgn,
  _Out_ ULONG          *pcElem
);

Parameters

propvar [in]

Type: REFPROPVARIANT

Reference to a source PROPVARIANT structure.

prgn [out]

Type: LONGLONG*

Points to a buffer containing crgn   LONGLONG values. When this function returns, the buffer has been initialized with pcElem  LONGLONG elements extracted from the source PROPVARIANT.

crgn [in]

Type: ULONG

Size of the buffer pointed to by prgn in elements.

pcElem [out]

Type: ULONG*

When this function returns, contains the count of LONGLONG values extracted from the source PROPVARIANT structure.

Return value

Type: HRESULT

This function can return one of these values.

Return codeDescription
S_OK

Returns S_OK if successful, or an error value otherwise.

TYPE_E_BUFFERTOOSMALL

The source PROPVARIANT contained more than crgn values. The buffer pointed to by prgn.

E_INVALIDARG

The PROPVARIANT was not of the appropriate type

 

Remarks

This helper function is used in places where the calling application expects a PROPVARIANT to hold an vector of LONGLONG values with a fixed number of elements.

If the source PROPVARIANT has type VT_VECTOR | VT_I8 or VT_ARRAY | VT_I8, this helper function extracts up to crgn   LONGLONG values and places them into the buffer pointed to by prgn. If the PROPVARIANT contains more elements than will fit into the prgn buffer, this function returns an error and sets pcElem to 0.

Examples

The following example, to be included as part of a larger program, demonstrates how to use PropVariantToInt64Vector to access an Int64 vector value in a PROPVARIANT.


// PROPVARIANT propvar;
// Assume the variable propvar is initialized and valid
LONGLONG rgLongs[4]; // The application is expecting propvar to hold 4 LONGLONGs in a vector
ULONG cElems;
HRESULT hr = PropVariantToInt64Vector(propvar, rgLongs, ARRAYSIZE(rgLongs), &cElems);
if (SUCCEEDED(hr))
{
     if (cElems == ARRAYSIZE(rgLongs))
     {
         // The application got 4 LONGLONGs which are now stored in rgLongs
     }
     else
     {
         // The application got cElems which are stored in the first cElems elements of rgLongs
     }
}

Requirements

Minimum supported client

Windows XP with SP2, Windows Vista [desktop apps only]

Minimum supported server

Windows Server 2003 with SP1 [desktop apps only]

Redistributable

Windows Desktop Search (WDS) 3.0

Header

Propvarutil.h

Library

Propsys.lib

DLL

Propsys.dll (version 6.0 or later)

See also

InitPropVariantFromInt64Vector
PropVariantToInt64
PropVariantGetInt64Elem
PropVariantToInt64VectorAlloc
VariantToInt64Array

 

 

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft