다음을 통해 공유


VARIANT 구조체(oaidl.h)

VARIANTARG 는 DISPPARAMS 내에 전달된 인수와 참조로 전달할 수 없는 변형 데이터를 지정하는 VARIANT 를 설명합니다.

변형이 VT_VARIANT 사용하여 다른 변형을 참조하는 경우 | vartype을 VT_BYREF 참조되는 변형은 |VT_VARIANT 형식일 수도 없습니다. VT_BYREF. VARIANTARG를 사용할 수 없더라도 VARIANT를 값으로 전달할 수 있습니다.

문법

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;

구성원

__VARIANT_NAME_1

__VARIANT_NAME_1.__VARIANT_NAME_2

형식: 구조체 __tagVARIANT

__VARIANT_NAME_1.__VARIANT_NAME_2.vt

형식: VARTYPE

공용 구조체의 데이터 형식입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.wReserved1

형식: WORD

예약되었습니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.wReserved2

형식: WORD

예약되었습니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.wReserved3

형식: WORD

예약되었습니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3

__VARIANT_NAME_2.__VARIANT_NAME_3.bool

형식: _VARIANT_BOOL

16비트 부울 값입니다. 0xFFFF 값(모든 비트 1)은 true를 나타냅니다. 값이 0(모든 비트 0)이면 false를 나타냅니다. 다른 값은 유효하지 않습니다.

__VARIANT_NAME_2.__VARIANT_NAME_3.pbool

형식: _VARIANT_BOOL*

16비트 부울 값에 대한 참조입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.llVal

형식: LONGLONG

8 바이트 정수 값입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.lVal

형식: LONG

4 바이트 정수 값입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.bVal

형식: BYTE

부호 없는 1 바이트 문자입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.iVal

형식: SHORT

2 바이트 정수 값입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.fltVal

형식: FLOAT

4 바이트 실제 값입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.dblVal

형식: DOUBLE

8 바이트 실제 값입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.boolVal

형식: VARIANT_BOOL

16비트 부울 값입니다. 0xFFFF 값(모든 비트 1)은 true를 나타냅니다. 값이 0(모든 비트 0)이면 false를 나타냅니다. 다른 값은 유효하지 않습니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__OBSOLETE__VARIANT_BOOL

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.scode

형식: SCODE

SCODE 값입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.cyVal

형식: CY

통화 값입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.date

형식: DATE

날짜 및 시간 값입니다. 날짜는 배정밀도 숫자로 표시되며, 1900년 1월 1일 자정은 2.0, 1900년 1월 2일은 3.0 등입니다.

이 날짜는 VariantTimeToDosDateTime을 사용하여 MS-DOS 표현으로 변환할 수 있습니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.bstrVal

형식: BSTR

문자열 값입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.punkVal

형식: IUnknown*

IUnknown 인터페이스를 구현하는 개체에 대한 포인터입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdispVal

형식: IDispatch*

개체에 대한 포인터가 지정되었습니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.parray

형식: SAFEARRAY*

배열의 차원, 크기 및 메모리 내 위치를 설명하는 안전한 배열 설명자입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pbVal

형식: BYTE*

부호 없는 1 바이트 문자에 대한 참조입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.piVal

형식: SHORT*

2 바이트 정수 값에 대한 참조입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.plVal

형식: LONG*

4 바이트 정수 값에 대한 참조입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pllVal

형식: LONGLONG*

8 바이트 정수 값에 대한 참조입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pfltVal

형식: FLOAT*

4 바이트 실제 값에 대한 참조입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdblVal

형식: DOUBLE*

8 바이트 실제 값에 대한 참조입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pboolVal

형식: VARIANT_BOOL*

16비트 부울 값에 대한 참조입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__OBSOLETE__VARIANT_PBOOL

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pscode

형식: SCODE*

SCODE 값에 대한 참조입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pcyVal

형식: CY*

통화 값에 대한 참조입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdate

형식: DATE*

날짜 및 시간 값에 대한 참조입니다. 날짜는 배정밀도 숫자로 표시되며, 1900년 1월 1일 자정은 2.0, 1900년 1월 2일은 3.0 등입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pbstrVal

형식: BSTR*

문자열 값에 대한 참조입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ppunkVal

형식: IUnknown**

IUnknown 인터페이스 포인터에 대한 참조입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ppdispVal

형식: IDispatch**

개체 포인터에 대한 참조입니다.

__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

형식: PVOID

제네릭 값입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.cVal

형식: CHAR

1 바이트 문자 값입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.uiVal

형식: USHORT

부호 없는 2 바이트 정수 값입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ulVal

형식: ULONG

부호 없는 4 바이트 정수 값입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ullVal

형식: ULONGLONG

부호 없는 8 바이트 정수 값입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.intVal

형식: INT

정수 값입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.uintVal

형식: UINT

부호 없는 정수 값입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdecVal

형식: DECIMAL*

96비트(12비트) 부호 없는 정수로 10의 가변 전력으로 크기가 조정되는 10진수 값입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pcVal

형식: CHAR*

1 바이트 문자 값에 대한 참조입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.puiVal

형식: USHORT*

부호 없는 2 바이트 정수 값에 대한 참조입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pulVal

형식: ULONG*

부호 없는 4 바이트 정수 값에 대한 참조입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pullVal

형식: ULONGLONG*

부호 없는 8 바이트 정수 값에 대한 참조입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pintVal

형식: INT*

정수 값에 대한 참조입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.puintVal

형식: UINT*

부호 없는 정수 값에 대한 참조입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__VARIANT_NAME_4

형식: 구조체 __tagBRECORD

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__VARIANT_NAME_4.pvRecord

형식: PVOID

데이터베이스 레코드에 대한 참조입니다.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__VARIANT_NAME_4.pRecInfo

형식: IRecordInfo*

UDT에 대한 참조입니다.

__VARIANT_NAME_1.decVal

형식: DECIMAL

10진수 값입니다.

요구 사항

요구 사항 가치
Header oaidl.h