Variant
오토메이션 호환 타입들의 Union
헬퍼함수
VariantChangeType(Ex)
VariantClear
VariantCopy
VariantCopyInd
VariantInit
ATL 클래스
CComVariant
BSTR
문자열 길이를 접두어로 포함하는 문자열
헬퍼함수
SysAllocString
SysAllocStringByteLen
SysAllocStringLen
SysFreeString
SysReAllocString
SysReAllocStringLen
SysStringByteLen
SysStringLen
ATL클래스
CComBSTR
SafeArray
안전하게 다룰 수 있는 배열
헬퍼함수
SafeArrayAccessData
SafeArrayAllocData
SafeArrayAllocDescriptor(Ex)
SafeArrayCopy
SafeArrayCopyData
SafeArrayCreate(Ex)
SafeArrayCreateVector(Ex)
SafeArrayDestory
SafeArrayDestroyData
SafeArrayDestoryDescriptor
SafeArrayGetDim
SafeArrayGetElement
SafeArrayGetElemsize
SafeArrayGetLBound
SafeArrayGetUBound
SafeArrayLock
SafeArrayPtrOfIndex
SafeArrayPutElement
SafeArrayRedim
SafeArrayUnaccessData
SafeArrayUnlock
SafeArraySetRecordInfo
SafeArrayGetRecordInfo
SafeArraySetIID
SafeArrayGetIID
SafeArrayGetVartype
ATL클래스
CComSafeArray
CComSafeArrayBound
사용자 정의 타입
user-defined type, UDT
구조체에 GUID를 할당 하기 위해 typedef 이용
typedef [ uuid([UUID적음])]
struct myDataType {
int x;
int y;
} myDataType;
Variant 타입의 VT_RECORD
IRecordInfo 인터페이스 구현
GetRecordInfoFromTypeInfo : 타입정보에서 서술한 UDT의 RecordInfo 얻음
GetRecordInfoFromGuids : uuid 를 통해 UDT의 RecordInfo 얻음
IRecordInfo 포인터를 얻음
IRecordInfo * precordInfo = 0;
hr = GetRecordInfoFromTypeInfo(pTypeInfo, &pRecordInfo);