_variant_t 类型的使用
_variant_t 类型是对 VARIANT 数据类型进行了封装,所以比 VARIANT 类型更加好用。凡是需要 VARIANT 类型的地方,我们都可以用 _variant_t 类型代替之。
1. 类型初始化(及初始化为 VT_EMPTY )
1) Void VariantInit(VARIANTARG FAR* pvarg)
例如:
l _variant_t va; VariantInit(&va);
l VARIANT va; VariantInit(&va);
2) _variant_t 的构造函数 _variant_t()
2. 清空数据
VariantClear() 将数据清空,并且设置为 VT_EMPTY
3. 数据类型转换
1) UINT/Int/BOOL/bool/short/unsigned short/long/unsigned long/__int64/unsigned__int64/float/double/wchar*/char*/ _bstr_t/BYTE/VARIANT 类型转成 _variant_t 类型
l T value;
_variant_t va = _variant_t(value);
2) _variant_t 类型转成 UINT/int/BOOL/bool/short/unsigned short/long/unsigned long/__int64/unsigned __int64/float/double/_bstr_t/BYTE/VARIANT 等类型
l _variant_t va;
T va = (T)va;
3) _variant_t 类型转成 LPTSTR 类型
l _variant_t va;
LPTSTR lpStr = new TCHAR[100];
Lstrcpyn(lpStr, (_bstr_t)va, 100);
4) _variant_t 类型转成 CString 类型
l _variant_t va;
CString strStr = CString((LPCSTR)(_bstr_t)va);