找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 5214|回复: 3

【分享】VC常用数据类型使用转换详解

[复制链接]

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

发表于 2009-3-8 16:03:48 | 显示全部楼层 |阅读模式
<p>先定义一些常见类型变量借以说明<br/>int i = 100;<br/>long l = 2001;<br/>float f=300.2;<br/>double d=12345.119;<br/>char username[]="女侠程佩君";<br/>char temp[200];<br/>char *buf;<br/>CString str;<br/>_variant_t v1;<br/>_bstr_t v2;</p>
<p><strong><font size="3" face="Verdana">一、其它数据类型转换为字符串</font></strong></p>
<p>短整型(int)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itoa(i,temp,10);&nbsp;&nbsp;&nbsp;&nbsp; //将i转换为字符串放入temp中,最后一个数字表示十进制<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itoa(i,temp,2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //按二进制方式转换 <br/>长整型(long)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ltoa(l,temp,10);</p>
<p><br/><strong><font size="3" face="Verdana">二、从其它包含字符串的变量中获取指向该字符串的指针</font></strong></p>
<p>CString变量<br/>str = "2008北京奥运";<br/>buf = (LPSTR)(LPCTSTR)str; <br/>BSTR类型的_variant_t变量<br/>v1 = (_bstr_t)"程序员";<br/>buf = _com_util::ConvertBSTRToString((_bstr_t)v1);</p>
<p><strong><font size="3">三、字符串转换为其它数据类型<br/></font></strong>strcpy(temp,"123");</p>
<p>短整型(int)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i = atoi(temp); <br/>长整型(long)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; l = atol(temp); <br/>浮点(double)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d = atof(temp);</p>
<p><strong><font size="3">四、其它数据类型转换到CString</font></strong></p>
<p>使用CString的成员函数Format来转换,例如:</p>
<p>整数(int)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str.Format("%d",i); <br/>浮点数(float)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str.Format("%f",i); <br/>字符串指针(char *)等已经被CString构造函数支持的数据类型可以直接赋值<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str = username;</p>
<p><strong><font size="3" face="Verdana">五、BSTR、_bstr_t与CComBSTR</font></strong></p>
<p>CComBSTR、_bstr_t是对BSTR的封装,BSTR是指向字符串的32位指针。<br/>char *转换到BSTR可以这样: BSTR b=_com_util::ConvertStringToBSTR("数据");&nbsp;&nbsp;&nbsp;&nbsp; //使用前需要加上头文件comutil.h<br/>反之可以使用char *p=_com_util::ConvertBSTRToString(b);</p>
<p><br/><font size="3" face="Verdana"><strong>六、VARIANT 、_variant_t 与 COleVariant</strong></font></p>
<p>VARIANT的结构可以参考头文件VC98\Include\OAIDL.H中关于结构体tagVARIANT的定义。<br/>对于VARIANT变量的赋值:首先给vt成员赋值,指明数据类型,再对联合结构中相同数据类型的变量赋值,举个例子:<br/>VARIANT va;<br/>int a=2001;<br/>va.vt=VT_I4;&nbsp;&nbsp;&nbsp; //指明整型数据<br/>va.lVal=a;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //赋值</p>
<p>对于不马上赋值的VARIANT,最好先用Void VariantInit(VARIANTARG FAR* pvarg);进行初始化,其本质是将vt设置为VT_EMPTY,下表我们列举vt与常用数据的对应关系:</p>
<p>unsigned char bVal; VT_UI1 <br/>short iVal; VT_I2 <br/>long lVal; VT_I4 <br/>float fltVal; VT_R4 <br/>double dblVal; VT_R8 <br/>VARIANT_BOOL boolVal; VT_BOOL <br/>SCODE scode; VT_ERROR <br/>CY cyVal; VT_CY <br/>DATE date; VT_DATE <br/>BSTR bstrVal; VT_BSTR <br/>IUnknown FAR* punkVal; VT_UNKNOWN <br/>IDispatch FAR* pdispVal; VT_DISPATCH <br/>SAFEARRAY FAR* parray; VT_ARRAY|* <br/>unsigned char FAR* pbVal; VT_BYREF|VT_UI1 <br/>short FAR* piVal; VT_BYREF|VT_I2 <br/>long FAR* plVal; VT_BYREF|VT_I4 <br/>float FAR* pfltVal; VT_BYREF|VT_R4 <br/>double FAR* pdblVal; VT_BYREF|VT_R8 <br/>VARIANT_BOOL FAR* pboolVal; VT_BYREF|VT_BOOL <br/>SCODE FAR* pscode; VT_BYREF|VT_ERROR <br/>CY FAR* pcyVal; VT_BYREF|VT_CY <br/>DATE FAR* pdate; VT_BYREF|VT_DATE <br/>BSTR FAR* pbstrVal; VT_BYREF|VT_BSTR <br/>IUnknown FAR* FAR* ppunkVal; VT_BYREF|VT_UNKNOWN <br/>IDispatch FAR* FAR* ppdispVal; VT_BYREF|VT_DISPATCH <br/>SAFEARRAY FAR* FAR* pparray; VT_ARRAY|* <br/>VARIANT FAR* pvarVal; VT_BYREF|VT_VARIANT <br/>void FAR* byref; VT_BYREF</p>
<p>_variant_t是VARIANT的封装类,其赋值可以使用强制类型转换,其构造函数会自动处理这些数据类型。<br/>例如:<br/>long l=222;<br/>ing i=100;<br/>_variant_t lVal(l);<br/>lVal = (long)i;</p>
<p>COleVariant的使用与_variant_t的方法基本一样,请参考如下例子:<br/>COleVariant v3 = "字符串", v4 = (long)1999;<br/>CString str =(BSTR)v3.pbstrVal;<br/>long i = v4.lVal;</p>
<p><strong><font size="3">七、其它</font></strong></p>
<p>对消息的处理中我们经常需要将WPARAM或LPARAM等32位数据(DWORD)分解成两个16位数据(WORD),例如:<br/>LPARAM lParam;<br/>WORD loValue = LOWORD(lParam);&nbsp;&nbsp;&nbsp;&nbsp; //取低16位<br/>WORD hiValue = HIWORD(lParam);&nbsp;&nbsp;&nbsp;&nbsp; //取高16位 <br/>对于16位的数据(WORD)我们可以用同样的方法分解成高低两个8位数据(BYTE),例如:<br/>WORD wValue;<br/>BYTE loValue = LOBYTE(wValue);&nbsp;&nbsp;&nbsp;&nbsp; //取低8位<br/>BYTE hiValue = HIBYTE(wValue);&nbsp;&nbsp;&nbsp;&nbsp; //取高8位 <br/><br/><font size="3" face="Verdana"><strong>如何将CString类型的变量赋给char*类型的变量<br/></strong></font>1、GetBuffer函数:<br/>使用CString::GetBuffer函数。<br/>char *p; <br/>CString str="hello"; <br/>p=str.GetBuffer(str.GetLength()); <br/>str.ReleaseBuffer();</p>
<p>将CString转换成char * 时<br/>CString str("aaaaaaa");<br/>strcpy(str.GetBuffer(10),"aa");<br/>str.ReleaseBuffer();<br/>当我们需要字符数组时调用GetBuffer(int n),其中n为我们需要的字符数组的长度.使用完成后一定要马上调用ReleaseBuffer();<br/>还有很重要的一点就是,在能使用const char *的地方,就不要使用char *</p>
<p>2、memcpy: <br/>CString mCS=_T("cxl"); <br/>char mch[20]; <br/>memcpy(mch,mCS,20);</p>
<p>3、用LPCTSTR强制转换: 尽量不使用<br/>char *ch; <br/>CString str; <br/>ch=(LPSTR)(LPCTSTR)str;</p>
<p>CString str = "good";<br/>char *tmp;<br/>sprintf(tmp,"%s",(LPTSTR)(LPCTSTR)str);</p>
<p>4、<br/>CString Msg; <br/>Msg=Msg+"abc"; <br/>LPTSTR lpsz; <br/>lpsz = new TCHAR[Msg.GetLength()+1]; <br/>_tcscpy(lpsz, Msg); <br/>char * psz; <br/>strcpy(psz,lpsz);</p>
<p><br/><strong><font size="3" face="Verdana">CString类向const char *转换</font></strong><br/>char a[100];<br/>CString str("aaaaaa");<br/>strncpy(a,(LPCTSTR)str,sizeof(a));<br/>或者如下:<br/>strncpy(a,str,sizeof(a));<br/>以上两种用法都是正确地. 因为strncpy的第二个参数类型为const char *.所以编译器会自动将CString类转换成const char *.</p>
<p><font size="3" face="Verdana"><strong>CString转LPCTSTR (const char *)<br/></strong></font>CString cStr;<br/>const char *lpctStr=(LPCTSTR)cStr;</p>
<p><strong><font size="3" face="Verdana">LPCTSTR转CString</font></strong><br/>LPCTSTR lpctStr;<br/>CString cStr=lpctStr;</p>
<p><strong><font size="3" face="Verdana">将char*类型的变量赋给CString型的变量</font></strong><br/>可以直接赋值,如: <br/>CString myString = "This is a test"; <br/>也可以利用构造函数,如: <br/>CString s1("Tom");</p>
<p><font size="3" face="Verdana"><strong>将CString类型的变量赋给char []类型(字符串)的变量<br/></strong></font>1、sprintf()函数<br/>CString str = "good";<br/>char tmp[200] ;<br/>sprintf(tmp, "%s",(LPCSTR)str);&nbsp;&nbsp;<br/>(LPCSTR)str这种强制转换相当于(LPTSTR)(LPCTSTR)str <br/>CString类的变量需要转换为(char*)的时,使用(LPTSTR)(LPCTSTR)str</p>
<p>然而,LPCTSTR是const char *,也就是说,得到的字符串是不可写的!将其强制转换成LPTSTR去掉const,是极为危险的!<br/>一不留神就会完蛋!要得到char *,应该用GetBuffer()或GetBufferSetLength(),用完后再调用ReleaseBuffer()。</p>
<p>2、strcpy()函数<br/>CString str;<br/>char c[256];<br/>strcpy(c, str);</p>
<p>char mychar[1024];<br/>CString source="Hello";<br/>strcpy((char*)&amp;mychar,(LPCTSTR)source);</p>
<p><br/><strong><font size="3" face="Verdana">关于CString的使用<br/></font></strong>1、指定 CString 形参<br/>&nbsp;&nbsp;&nbsp; 对于大多数需要字符串参数的函数,最好将函数原型中的形参指定为一个指向字符 (LPCTSTR) 而非 CString 的 const 指针。<br/>当将形参指定为指向字符的 const 指针时,可将指针传递到 TCHAR 数组(如字符串 ["hi there"])或传递到 CString 对象。<br/>CString 对象将自动转换成 LPCTSTR。任何能够使用 LPCTSTR 的地方也能够使用 CString 对象。</p>
<p>2、如果某个形参将不会被修改,则也将该参数指定为常数字符串引用(即 const CString&amp;)。如果函数要修改该字符串,<br/>则删除 const 修饰符。如果需要默认为空值,则将其初始化为空字符串 [""],如下所示:<br/>void AddCustomer( const CString&amp; name, const CString&amp; address, const CString&amp; comment = "" );</p>
<p>3、对于大多数函数结果,按值返回 CString 对象即可。</p>
<p><br/><strong><font size="4" face="Verdana">串的基本运算</font></strong><br/>&nbsp;&nbsp;&nbsp; 对于串的基本运算,很多高级语言均提供了相应的运算符或标准的库函数来实现。<br/>为叙述方便,先定义几个相关的变量:<br/>&nbsp;&nbsp;&nbsp; char s1[20]="dir/bin/appl",s2[20]="file.asm",s3[30],*p;<br/>&nbsp;&nbsp;&nbsp; int result;<br/>&nbsp;&nbsp;&nbsp; 下面以C语言中串运算介绍串的基本运算 <br/>1、求串长<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int strlen(char *s);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //求串s的长度<br/>&nbsp;&nbsp;&nbsp; 【例】printf("%d",strlen(s1));&nbsp;&nbsp;&nbsp; //输出s1的串长12</p>
<p>2、串复制<br/>&nbsp;&nbsp;&nbsp; char *strcpy(char *to,*from);//将from串复制到to串中,并返回to开始处指针<br/>&nbsp;&nbsp;&nbsp; 【例】strcpy(s3,s1); //s3="dir/bin/appl",s1串不变</p>
<p><br/>3、联接<br/>&nbsp;&nbsp;&nbsp; char *strcat(char *to,char *from);//将from串复制到to串的末尾,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //并返回to串开始处的指针<br/>&nbsp;&nbsp;&nbsp; 【例】strcat(s3,"/");&nbsp;&nbsp;&nbsp; //s3="dir/bin/appl/"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strcat(s3,s2);&nbsp;&nbsp;&nbsp;&nbsp; //s3="dir/bin/appl/file.asm"</p>
<p>4、串比较<br/>&nbsp;&nbsp;&nbsp; int strcmp(char *s1,char *s2);//比较s1和s2的大小,<br/>&nbsp;&nbsp;&nbsp;&nbsp; //当s1&lt;s2、s1&gt;s2和s1=s2时,分别返回小于0、大于0和等于0的值 <br/>&nbsp;&nbsp;&nbsp; 【例】result=strcmp("baker","Baker");&nbsp;&nbsp;&nbsp; //result&gt;0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result=strcmp("12","12");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //result=0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result=strcmp("Joe","joseph")&nbsp;&nbsp; //result&lt;0</p>
<p>5、字符定位<br/>&nbsp;&nbsp;&nbsp; char *strchr(char *s,char c);//找c在字符串s中第一次出现的位置,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //若找到,则返回该位置,否则返回NULL<br/>&nbsp;&nbsp;&nbsp; 【例】p=strchr(s2,'.');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //p指向"file"之后的位置<br/>     if(p) strcpy(p,".cpp");&nbsp;&nbsp;&nbsp;&nbsp; //s2="file.cpp"</p>
<p>注意:<br/>&nbsp;&nbsp;&nbsp;  ①上述操作是最基本的,其中后 4个操作还有变种形式:strncpy,strncath和strnchr。<br/>&nbsp;&nbsp;&nbsp;  ②其它的串操作见C的&lt;string.h&gt;。在不同的高级语言中,对串运算的种类及符号都不尽相同<br/>&nbsp;&nbsp;&nbsp;  ③其余的串操作一般可由这些基本操作组合而成</p>
<p>&nbsp;&nbsp;&nbsp; 【例】求子串的操作可如下实现:<br/>&nbsp;&nbsp;&nbsp; void substr(char *sub,char *s,int pos,int len){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //s和sub是字符数组,用sub返回串s的第pos个字符起长度为len的子串<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //其中0&lt;=pos&lt;=strlen(s)-1,且数组sub至少可容纳len+1个字符。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (pos&lt;0||pos&gt;strlen(s)-1||len&lt;0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; Error("parameter error!");<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strncpy(sub,&amp;s[pos],len);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //从s[pos]起复制至多len个字符到sub</p>
【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

 楼主| 发表于 2009-5-25 21:05:51 | 显示全部楼层
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">本文将介绍一些常用数据类型的使用。<span lang="EN-US"><br/><br/></span>我们先定义一些常见类型变量借以说明<span lang="EN-US"> <?XML:NAMESPACE PREFIX = O /><o></o></span></span></p>
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">int i = 100;<br/>long l = 2001;<br/>float f=300.2;<br/>double d=12345.119;<br/>char username[]="</span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">仔仔<span lang="EN-US">";<br/>char temp[200];<br/>char *buf;<br/>CString str;<br/>_variant_t v1;<br/>_bstr_t v2;<br/><br/></span><strong><span style="COLOR: rgb(102,153,255)">一、其它数据类型转换为字符串</span></strong><span lang="EN-US"><o></o></span></span></p>
<ul type="disc">
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt">短整型<span lang="EN-US">(int)</span></span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US"><br/>itoa(i,temp,10);///</span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">将<span lang="EN-US">i</span>转换为字符串放入<span lang="EN-US">temp</span>中<span lang="EN-US">,</span>最后一个数字表示十进制<span lang="EN-US"><br/>itoa(i,temp,2); ///</span>按二进制方式转换<span lang="EN-US"> <o></o></span></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt">长整型<span lang="EN-US">(long)</span></span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US"><br/>ltoa(l,temp,10); <o></o></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt">浮点数<span lang="EN-US">(float,double)</span></span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US"><br/></span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">用<span lang="EN-US">fcvt</span>可以完成转换<span lang="EN-US">,</span>这是<span lang="EN-US">MSDN</span>中的例子<span lang="EN-US">:<br/>int decimal, sign; <br/>char *buffer; <br/>double source = 3.1415926535; <br/>buffer = _fcvt( source, 7, &amp;decimal, &amp;sign ); <br/></span>运行结果<span lang="EN-US">:source: 3.1415926535 buffer: '31415927' decimal: 1 sign: 0<br/>decimal</span>表示小数点的位置<span lang="EN-US">,sign</span>表示符号<span lang="EN-US">:0</span>为正数,<span lang="EN-US">1</span>为负数<span lang="EN-US"> <o></o></span></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt" lang="EN-US">CString</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt">变量</span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US"><br/>str = "2008</span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">北京奥运<span lang="EN-US">";<br/>buf = (LPSTR)(LPCTSTR)str; <o:P></o:P></span></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt" lang="EN-US">BSTR</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt">变量</span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US"><br/>BSTR bstrValue = ::SysAllocString(L"</span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">程序员<span lang="EN-US">"); <br/>char * buf = _com_util::ConvertBSTRToString(bstrValue); <br/>SysFreeString(bstrValue); <br/>AfxMessageBox(buf); <br/>delete(buf); <o:P></o:P></span></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt" lang="EN-US">CComBSTR</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt">变量</span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US"><br/>CComBSTR bstrVar("test"); <br/>char *buf = _com_util::ConvertBSTRToString(bstrVar.m_str); <br/>AfxMessageBox(buf); <br/>delete(buf); <o:P></o:P></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  12pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt" lang="EN-US">_bstr_t</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt">变量</span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US"><br/>_bstr_t</span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">类型是对<span lang="EN-US">BSTR</span>的封装,因为已经重载了<span lang="EN-US">=</span>操作符,所以很容易使用<span lang="EN-US"><br/>_bstr_t bstrVar("test"); <br/>const char *buf = bstrVar;///</span>不要修改<span lang="EN-US">buf</span>中的内容<span lang="EN-US"> <br/>AfxMessageBox(buf); <o:P></o:P></span></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt">通用方法<span lang="EN-US">(</span>针对非<span lang="EN-US">COM</span>数据类型<span lang="EN-US">)</span></span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US"><br/></span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">用<span lang="EN-US">sprintf</span>完成转换<span lang="EN-US"><o:P></o:P></span></span> </li></ul>
<p style="TEXT-ALIGN: left; TEXT-INDENT: -18pt; MARGIN: 0cm="0cm"  0cm="0cm"  0pt="0pt"  36pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt" lang="EN-US"><span>·<span style="FONT: 7pt="7pt"  'Times New="New"  Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">char<span>&nbsp; </span>buffer[200];<o:P></o:P></span></p>
<p style="TEXT-ALIGN: left; TEXT-INDENT: -18pt; MARGIN: 0cm="0cm"  0cm="0cm"  0pt="0pt"  36pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt" lang="EN-US"><span>·<span style="FONT: 7pt="7pt"  'Times New="New"  Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">char<span>&nbsp; </span>c = '1';<o:P></o:P></span></p>
<p style="TEXT-ALIGN: left; TEXT-INDENT: -18pt; MARGIN: 0cm="0cm"  0cm="0cm"  0pt="0pt"  36pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt" lang="EN-US"><span>·<span style="FONT: 7pt="7pt"  'Times New="New"  Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">int<span>&nbsp;&nbsp; </span>i = 35;<o:P></o:P></span></p>
<p style="TEXT-ALIGN: left; TEXT-INDENT: -18pt; MARGIN: 0cm="0cm"  0cm="0cm"  0pt="0pt"  36pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt" lang="EN-US"><span>·<span style="FONT: 7pt="7pt"  'Times New="New"  Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">long<span>&nbsp; </span>j = 1000;<o:P></o:P></span></p>
<p style="TEXT-ALIGN: left; TEXT-INDENT: -18pt; MARGIN: 0cm="0cm"  0cm="0cm"  0pt="0pt"  36pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt" lang="EN-US"><span>·<span style="FONT: 7pt="7pt"  'Times New="New"  Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">float f = 1.7320534f;<o:P></o:P></span></p>
<p style="TEXT-ALIGN: left; TEXT-INDENT: -18pt; MARGIN: 0cm="0cm"  0cm="0cm"  0pt="0pt"  36pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt" lang="EN-US"><span>·<span style="FONT: 7pt="7pt"  'Times New="New"  Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">sprintf( buffer, "%c",c);<o:P></o:P></span></p>
<p style="TEXT-ALIGN: left; TEXT-INDENT: -18pt; MARGIN: 0cm="0cm"  0cm="0cm"  0pt="0pt"  36pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt" lang="EN-US"><span>·<span style="FONT: 7pt="7pt"  'Times New="New"  Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">sprintf( buffer, "%d",i);<o:P></o:P></span></p>
<p style="TEXT-ALIGN: left; TEXT-INDENT: -18pt; MARGIN: 0cm="0cm"  0cm="0cm"  0pt="0pt"  36pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt" lang="EN-US"><span>·<span style="FONT: 7pt="7pt"  'Times New="New"  Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">sprintf( buffer, "%d",j);<o:P></o:P></span></p>
<p style="TEXT-ALIGN: left; TEXT-INDENT: -18pt; MARGIN: 0cm="0cm"  0cm="0cm"  0pt="0pt"  36pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt" lang="EN-US"><span>·<span style="FONT: 7pt="7pt"  'Times New="New"  Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">sprintf( buffer, "%f",f);<o:P></o:P></span></p>
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><strong><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt">二、字符串转换为其它数据类型</span></strong><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US"><br/>strcpy(temp,"123"); <o:P></o:P></span></p>
<ul type="disc">
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt">短整型<span lang="EN-US">(int)</span></span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US"><br/>i = atoi(temp); <o:P></o:P></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt">长整型<span lang="EN-US">(long)</span></span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US"><br/>l = atol(temp); <o:P></o:P></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt">浮点<span lang="EN-US">(double)</span></span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US"><br/>d = atof(temp); <o:P></o:P></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt" lang="EN-US">CString</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt">变量</span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US"><br/>CString name = temp; <o:P></o:P></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt" lang="EN-US">BSTR</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt">变量</span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US"> <br/>BSTR bstrValue = ::SysAllocString(L"</span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">程序员<span lang="EN-US">"); <br/>...///</span>完成对<span lang="EN-US">bstrValue</span>的使用<span lang="EN-US"><br/>SysFreeString(bstrValue); <o:P></o:P></span></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt" lang="EN-US">CComBSTR</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt">变量</span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US"><br/>CComBSTR</span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">类型变量可以直接赋值<span lang="EN-US"><br/>CComBSTR bstrVar1("test");<br/>CComBSTR bstrVar2(temp);<o:P></o:P></span></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  12pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt" lang="EN-US">_bstr_t</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt">变量</span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US"><br/>_bstr_t</span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">类型的变量可以直接赋值<span lang="EN-US"><br/>_bstr_t bstrVar1("test"); <br/>_bstr_t bstrVar2(temp); <o:P></o:P></span></span></li></ul>
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><strong><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt">三、其它数据类型转换到<span lang="EN-US">CString</span></span></strong><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US"><br/></span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">使用<span lang="EN-US">CString</span>的成员函数<span lang="EN-US">Format</span>来转换<span lang="EN-US">,</span>例如<span lang="EN-US">:<o:P></o:P></span></span></p>
<ul type="disc">
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">整数<span lang="EN-US">(int)<br/>str.Format("%d",i); <o:P></o:P></span></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">浮点数<span lang="EN-US">(float)<br/>str.Format("%f",i); <o:P></o:P></span></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">字符串指针<span lang="EN-US">(char *)</span>等已经被<span lang="EN-US">CString</span>构造函数支持的数据类型可以直接赋值<span lang="EN-US"><br/>str = username; <o:P></o:P></span></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">对于<span lang="EN-US">Format</span>所不支持的数据类型,可以通过上面所说的关于其它数据类型转化到<span lang="EN-US">char *</span>的方法先转到<span lang="EN-US">char *</span>,然后赋值给<span lang="EN-US">CString</span>变量。<span lang="EN-US"><o:P></o:P></span></span> </li></ul>
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><strong><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt">四、<span lang="EN-US">BSTR</span>、<span lang="EN-US">_bstr_t</span>与<span lang="EN-US">CComBSTR</span></span></strong></p>
<ul style="BACKGROUND-COLOR: rgb(255,102,0)">
<li>&nbsp;GUID(谐音为“fluid”,意思是全球唯一标示符——globally unique identifier)是个128位的数字。它是一种独立于COM编程语言的标示方法。每一个接口和coclass有一个GUID。因为每一个GUID都是全球唯一的,所以避免了名字冲突(只要你用COM API创建它们)。有时你还会碰到另一个术语UUID(意思也是全球唯一标示符——universally unique identifier)。UUIDs和GUIDs在实际使用时的用途是一样的。
<li>类ID或者CLSID是命名coclass的GUID。接口ID或者IID是命名接口的GUID。
<li>GUIDs只是简单的数字,任何编程语言都可以对之进行处理;
<li>GUIDs可以在任何机器上被任何人创建,一旦完成创建,它就是唯一的。因此,COM开发人员可以创建自己特有的GUIDs而不会与其它开发人员所创建的GUIDs有冲突。这样就消除了集中授权发布GUIDs的必要。
<li><span style="PADDING-BOTTOM: 0pt; PADDING-LEFT: 0pt; PADDING-RIGHT: 0pt; DISPLAY: inline; COLOR: black; PADDING-TOP: 0pt" id="__firefox-findbar-search-id">HRESULT</span>是COM用来返回错误和成功代码的整型数字。除此之外,别无它意,虽然以H作前缀,但没有句柄之意。下文会对它有更多的讨论。 </li></ul>
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><strong><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt"><span lang="EN-US"></span></span></strong><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US"><o:P></o:P></span></p>
<ul type="disc">
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">CComBSTR </span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">是<span lang="EN-US">ATL</span>对<span lang="EN-US">BSTR</span>的封装,<span lang="EN-US">_bstr_t</span>是<span lang="EN-US">C++</span>对<span lang="EN-US">BSTR</span>的封装<span lang="EN-US">,BSTR</span>是<span lang="EN-US">32</span>位指针<span lang="EN-US">,</span>但并不直接指向字串的缓冲区。<span lang="EN-US"><br/>char *</span>转换到<span lang="EN-US">BSTR</span>可以这样<span lang="EN-US">: <br/>BSTR b=_com_util::ConvertStringToBSTR("</span>数据<span lang="EN-US">");///</span>使用前需要加上<span lang="EN-US">comutil.h</span>和<span lang="EN-US">comsupp.lib<br/>SysFreeString(bstrValue); <br/></span>反之可以使用<span lang="EN-US"><br/>char *p=_com_util::ConvertBSTRToString(b);<br/>delete p;<br/></span>具体可以参考一,二段落里的具体说明。<span lang="EN-US"><br/><br/>CComBSTR</span>与<span lang="EN-US">_bstr_t</span>对大量的操作符进行了重载,可以直接进行<span lang="EN-US">=,!=,==</span>等操作,所以使用非常方便。<span lang="EN-US"><br/></span>特别是<span lang="EN-US">_bstr_t,</span>建议大家使用它。<span lang="EN-US"><o:P></o:P></span></span> </li></ul>
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><strong><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt">五、<span lang="EN-US">VARIANT </span>、<span lang="EN-US">_variant_t </span>与<span lang="EN-US"> COleVariant</span></span></strong><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US"><o:P></o:P></span></p>
<ul type="disc">
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  12pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">VARIANT</span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">的结构可以参考头文件<span lang="EN-US">VC98\Include\OAIDL.H</span>中关于结构体<span lang="EN-US">tagVARIANT</span>的定义。<span lang="EN-US"><br/></span>对于<span lang="EN-US">VARIANT</span>变量的赋值:首先给<span lang="EN-US">vt</span>成员赋值,指明数据类型,再对联合结构中相同数据类型的变量赋值,举个例子:<span lang="EN-US"><br/>VARIANT va;<br/>int a=2001;<br/>va.vt=VT_I4;///</span>指明整型数据<span lang="EN-US"><br/>va.lVal=a; ///</span>赋值<span lang="EN-US"><br/><br/></span>对于不马上赋值的<span lang="EN-US">VARIANT</span>,最好先用<span lang="EN-US">Void VariantInit(VARIANTARG FAR* pvarg);</span>进行初始化<span lang="EN-US">,</span>其本质是将<span lang="EN-US">vt</span>设置为<span lang="EN-US">VT_EMPTY,</span>下表我们列举<span lang="EN-US">vt</span>与常用数据的对应关系<span lang="EN-US">:<o:P></o:P></span></span> </li></ul>
<p></p>
<table style="MARGIN: auto="auto"  auto="auto"  auto="auto"  0.7pt; WIDTH: 406.05pt; BACKGROUND: rgb(51,51,51) 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" class="MsoNormalTable" border="0" cellspacing="1" cellpadding="0" width="541">
<tbody>
<tr style="HEIGHT: 15.5pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 15.5pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">Byte bVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 15.5pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_UI1.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">Short iVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_I2.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">long lVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_I4.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 15.5pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 15.5pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">float fltVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 15.5pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_R4.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">double dblVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_R8.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">VARIANT_BOOL boolVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_BOOL.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">SCODE scode; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_ERROR.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 15.5pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 15.5pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">CY cyVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 15.5pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_CY.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">DATE date; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_DATE.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">BSTR bstrVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_BSTR.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">DECIMAL FAR* pdecVal <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_BYREF|VT_DECIMAL.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 15.5pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 15.5pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">IUnknown FAR* punkVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 15.5pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_UNKNOWN.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">IDispatch FAR* pdispVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_DISPATCH.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">SAFEARRAY FAR* parray; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_ARRAY|*.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 15.5pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 15.5pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">Byte FAR* pbVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 15.5pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_BYREF|VT_UI1.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">short FAR* piVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_BYREF|VT_I2.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">long FAR* plVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_BYREF|VT_I4.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">float FAR* pfltVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_BYREF|VT_R4.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 15.5pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 15.5pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">double FAR* pdblVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 15.5pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_BYREF|VT_R8.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">VARIANT_BOOL FAR* pboolVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_BYREF|VT_BOOL.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">SCODE FAR* pscode; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_BYREF|VT_ERROR.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">CY FAR* pcyVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_BYREF|VT_CY.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 15.5pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 15.5pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">DATE FAR* pdate; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 15.5pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_BYREF|VT_DATE.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">BSTR FAR* pbstrVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_BYREF|VT_BSTR.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">IUnknown FAR* FAR* ppunkVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_BYREF|VT_UNKNOWN.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">IDispatch FAR* FAR* ppdispVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_BYREF|VT_DISPATCH.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 15.5pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 15.5pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">SAFEARRAY FAR* FAR* pparray; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 15.5pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_ARRAY|*.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">VARIANT FAR* pvarVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_BYREF|VT_VARIANT.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">void FAR* byref; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// Generic ByRef.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 15.5pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 15.5pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">char cVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 15.5pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_I1.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">unsigned short uiVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_UI2.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">unsigned long ulVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_UI4.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">int intVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_INT.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 15.5pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 15.5pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">unsigned int uintVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 15.5pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_UINT.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">char FAR * pcVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_BYREF|VT_I1.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">unsigned short FAR * puiVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_BYREF|VT_UI2.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.25pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">unsigned long FAR * pulVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.25pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_BYREF|VT_UI4.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 15.5pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 15.5pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">int FAR * pintVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 15.5pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">// VT_BYREF|VT_INT.<o:P></o:P></span></p></td></tr>
<tr style="HEIGHT: 16.95pt">
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 228.95pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.95pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="305">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">unsigned int FAR * puintVal; <o:P></o:P></span></p></td>
<td style="BORDER-BOTTOM-COLOR: rgb(240,240,240); PADDING-BOTTOM: 0cm; BORDER-TOP-COLOR: rgb(240,240,240); PADDING-LEFT: 0cm; WIDTH: 175pt; PADDING-RIGHT: 0cm; BACKGROUND: white="white"  0% 50%; HEIGHT: 16.95pt; BORDER-RIGHT-COLOR: rgb(240,240,240); BORDER-LEFT-COLOR: rgb(240,240,240); PADDING-TOP: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" width="233">
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">//VT_BYREF|VT_UINT.<o:P></o:P></span></p></td></tr></tbody></table>
<ul type="disc">
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US"><o:P>&nbsp;</o:P></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  12pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">_variant_t</span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">是<span lang="EN-US">VARIANT</span>的封装类,其赋值可以使用强制类型转换,其构造函数会自动处理这些数据类型。<span lang="EN-US"><br/></span>使用时需加上#<span lang="EN-US">include <br/></span>例如:<span lang="EN-US"><br/>long l=222;<br/>ing i=100;<br/>_variant_t lVal(l);<br/>lVal = (long)i;<o:P></o:P></span></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  12pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">COleVariant</span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">的使用与<span lang="EN-US">_variant_t</span>的方法基本一样,请参考如下例子:<span lang="EN-US"><br/>COleVariant v3 = "</span>字符串<span lang="EN-US">", v4 = (long)1999;<br/>CString str =(BSTR)v3.pbstrVal;<br/>long i = v4.lVal;<o:P></o:P></span></span> </li></ul>
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><strong><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt">六、其它一些<span lang="EN-US">COM</span>数据类型</span></strong><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US"><o:P></o:P></span></p>
<ul type="disc">
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">根据<span lang="EN-US">ProgID</span>得到<span lang="EN-US">CLSID<br/>HRESULT CLSIDFromProgID( LPCOLESTR lpszProgID,LPCLSID pclsid);<br/>CLSID clsid;<br/>CLSIDFromProgID( L"MAPI.Folder",&amp;clsid);<o:P></o:P></span></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">根据<span lang="EN-US">CLSID</span>得到<span lang="EN-US">ProgID<br/>WINOLEAPI ProgIDFromCLSID( REFCLSID clsid,LPOLESTR * lplpszProgID); <br/></span>例如我们已经定义了<span lang="EN-US"> CLSID_IApplication,</span>下面的代码得到<span lang="EN-US">ProgID<br/>LPOLESTR pProgID = 0;<br/>ProgIDFromCLSID( CLSID_IApplication,&amp;pProgID);<br/>...///</span>可以使用<span lang="EN-US">pProgID <br/>CoTaskMemFree(pProgID);//</span>不要忘记释放<span lang="EN-US"> <o:P></o:P></span></span></li></ul>
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><strong><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt">七、<span lang="EN-US">ANSI</span>与<span lang="EN-US">Unicode<br/></span></span></strong><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US">Unicode</span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">称为宽字符型字串<span lang="EN-US">,COM</span>里使用的都是<span lang="EN-US">Unicode</span>字符串。<span lang="EN-US"><o:P></o:P></span></span></p>
<ul type="disc">
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">将<span lang="EN-US">ANSI</span>转换到<span lang="EN-US">Unicode<br/>(1)</span>通过<span lang="EN-US">L</span>这个宏来实现,例如<span lang="EN-US">: CLSIDFromProgID( L"MAPI.Folder",&amp;clsid);<br/>(2)</span>通过<span lang="EN-US">MultiByteToWideChar</span>函数实现转换<span lang="EN-US">,</span>例如<span lang="EN-US">:<br/>char *szProgID = "MAPI.Folder";<br/>WCHAR szWideProgID[128];<br/>CLSID clsid;<br/>long lLen = MultiByteToWideChar(CP_ACP,0,szProgID,strlen(szProgID),szWideProgID,sizeof(szWideProgID));<br/>szWideProgID[lLen] = '\0'; <br/>(3)</span>通过<span lang="EN-US">A2W</span>宏来实现<span lang="EN-US">,</span>例如<span lang="EN-US">: <br/>USES_CONVERSION; <br/>CLSIDFromProgID( A2W(szProgID),&amp;clsid); <o:P></o:P></span></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">将<span lang="EN-US">Unicode</span>转换到<span lang="EN-US">ANSI<br/>(1)</span>使用<strong><span style="BACKGROUND: rgb(255,255,102) 0% 50%; COLOR: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" lang="EN-US">WideCharToMultiByte</span></strong><span lang="EN-US">,</span>例如<span lang="EN-US">:</span></span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt"><a name="0"></a></span><br/><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt"><span lang="EN-US">// </span>假设已经有了一个<span lang="EN-US">Unicode </span>串<span lang="EN-US"> wszSomeString... <br/>char szANSIString [MAX_PATH]; <br/><strong><span style="BACKGROUND: rgb(255,255,102) 0% 50%; COLOR: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">WideCharToMultiByte</span></strong> ( CP_ACP, WC_COMPOSITECHECK, wszSomeString, -1, szANSIString, sizeof(szANSIString), NULL, NULL ); <br/>(2)</span>使用<span lang="EN-US">W2A</span>宏来实现<span lang="EN-US">,</span>例如<span lang="EN-US">:<br/>USES_CONVERSION;<br/>pTemp=W2A(wszSomeString); <o:P></o:P></span></span></li></ul>
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><strong><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt">八、其它</span></strong><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US"><o:P></o:P></span></p>
<ul type="disc">
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  12pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">对消息的处理中我们经常需要将<span lang="EN-US">WPARAM</span>或<span lang="EN-US">LPARAM</span>等<span lang="EN-US">32</span>位数据(<span lang="EN-US">DWORD)</span>分解成两个<span lang="EN-US">16</span>位数据(<span lang="EN-US">WORD),</span>例如:<span lang="EN-US"><br/>LPARAM lParam;<br/>WORD loValue = LOWORD(lParam);///</span>取低<span lang="EN-US">16</span>位<span lang="EN-US"><br/>WORD hiValue = HIWORD(lParam);///</span>取高<span lang="EN-US">16</span>位<span lang="EN-US"><o:P></o:P></span></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  12pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">对于<span lang="EN-US">16</span>位的数据<span lang="EN-US">(WORD)</span>我们可以用同样的方法分解成高低两个<span lang="EN-US">8</span>位数据<span lang="EN-US">(BYTE),</span>例如<span lang="EN-US">:<br/>WORD wValue;<br/>BYTE loValue = LOBYTE(wValue);///</span>取低<span lang="EN-US">8</span>位<span lang="EN-US"><br/>BYTE hiValue = HIBYTE(wValue);///</span>取高<span lang="EN-US">8</span>位<span lang="EN-US"><o:P></o:P></span></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  12pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">两个<span lang="EN-US">16</span>位数据(<span lang="EN-US">WORD</span>)合成<span lang="EN-US">32</span>位数据<span lang="EN-US">(DWORD,LRESULT,LPARAM,</span>或<span lang="EN-US">WPARAM)<br/>LONG MAKELONG( WORD wLow, WORD wHigh );<br/>WPARAM MAKEWPARAM( WORD wLow, WORD wHigh ); <br/>LPARAM MAKELPARAM( WORD wLow, WORD wHigh );<br/>LRESULT MAKELRESULT( WORD wLow, WORD wHigh ); <o:P></o:P></span></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  12pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">两个<span lang="EN-US">8</span>位的数据<span lang="EN-US">(BYTE)</span>合成<span lang="EN-US">16</span>位的数据<span lang="EN-US">(WORD)<br/>WORD MAKEWORD( BYTE bLow, BYTE bHigh ); <o:P></o:P></span></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  12pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">从<span lang="EN-US">R(red),G(green),B(blue)</span>三色得到<span lang="EN-US">COLORREF</span>类型的颜色值<span lang="EN-US"><br/>COLORREF RGB( BYTE byRed,BYTE byGreen,BYTE byBlue );<br/></span>例如<span lang="EN-US">COLORREF bkcolor = RGB(0x22,0x98,0x34);<o:P></o:P></span></span>
<li style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">从<span lang="EN-US">COLORREF</span>类型的颜色值得到<span lang="EN-US">RGB</span>三个颜色值<span lang="EN-US"><br/>BYTE Red = GetRValue(bkcolor); ///</span>得到红颜色<span lang="EN-US"><br/>BYTE Green = GetGValue(bkcolor); ///</span>得到绿颜色<span lang="EN-US"><br/>BYTE Blue = GetBValue(bkcolor); ///</span>得到兰颜色<span lang="EN-US"><o:P></o:P></span></span> </li></ul>
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><strong><span style="FONT-FAMILY: 宋体; COLOR: rgb(102,153,255); FONT-SIZE: 12pt">九、注意事项</span></strong><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt" lang="EN-US"><br/></span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">假如需要使用到<span lang="EN-US">ConvertBSTRToString</span>此类函数<span lang="EN-US">,</span>需要加上头文件<span lang="EN-US">comutil.h,</span>并在<span lang="EN-US">setting</span>中加入<span lang="EN-US">comsupp.lib</span>或者直接加上<span lang="EN-US">#pragma comment( lib, "comsupp.lib" )</span>。</span></p><br/>
<p style="TEXT-ALIGN: left; MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left">&nbsp;</p>
<p style="TEXT-ALIGN: left; BACKGROUND-COLOR: rgb(255,102,0); MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><font style="BACKGROUND-COLOR: rgb(255,102,0)" size="3">把variant转换为char*类型啊 <br/>AnsiString s;<br/>Variant v(String("封字串"));<br/>if(v2.VType==varString)<br/>{<br/>s=AnsiString(v);<br/>ShowMessage(s);<br/>} </font></p>
<p><font style="BACKGROUND-COLOR: rgb(255,102,0)" size="3"></font>&nbsp;</p>
<p><font style="BACKGROUND-COLOR: rgb(255,102,0)" size="3">本帖转载:<font face="Verdana">http://blog.csdn.net/gyskyll/archive/2006/11/28/1418203.aspx</font></p>
<p style="TEXT-ALIGN: left; BACKGROUND-COLOR: rgb(255,102,0); MARGIN: 0cm="0cm"  0cm="0cm"  0pt" class="MsoNormal" align="left"><br/></p></font>
【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755

1

主题

1

回帖

0

精华

初来乍到

积分
230
发表于 2009-4-12 17:00:52 | 显示全部楼层
&nbsp;收藏了,以后VC上需要数据类型转换时不用到处找了 <br/>

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

 楼主| 发表于 2009-5-22 10:57:20 | 显示全部楼层

C/C++数值字符串互转

数字转字符串:使用sprintf()函数
<table style="BORDER-RIGHT: #999 1px="1px"  solid; BORDER-TOP: #999 1px="1px"  solid; FONT-SIZE: 12px; BORDER-LEFT: #999 1px="1px"  solid; WIDTH: 80%; BORDER-BOTTOM: #999 1px="1px"  solid" align="center">
<tbody>
<tr>
<td>
<p><font face="宋体">&nbsp;<wbr> char str[255];<br/>&nbsp;<wbr> int a=1234321;<br/>&nbsp;<wbr> sprintf(str,"%d",a);<br/>&nbsp;<wbr> printf("%s",str);</font></p>
<p>&nbsp;<wbr></p></td></tr></tbody></table>
<p>字符串转数字:使用sscanf()函数</p>
<table style="BORDER-RIGHT: #999 1px="1px"  solid; BORDER-TOP: #999 1px="1px"  solid; FONT-SIZE: 12px; BORDER-LEFT: #999 1px="1px"  solid; WIDTH: 80%; BORDER-BOTTOM: #999 1px="1px"  solid" align="center">
<tbody>
<tr>
<td>
<p><font face="宋体">&nbsp;<wbr> char str[255]="1234321";<br/>&nbsp;<wbr> int a;<br/>&nbsp;<wbr> sscanf(str,"%d",&amp;a);</font></p>
<p><font face="宋体">&nbsp;<wbr>&nbsp;<wbr>printf("%d\n",a);</font></p></td></tr></tbody></table>
<p>另外也可以使用</p>
<p>itoa() 同样也可以将数字转字符串,不过itoa()这个函数是平台相关的,所以在linux下无法使用。故在这里不推荐使用这个函数。</p>
【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表