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 passées par référence.

Lorsqu’une variante fait référence à une autre variante à l’aide de l’VT_VARIANT | VT_BYREF vartype, la variante référencée ne peut pas également être de type VT_VARIANT | VT_BYREF. Les VARIANTs peuvent être passés par valeur, même si LES VARIANTARG ne peuvent 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;

Members

__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é.

__VARIANT_NAME_1.__VARIANT_NAME_2.wReserved2

Type : WORD

Réservé.

__VARIANT_NAME_1.__VARIANT_NAME_2.wReserved3

Type : WORD

Réservé.

__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, 1er janvier 1900 est 2.0, le 2 janvier 1900 est 3.0, et ainsi de suite.

La date peut être convertie en 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, 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 de 2 octets non signée.

__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 de 2 octets non signée.

__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 de 8 octets non signée.

__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.

Spécifications

Requirement Valeur
Header oaidl.h