CComVariant类封装了VARIANT类型,主要的操作方法有:
HRESULT Attach(VARIANT *pSrc); //清除当前对象的VARAINT成员变量,然后将pSrc赋值到该对象的VARIANT成员变量,设置变量的类型为VT_EMPTY
HRESULT ChangeType(VARTYPE vtNew,const VARIANT* pSrc = NULL); //vtNew就是CComVariant对象的新类型,pSrc就要要被转换的VARIANT变量,如果该参数为NULL,则表示默认为该对象。
HRESULT Clear(); //清除CComVariant对象
HRESULT Copy(const VARIANT* pSrc); //先释放CComVariant对象,然后将pSrc拷贝到VARIANT成员变量
HRESULT CopyTo(BSTR *pstrDest); //将CComVariant对象拷贝给pstrDest
HRESULT Detach(VARIANT* pDest); //将CComVariant对象拷贝给pDest,然后释放该对象,并将该对象类型设置为VT_EMPTY
ULONG GetSize()const; //返回该CComVariant对象大小,如果是BSTR则返回其长度,否则就是sizeof(VARTYPE)
HRESULT ReadFromStream(IStream* pStream);
HRESULT WriteToStream(IStream* pStream);
template<typename T>
void SetByRef(T* pT); //初始化CComVariant对象,设置vt成员为VT_BYREF
eg. CComVariant var;
int nData = 10;
var.SetByRef(&nData);