Structure VARIANT (oaidl.h)

VARIANTARG décrit les arguments passés dans DISPPARAMS et VARIANT pour spécifier les données variant qui ne peuvent pas être transmises par référence.

Lorsqu’une variante fait référence à une autre variante à l’aide de la VT_VARIANT | VT_BYREF vartype, la variante à laquelle il est fait référence ne peut pas également être de type VT_VARIANT | VT_BYREF. Les VARIANT peuvent être passés par valeur, même si VARIANTARGs ne peut pas.

Syntaxe

typedef struct tagVARIANT {
  union {
    struct {
      VARTYPE vt;
      WORD    wReserved1;
      WORD    wReserved2;
      WORD    wReserved3;
      union {
        LONGLONG     llVal;
        LONG         lVal;
        BYTE         bVal;
        SHORT        iVal;
        FLOAT        fltVal;
        DOUBLE       dblVal;
        VARIANT_BOOL boolVal;
        VARIANT_BOOL __OBSOLETE__VARIANT_BOOL;
        SCODE        scode;
        CY           cyVal;
        DATE         date;
        BSTR         bstrVal;
        IUnknown     *punkVal;
        IDispatch    *pdispVal;
        SAFEARRAY    *parray;
        BYTE         *pbVal;
        SHORT        *piVal;
        LONG         *plVal;
        LONGLONG     *pllVal;
        FLOAT        *pfltVal;
        DOUBLE       *pdblVal;
        VARIANT_BOOL *pboolVal;
        VARIANT_BOOL *__OBSOLETE__VARIANT_PBOOL;
        SCODE        *pscode;
        CY           *pcyVal;
        DATE         *pdate;
        BSTR         *pbstrVal;
        IUnknown     **ppunkVal;
        IDispatch    **ppdispVal;
        SAFEARRAY    **pparray;
        VARIANT      *pvarVal;
        PVOID        byref;
        CHAR         cVal;
        USHORT       uiVal;
        ULONG        ulVal;
        ULONGLONG    ullVal;
        INT          intVal;
        UINT         uintVal;
        DECIMAL      *pdecVal;
        CHAR         *pcVal;
        USHORT       *puiVal;
        ULONG        *pulVal;
        ULONGLONG    *pullVal;
        INT          *pintVal;
        UINT         *puintVal;
        struct {
          PVOID       pvRecord;
          IRecordInfo *pRecInfo;
        } __VARIANT_NAME_4;
      } __VARIANT_NAME_3;
    } __VARIANT_NAME_2;
    DECIMAL decVal;
  } __VARIANT_NAME_1;
} VARIANT;

Membres

__VARIANT_NAME_1

__VARIANT_NAME_1.__VARIANT_NAME_2

Type : struct __tagVARIANT

__VARIANT_NAME_1.__VARIANT_NAME_2.vt

Type : VARTYPE Type de données dans l’union.

__VARIANT_NAME_1.__VARIANT_NAME_2.wReserved1

Type : WORD Réservés au.

__VARIANT_NAME_1.__VARIANT_NAME_2.wReserved2

Type : WORD Réservés au.

__VARIANT_NAME_1.__VARIANT_NAME_2.wReserved3

Type : WORD Réservés au.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3

__VARIANT_NAME_2.__VARIANT_NAME_3.bool

Type : _VARIANT_BOOL Valeur booléenne 16 bits. Une valeur de 0xFFFF (tous les bits 1) indique true ; la valeur 0 (tous les bits 0) indique false. Aucune autre valeur n’est valide.

__VARIANT_NAME_2.__VARIANT_NAME_3.pbool

Type : _VARIANT_BOOL* Référence à une valeur booléenne 16 bits.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.llVal

Type : LONGLONG Valeur entière de 8 octets.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.lVal

Type : LONG Valeur entière de 4 octets.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.bVal

Type : BYTE Caractère non signé de 1 octet.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.iVal

Type : SHORT Valeur entière de 2 octets.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.fltVal

Type : FLOAT Valeur réelle de 4 octets.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.dblVal

