ADO学习(五)_variant_t类型

来源:互联网 发布:软件需求收集模板 编辑:程序博客网 时间:2024/05/29 11:01

Specifies the variant types.

Syntax

C++
Copy
enum VARENUM {  VT_EMPTY             = 0,   VT_NULL              = 1,   VT_I2                = 2,   VT_I4                = 3,   VT_R4                = 4,   VT_R8                = 5,   VT_CY                = 6,   VT_DATE              = 7,   VT_BSTR              = 8,   VT_DISPATCH          = 9,   VT_ERROR             = 10,   VT_BOOL              = 11,   VT_VARIANT           = 12,   VT_UNKNOWN           = 13,   VT_DECIMAL           = 14,   VT_I1                = 16,   VT_UI1               = 17,   VT_UI2               = 18,   VT_UI4               = 19,   VT_I8                = 20,   VT_UI8               = 21,   VT_INT               = 22,   VT_UINT              = 23,   VT_VOID              = 24,   VT_HRESULT           = 25,   VT_PTR               = 26,   VT_SAFEARRAY         = 27,   VT_CARRAY            = 28,   VT_USERDEFINED       = 29,   VT_LPSTR             = 30,   VT_LPWSTR            = 31,   VT_RECORD            = 36,   VT_INT_PTR           = 37,   VT_UINT_PTR          = 38,   VT_FILETIME          = 64,   VT_BLOB              = 65,   VT_STREAM            = 66,   VT_STORAGE           = 67,   VT_STREAMED_OBJECT   = 68,   VT_STORED_OBJECT     = 69,   VT_BLOB_OBJECT       = 70,   VT_CF                = 71,   VT_CLSID             = 72,   VT_VERSIONED_STREAM  = 73,   VT_BSTR_BLOB         = 0xfff,   VT_VECTOR            = 0x1000,   VT_ARRAY             = 0x2000,   VT_BYREF             = 0x4000 };

Constants

VT_EMPTY

Not specified.

VT_NULL

Null.

VT_I2

A 2-byte integer.

VT_I4

A 4-byte integer.

VT_R4

A 4-byte real.

VT_R8

An 8-byte real.

VT_CY

Currency.

VT_DATE

A date.

VT_BSTR

A string.

VT_DISPATCH

An IDispatch pointer.

VT_ERROR

An SCODE value.

VT_BOOL

A Boolean value. True is -1 and false is 0.

VT_VARIANT

A variant pointer.

VT_UNKNOWN

An IUnknown pointer.

VT_DECIMAL

A 16-byte fixed-pointer value.

VT_I1

A character.

VT_UI1

An unsigned character.

VT_UI2

An unsigned short.

VT_UI4

An unsigned long.

VT_I8

A 64-bit integer.

VT_UI8

A 64-bit unsigned integer.

VT_INT

An integer.

VT_UINT

An unsigned integer.

VT_VOID

A C-style void.

VT_HRESULT

An HRESULT value.

VT_PTR

A pointer type.

VT_SAFEARRAY

A safe array. Use VT_ARRAY in VARIANT.

VT_CARRAY

A C-style array.

VT_USERDEFINED

A user-defined type.

VT_LPSTR

A null-terminated string.

VT_LPWSTR

A wide null-terminated string.

VT_RECORD

A user-defined type.

VT_INT_PTR

A signed machine register size width.

VT_UINT_PTR

An unsigned machine register size width.

VT_FILETIME

A FILETIME value.

VT_BLOB

Length-prefixed bytes.

VT_STREAM

The name of the stream follows.

VT_STORAGE

The name of the storage follows.

VT_STREAMED_OBJECT

The stream contains an object.

VT_STORED_OBJECT

The storage contains an object.

VT_BLOB_OBJECT

The blob contains an object.

VT_CF

A clipboard format.

VT_CLSID

A class ID.

VT_VERSIONED_STREAM

A stream with a GUID version.

VT_BSTR_BLOB

Reserved.

VT_VECTOR

A simple counted array.

VT_ARRAY

A SAFEARRAY pointer.

VT_BYREF

A void pointer for local use.


_variant_t是一个类,它封装了VARIANT类型,而VARIANT是一个万能类型,可以存放任意类型的数据(字符型、日期型、数值型等等);

_bstr_t也是一个类,它封装了BSTR类型,BSTR是一个字符串指针,也即可以存放字符串。

这两种类型是COM编程中用得比较多的,这也是为什么要封装成类,来提高其操作的便捷性。

BSTR是UNICODE字符串指针,并且字符串前面有四个字节的内存空间用来存放字符串的长度的;
至于VARIANT,可以看MSDN,是个结构体(里面包含联合体)通过vt指示当前存储的是哪种类型的变量。


0 0