关键在于VARIANT变量我不会设!
解决方案 »
- 坐标系问题
- 不知道程序怎么搞的,突然一下子无法在菜单上响应任何函数了!
- 使用GDI+改变位图颜色深度失败??????
- VB的脚本引擎可以调试吗?
- 关于MediaPlayer在全屏下连续播放的问题
- 滚动条例题
- 牙科改行,申请做版主,感谢大家支持
- 循序渐进,根据各位高手的指点我写了一段程序,请帮我看看有没有问题
- MFC编程和SDK编程有何区别?
- 更正:是如何在基本对话应用程序中画矩形并填色?
- VC + ADO + ACCESS 错误是:8004005,说执行的SQL语句太复杂,无法完成。
- 不知道大家注意到没有,2001年全球最受欢迎的十大软件排名第一的Direct Connect居然是用VB写的,可怜我学VC学得好苦
VARTYPE vt;
unsigned short wReserved1;
unsigned short wReserved2;
unsigned short wReserved3;
union {
unsigned char bVal; // VT_UI1.
short iVal; // VT_I2 .
long lVal; // VT_I4 .
float fltVal; // VT_R4 .
double dblVal; // VT_R8 .
VARIANT_BOOL boolVal; // VT_BOOL.
SCODE scode; // VT_ERROR.
CY cyVal; // VT_CY .
DATE date; // VT_DATE.
BSTR bstrVal; // VT_BSTR.
IUnknown FAR* punkVal; // VT_UNKNOWN.
IDispatch FAR* pdispVal; // VT_DISPATCH.
SAFEARRAY FAR* parray; // VT_ARRAY|*.
unsigned char FAR* pbVal; // VT_BYREF|VT_UI1.
short FAR* piVal; // VT_BYREF|VT_I2.
long FAR* plVal; // VT_BYREF|VT_I4.
float FAR* pfltVal; // VT_BYREF|VT_R4.
double FAR* pdblVal; // VT_BYREF|VT_R8.
VARIANT_BOOL FAR* pboolVal; // VT_BYREF|VT_BOOL.
SCODE FAR* pscode; // VT_BYREF|VT_ERROR.
CY FAR* pcyVal; // VT_BYREF|VT_CY.
DATE FAR* pdate; // VT_BYREF|VT_DATE.
BSTR FAR* pbstrVal; // VT_BYREF|VT_BSTR.
IUnknown FAR* FAR* ppunkVal; // VT_BYREF|VT_UNKNOWN.
IDispatch FAR* FAR* ppdispVal; // VT_BYREF|VT_DISPATCH.
SAFEARRAY FAR* FAR* pparray; // VT_ARRAY|*.
VARIANT FAR* pvarVal; // VT_BYREF|VT_VARIANT.
void FAR* byref; // Generic ByRef.
};
};
我也不是很清楚
可以看看MSDN中的说明。
VARIANT var;
VariantInit(&var);
var.vt = VT_BSTR;
var.bstrVal = str.SysAllocString();
VariantClear(&var);//////////////////BSTR bstr;
bstr = SysAllocString(L"xxxx");
VARIANT var;
VariantInit(&var);
var.vt = VT_BSTR;
var.bstrVal = bstr;
VariantClear(&var);
SysFreeString(&bstr);
构造函数
COleVariant( const VARIANT& varSrc );COleVariant( const COleVariant& varSrc );COleVariant( LPCVARIANT pSrc );COleVariant( LPCTSTR lpszSrc );COleVariant( LPCTSTR lpszSrc, VARTYPE vtSrc );COleVariant( CString& strSrc );COleVariant( BYTE nSrc );COleVariant( short nSrc, VARTYPE vtSrc = VT_I2 );COleVariant( long lSrc, VARTYPE vtSrc = VT_I4 );COleVariant( const COleCurrency& curSrc );COleVariant( float fltSrc );COleVariant( double dblSrc );COleVariant( const COleDateTime& dateSrc );COleVariant( const CByteArray& arrSrc );COleVariant( const CLongBinary& lbSrc );具体查msdn
memset(&vf,0,sizeof(vf)); //vf需要查询的字符串
memset(&vs,0,sizeof(vs)); //vs开始的地方
memset(&ve,0,sizeof(ve)); //ve结束的地方
memset(&vo,0,sizeof(vo)); //vo选项
BSTR bstr;
bstr = SysAllocString(L"you need find string");
VARIANT vf;
VariantInit(&vf);
vf.vt = VT_BSTR;
vf.bstrVal = bstr;
VariantClear(&vf);
SysFreeString(&bstr);
vs.vt = VT_I4;
vs.iVal = 0; //重头开始 ve.vt = VT_I4;
ve.iVal = 100; //查询到100的地方为为止vo.vt = VT_I4;
vo.iVal = 2; //2 = 整个单词 4 = MatchCase 8 =NoHighlight
m_richtextctrl.Find(vf);
//如果没有找到返回-1
from 'struct tagVARIANT' to 'const char *'
long FindText( DWORD dwFlags, FINDTEXTEX* pFindText ) const;