使用ocx控件输出数组参数
2007-12-19 11:05
218 查看
参数类型为VARIANT*,为可变类型的数组,本例子输出的是字符串数组
STDMETHODIMP CStarSoftMap::GetQueryResultToArray(LONG* nSum, VARIANT* vQuery)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
*nSum=m_nQueryNum;
CString str=m_strQuery;
VariantClear(vQuery);
SAFEARRAY * pSA;
// Create the safearray.
SAFEARRAYBOUND sabRSarray[1]; // A one-dimensional array.
sabRSarray[0].cElements=*nSum; // Two elements.
sabRSarray[0].lLbound=0; //Lower bound of array.
pSA=SafeArrayCreate(VT_VARIANT,1, sabRSarray);
_variant_t var1;
long ndex;
CString strTmp;
int iStart = 0;
for(int i = 0; i< *nSum; i++)
{
iStart = str.Find(";");
strTmp = str.Left(iStart);
str = str.Mid(iStart + 1);
var1.vt = VT_BSTR;
var1.bstrVal = strTmp.AllocSysString();
ndex = i;
SafeArrayPutElement(pSA, &ndex, &var1);
}
vQuery->vt = VT_ARRAY|VT_VARIANT;
vQuery->parray = pSA;
return S_OK;
}
STDMETHODIMP CStarSoftMap::GetQueryResultToArray(LONG* nSum, VARIANT* vQuery)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
*nSum=m_nQueryNum;
CString str=m_strQuery;
VariantClear(vQuery);
SAFEARRAY * pSA;
// Create the safearray.
SAFEARRAYBOUND sabRSarray[1]; // A one-dimensional array.
sabRSarray[0].cElements=*nSum; // Two elements.
sabRSarray[0].lLbound=0; //Lower bound of array.
pSA=SafeArrayCreate(VT_VARIANT,1, sabRSarray);
_variant_t var1;
long ndex;
CString strTmp;
int iStart = 0;
for(int i = 0; i< *nSum; i++)
{
iStart = str.Find(";");
strTmp = str.Left(iStart);
str = str.Mid(iStart + 1);
var1.vt = VT_BSTR;
var1.bstrVal = strTmp.AllocSysString();
ndex = i;
SafeArrayPutElement(pSA, &ndex, &var1);
}
vQuery->vt = VT_ARRAY|VT_VARIANT;
vQuery->parray = pSA;
return S_OK;
}
相关文章推荐
- 新特性对数组的支持(可变参数的使用、foreach输出的使用)
- 二维数组做函数参数,如何将三维数组降为二维数组,指向数组的指针的使用
- c 函数不定参数(不限参数)使用实例 不定参数输出函数
- springMVC如何使用@RequestParam传递数组类型参数
- 04PHP基础-常量定义输出 04PHP基础-数组定义及使用
- 【iOS发展-44】通过案例谈iOS重构:合并、格式化输出、宏观变量、使用数组来存储数据字典,而且使用plist最终的知识
- 使用SendMessage方法对窗体上的控件进行截图,该方法的思想就是把控件的句柄拿到,对控件发送WM_PAINT消息,并且把希望得到图形对象的句柄当作wParam参数传过去,这样就可以在图形对象得到想要得图形。
- [2012_C++] 函数使用数组参数
- 如何使用数组参数?
- SSIS的OLEDB COMMAND中使用存储过程输出参数
- C# 调用带参数的控制台程序 并将命令行输出的内容实时输出至窗体中的显示控件
- 使用递归函数,将一个整型数组倒序输出。(数组用了随机数,每次的数组都不同,只用了调用,遗憾没用递归。。可以把for循环换成递归)
- oracle使用带有输入和输出参数的存储过程
- 使用ASI传递post表单..参数是数组
- ocx控件获取使用App的窗口句柄
- DataTables 控件使用和心得 (2) - 参数Options中文说明
- C#使用ExecuteReader返回DataReader既有查询结果集又有输出参数和返回值的使用注意事项
- html/js调用ocx控件(activex控件),不能加载,不能使用的原因
- java 调用Oracle存储过程(输入参数,输出参数,游标)的使用!
- 使用Teechart控件输出不同的颜色的柱状图