Type : DOUBLE Valeur réelle de 8 octets.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.boolVal

Type : VARIANT_BOOL Valeur booléenne 16 bits. Une valeur de 0xFFFF (tous les bits 1) indique true ; la valeur 0 (tous les bits 0) indique false. Aucune autre valeur n’est valide.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__OBSOLETE__VARIANT_BOOL

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.scode

Type : SCODE Valeur SCODE.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.cyVal

Type : CY Valeur monétaire.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.date

Type : DATE Valeur de date et d’heure. Les dates sont représentées sous forme de nombres à double précision, où minuit, le 1er janvier 1900 est 2.0, le 2 janvier 1900 est 3.0, et ainsi de suite.

La date peut être convertie vers et à partir d’une représentation MS-DOS à l’aide de VariantTimeToDosDateTime.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.bstrVal

Type : BSTR Valeur de chaîne.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.punkVal

Type : IUnknown* Pointeur vers un objet qui implémente l’interface IUnknown .

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdispVal

Type : IDispatch* Un pointeur vers un objet a été spécifié.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.parray

Type : SAFEARRAY* Descripteur de tableau sécurisé, qui décrit les dimensions, la taille et l’emplacement en mémoire du tableau.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pbVal

Type : BYTE* Référence à un caractère de 1 octet non signé.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.piVal

Type : SHORT* Référence à une valeur entière de 2 octets.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.plVal

Type : LONG* Référence à une valeur entière de 4 octets.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pllVal

Type : LONGLONG* Référence à une valeur entière de 8 octets.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pfltVal

Type : FLOAT* Référence à une valeur réelle de 4 octets.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdblVal

Type : DOUBLE* Référence à une valeur réelle de 8 octets.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pboolVal

Type : VARIANT_BOOL* Référence à une valeur booléenne 16 bits.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__OBSOLETE__VARIANT_PBOOL

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pscode

Type : SCODE* Référence à une valeur SCODE.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pcyVal

Type : CY* Référence à une valeur monétaire.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdate

Type : DATE* Référence à une valeur de date et d’heure. Les dates sont représentées sous forme de nombres à double précision, où minuit, le 1er janvier 1900 est 2.0, le 2 janvier 1900 est 3.0, et ainsi de suite.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pbstrVal

Type : BSTR* Référence à une valeur de chaîne.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ppunkVal

Type : IUnknown** Référence à un pointeur d’interface IUnknown .

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ppdispVal

Type : IDispatch** Référence à un pointeur d’objet.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pparray

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pvarVal

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.byref

Type : PVOID Valeur générique.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.cVal

Type : CHAR Valeur de caractère de 1 octet.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.uiVal

Type : USHORT Valeur entière non signée de 2 octets.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ulVal

Type : ULONG Valeur entière non signée de 4 octets.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ullVal

Type : ULONGLONG Valeur entière non signée de 8 octets.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.intVal

Type : INT Valeur entière.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.uintVal

Type : UINT Valeur entière non signée.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdecVal

Type : DECIMAL* Valeur décimale, qui est stockée sous forme d’entiers non signés 96 bits (12 octets) mis à l’échelle par une puissance variable de 10.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pcVal

Type : CHAR* Référence à une valeur de caractère de 1 octet.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.puiVal

Type : USHORT* Référence à une valeur entière non signée de 2 octets.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pulVal

Type : ULONG* Référence à une valeur entière de 4 octets non signée.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pullVal

Type : ULONGLONG* Référence à une valeur entière non signée de 8 octets.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pintVal

Type : INT* Référence à une valeur entière.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.puintVal

Type : UINT* Référence à une valeur entière non signée.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__VARIANT_NAME_4

Type : struct __tagBRECORD

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__VARIANT_NAME_4.pvRecord

Type : PVOID Référence à un enregistrement de base de données.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__VARIANT_NAME_4.pRecInfo

Type : IRecordInfo* Référence à un UDT.

__VARIANT_NAME_1.decVal

Type : DECIMAL Valeur décimale.

Configuration requise

   
En-tête oaidl.h