社区
ATL
帖子详情
如何将二维或一维数组作为ATL对象的接口参数,接口如何定义?
guchan
2003-08-20 03:34:57
不使用MFC,所以不能用CArray,请教,如何做。
...全文
75
5
打赏
收藏
如何将二维或一维数组作为ATL对象的接口参数,接口如何定义?
不使用MFC,所以不能用CArray,请教,如何做。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
WQ
2003-08-22
打赏
举报
回复
用SAFEARRAY是好的选择
Phourm
2003-08-22
打赏
举报
回复
保存调用在进程内可以用
BYTE* int* 之类的指针来代替
天限天空
2003-08-22
打赏
举报
回复
( VARIANT *p_lppXXX )
{
SAFEARRAY * saRet = NULL;
}
zhangxue
2003-08-21
打赏
举报
回复
CComObject<CCdbRecordSet>* p = new CComObject<CCdbRecordSet>;
p->Init(astrInfo,auiNum);
IDispatch* pDisp;
p->QueryInterface(IID_IDispatch, (void**)&pDisp);
ATLASSERT(pDisp);
pretobj->vt = VT_DISPATCH;
pretobj->pdispVal = pDisp;
CCdbRecordSet是一个对象,可以任意定义!!当然也可以实现数组功能了:
void CCdbRecordSet::Init(const CStringArray &astrInfo, const CUIntArray &auiNum)
{
m_astrInfo.RemoveAll();
m_auiNum.RemoveAll();
m_astrInfo.Copy(astrInfo);
m_auiNum.Copy(auiNum);
}
STDMETHODIMP CCdbRecordSet::get_itemcnt(long *plretval)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
*plretval = m_astrInfo.GetSize();
return S_OK;
}
STDMETHODIMP CCdbRecordSet::get_infoAt(long nitem, BSTR *psretval)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
_bstr_t s = _T("");
if(nitem >= 0 && nitem < m_astrInfo.GetSize())
{
s = (LPCTSTR)m_astrInfo[nitem];
}
*psretval = s.copy();
return S_OK;
}
STDMETHODIMP CCdbRecordSet::get_numAt(long nitem, long *plretval)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
*plretval = 0;
if(nitem >= 0 && nitem < m_astrInfo.GetSize())
{
*plretval = m_auiNum[nitem];
}
return S_OK;
}
LeeZi
2003-08-20
打赏
举报
回复
VARIANT
在一小时内学会 C#(txt版本)
类块或结构
定义
之后没有必要再加一个半角分号。C++ 中是这样,但 C# 不要求。 命名空间 每个类都打包于一个命名空间。命名空间的概念和 C++ 完全一样,但我们在 C# 中比在 C++ 中更加频繁的使用命名空间。你可以用...
ATL
使用数组做
参数
而返回
二维
数组遇作为输入
参数
情况类似,也是先
定义
一个one_size(第一维的大小)的VARIANT的SAFEARRAY,然后再对每个VARIANT元素
定义
一个two_size(第
二维
的大小)的VARIANT变量,就可以作为
二维
数组输出。...
在COM中使用数组
参数
关键字:DCOM、数组、自
定义
类型、Marshal、SafeArray、ICollection 本文讲述在COM的
接口
中使用数组作为
参数
的三种方法。它们分别是:数组指针、SafeArray和ICollection。文章分析了各种方法的优缺点。本文的目的...
从
ATL
中返回字符串数组到JavaScript的示例
测试环境:VS2008 SP1 + WinXP SP3 ...
ATL
中的代码 STDMETHODIMP CSnapshot::GetFilesFromClipboard(VARIANT* retVal) { std::list listFiles = getFilesFromClipboard(NULL); std::list::iterator it
C++通过
ATL
访问Excel时 使用COleSafeArray批量读写数据及公式
c++开发中在使用
ATL
对Excel进行操作时,使用COleSafeArray对Excel的内容进行批量读写,包括数据的批量读写及公式的批量写入。
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章