[C/CPP] Variant 타입 데이터

VARIANT형 데이터에 대한 정보

// parameter types: by value VTs
#define VTS_I2 "x02" // a 'short'
#define VTS_I4 "x03" // a 'long'
#define VTS_R4 "x04" // a 'float'
#define VTS_R8 "x05" // a 'double'
#define VTS_CY "x06" // a 'CY' or 'CY*'
#define VTS_DATE "x07" // a 'DATE'
#define VTS_WBSTR "x08" // an 'LPCOLESTR'
#define VTS_DISPATCH "x09" // an 'IDispatch*'
#define VTS_SCODE "x0A" // an 'SCODE'
#define VTS_BOOL "x0B" // a 'VARIANT_BOOL'
#define VTS_VARIANT "x0C" // a 'const VARIANT&' or 'VARIANT*'
#define VTS_UNKNOWN "x0D" // an 'IUnknown*'
#if defined(_UNICODE)
#define VTS_BSTR VTS_WBSTR// an 'LPCOLESTR'
#define VT_BSTRT VT_BSTR
#else
#define VTS_BSTR "x0E" // an 'LPCSTR'
#define VT_BSTRA 14
#define VT_BSTRT VT_BSTRA
#endif
#define VTS_I1 "x10" // a 'signed char'
#define VTS_UI1 "x11" // a 'BYTE'
#define VTS_UI2 "x12" // a 'WORD'
#define VTS_UI4 "x13" // a 'DWORD'
#define VTS_I8 "x14" // a 'LONGLONG'
#define VTS_UI8 "x15" // a 'ULONGLONG'
// parameter types: by reference VTs
#define VTS_PI2 "x42" // a 'short*'
#define VTS_PI4 "x43" // a 'long*'
#define VTS_PR4 "x44" // a 'float*'
#define VTS_PR8 "x45" // a 'double*'
#define VTS_PCY "x46" // a 'CY*'
#define VTS_PDATE "x47" // a 'DATE*'
#define VTS_PBSTR "x48" // a 'BSTR*'
#define VTS_PDISPATCH "x49" // an 'IDispatch**'
#define VTS_PSCODE "x4A" // an 'SCODE*'
#define VTS_PBOOL "x4B" // a 'VARIANT_BOOL*'
#define VTS_PVARIANT "x4C" // a 'VARIANT*'
#define VTS_PUNKNOWN "x4D" // an 'IUnknown**'
#define VTS_PI1 "x50" // a 'signed char*'
#define VTS_PUI1 "x51" // a 'BYTE*'
#define VTS_PUI2 "x52" // a 'WORD*'
#define VTS_PUI4 "x53" // a 'DWORD*'
#define VTS_PI8 "x54" // a 'LONGLONG*'
#define VTS_PUI8 "x55" // a 'ULONGLONG*'
// special VT_ and VTS_ values
#define VTS_NONE NULL // used for members with 0 params
#define VT_MFCVALUE 0xFFF // special value for DISPID_VALUE
#define VT_MFCBYREF 0x40 // indicates VT_BYREF type
#define VT_MFCMARKER 0xFF // delimits named parameters (INTERNAL USE)
// variant handling (use V_BSTRT when you have ANSI BSTRs, as in DAO)
#ifndef _UNICODE
#define V_BSTRT(b) (LPSTR)V_BSTR(b)
#else
#define V_BSTRT(b) V_BSTR(b)
#endif
/////////////////////////////////////////////////////////////////////////////
// OLE control parameter types
#define VTS_COLOR VTS_I4 // OLE_COLOR
#define VTS_XPOS_PIXELS VTS_I4 // OLE_XPOS_PIXELS
#define VTS_YPOS_PIXELS VTS_I4 // OLE_YPOS_PIXELS
#define VTS_XSIZE_PIXELS VTS_I4 // OLE_XSIZE_PIXELS
#define VTS_YSIZE_PIXELS VTS_I4 // OLE_YSIZE_PIXELS
#define VTS_XPOS_HIMETRIC VTS_I4 // OLE_XPOS_HIMETRIC
#define VTS_YPOS_HIMETRIC VTS_I4 // OLE_YPOS_HIMETRIC
#define VTS_XSIZE_HIMETRIC VTS_I4 // OLE_XSIZE_HIMETRIC
#define VTS_YSIZE_HIMETRIC VTS_I4 // OLE_YSIZE_HIMETRIC
#define VTS_TRISTATE VTS_I2 // OLE_TRISTATE
#define VTS_OPTEXCLUSIVE VTS_BOOL // OLE_OPTEXCLUSIVE
#define VTS_PCOLOR VTS_PI4 // OLE_COLOR*
#define VTS_PXPOS_PIXELS VTS_PI4 // OLE_XPOS_PIXELS*
#define VTS_PYPOS_PIXELS VTS_PI4 // OLE_YPOS_PIXELS*
#define VTS_PXSIZE_PIXELS VTS_PI4 // OLE_XSIZE_PIXELS*
#define VTS_PYSIZE_PIXELS VTS_PI4 // OLE_YSIZE_PIXELS*
#define VTS_PXPOS_HIMETRIC VTS_PI4 // OLE_XPOS_HIMETRIC*
#define VTS_PYPOS_HIMETRIC VTS_PI4 // OLE_YPOS_HIMETRIC*
#define VTS_PXSIZE_HIMETRIC VTS_PI4 // OLE_XSIZE_HIMETRIC*
#define VTS_PYSIZE_HIMETRIC VTS_PI4 // OLE_YSIZE_HIMETRIC*
#define VTS_PTRISTATE VTS_PI2 // OLE_TRISTATE*
#define VTS_POPTEXCLUSIVE VTS_PBOOL // OLE_OPTEXCLUSIVE*
#define VTS_FONT VTS_DISPATCH // IFontDispatch*
#define VTS_PICTURE VTS_DISPATCH // IPictureDispatch*
#define VTS_HANDLE VTS_I4 // OLE_HANDLE
#define VTS_PHANDLE VTS_PI4 // OLE_HANDLE*

게시됨

카테고리

작성자

태그:

댓글

댓글 남기기