您现在的位置是:首页 > Javascript
当前栏目
com组件中的数据类型
2023-04-18 12:42:15 时间
_variant_t
封装VARIANT类型
struct tagVARIANT {
union {
struct __tagVARIANT {
VARTYPE vt;
WORD wReserved1;
WORD wReserved2;
WORD wReserved3;
union {
ULONGLONG ullVal; /* VT_UI8 */
LONGLONG llVal; /* VT_I8 */
LONG lVal; /* VT_I4 */
BYTE bVal; /* VT_UI1 */
SHORT iVal; /* VT_I2 */
FLOAT fltVal; /* VT_R4 */
DOUBLE dblVal; /* VT_R8 */
VARIANT_BOOL boolVal; /* VT_BOOL */
_VARIANT_BOOL bool; /* (obsolete) */
SCODE scode; /* VT_ERROR */
CY cyVal; /* VT_CY */
DATE date; /* VT_DATE */
BSTR bstrVal; /* VT_BSTR */
IUnknown * punkVal; /* VT_UNKNOWN */
IDispatch * pdispVal; /* VT_DISPATCH */
SAFEARRAY * parray; /* VT_ARRAY */
BYTE * pbVal; /* VT_BYREF|VT_UI1 */
SHORT * piVal; /* VT_BYREF|VT_I2 */
LONG * plVal; /* VT_BYREF|VT_I4 */
LONGLONG * pllVal; /* VT_BYREF|VT_I8 */
FLOAT * pfltVal; /* VT_BYREF|VT_R4 */
DOUBLE * pdblVal; /* VT_BYREF|VT_R8 */
VARIANT_BOOL *pboolVal; /* VT_BYREF|VT_BOOL */
_VARIANT_BOOL *pbool; /* (obsolete) */
SCODE * pscode; /* VT_BYREF|VT_ERROR */
CY * pcyVal; /* VT_BYREF|VT_CY */
DATE * pdate; /* VT_BYREF|VT_DATE */
BSTR * pbstrVal; /* VT_BYREF|VT_BSTR */
IUnknown ** ppunkVal; /* VT_BYREF|VT_UNKNOWN */
IDispatch ** ppdispVal; /* VT_BYREF|VT_DISPATCH */
SAFEARRAY ** pparray; /* VT_BYREF|VT_ARRAY */
VARIANT * pvarVal; /* VT_BYREF|VT_VARIANT */
PVOID byref; /* Generic ByRef */
CHAR cVal; /* VT_I1 */
USHORT uiVal; /* VT_UI2 */
ULONG ulVal; /* VT_UI4 */
INT intVal; /* VT_INT */
UINT uintVal; /* VT_UINT */
DECIMAL * pdecVal; /* VT_BYREF|VT_DECIMAL */
CHAR * pcVal; /* VT_BYREF|VT_I1 */
USHORT * puiVal; /* VT_BYREF|VT_UI2 */
ULONG * pulVal; /* VT_BYREF|VT_UI4 */
ULONGLONG * pullVal; /* VT_BYREF|VT_UI8 */
INT * pintVal; /* VT_BYREF|VT_INT */
UINT * puintVal; /* VT_BYREF|VT_UINT */
struct __tagBRECORD {
PVOID pvRecord;
IRecordInfo * pRecInfo;
} __VARIANT_NAME_4; /* VT_RECORD */
} __VARIANT_NAME_3;
} __VARIANT_NAME_2;
DECIMAL decVal;
} __VARIANT_NAME_1;
};
VARIANT结构中vt表示类型,而_variant_t构造如下:
_variant_t(const VARIANT& varSrc) throw(_com_error);
_variant_t(const VARIANT* pSrc) throw(_com_error);
_variant_t(const _variant_t& varSrc) throw(_com_error);
_variant_t(VARIANT& varSrc, bool fCopy) throw(_com_error); // Attach VARIANT if !fCopy
_variant_t(short sSrc, VARTYPE vtSrc = VT_I2) throw(_com_error); // Creates a VT_I2, or a VT_BOOL
_variant_t(long lSrc, VARTYPE vtSrc = VT_I4) throw(_com_error); // Creates a VT_I4, a VT_ERROR, or a VT_BOOL
_variant_t(float fltSrc) throw(); // Creates a VT_R4
...
可以转换long为_variant_t,但是没有int的转换函数,所以很多像ado函数不接受常量,需要强转long类型
_RecordsetPtr record;
record->GetCollect((long)0);
_bstr_t
封装BSTR类型,通过构造转换类型,可以接收char*
相关文章
- 界面UI即将大改!Windows1021H2最新预览版抢先看
- 微软正在将Windows 10任务栏从Explorer.exe进程中移出
- HarmonyOS APP组件分享(四)
- 流畅度大提升!微软对Windows 10任务栏调整:UI也要变样
- IETF 正式弃用 TLS 1.0 和 TLS 1.1
- Firefox 将采取新的 referrer 策略
- HarmonyOSAPP组件分享(三)
- SpringBoot集成Sentinel实现接口流量控制
- HarmonyOS三方件开发指南(14)-Glide组件功能介绍
- 大象的崛起!Hadoop七年发展风雨录
- HarmonyOSAPP组件分享(二)
- HarmonyOS APP组件分享(一)
- Flex4beta的Spark布局特性解析
- 鸿蒙第三方组件*SwipeCaptcha滑动拼图验证组件
- 陪了大家20多年的技术要被干掉了 你以后看到的广告会变少吗?
- Windows Terminal 1.7预览版发布:改进窗口管理 优化设置UI
- 提前享用Windows10新UI?这Windows10魔改工具颜值爆表
- 微软计划合并 Windows10 累积和服务堆栈更新:减少每月 bug 数量,避免更新失败
- Windows 10 21H2新UI抢先看:浮动开始菜单 启用圆角边缘
- Windows10老UI实在忍无可忍?颠覆体验的文件管理器