Partager via


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