打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
COM组件设计与应用之.NET中用ATL写组件3
ctWithSite 是否支持IE的调用

 

  四、添加接口函数


图六、调出增加接口方法的菜单


图七、增加接口函数 Add

  请按照图示的方法,增加Add()函数,增加Cat()函数 。[in]表示参数方向是输入;[out]表示参数方向是输出;[out,retval]表示参数方向是输出,同时可以作为函数运算结果的返回值。一个函数中,可以有多个[in]、[out],但[retval]只能有一个,并且要和[out]组合后在最后一个位置。(注4)


图八、接口函数定义完成后的图示

  我们都知道,要想改变 C++ 中的类函数,需要修改两个地方:一是头文件(.h)中类的函数声明,二是函数体(.cpp)文件的实现处。而我们现在用 ATL 写组件程序,则还要修改一个地方,就是接口定义(IDL)文件。别着急 IDL 下次就要讨论啦。

  五、实现接口函数

  鼠标双点图八中CFun\基项和接口\Add(...)就可以开始输入函数实现了:

STDMETHODIMP CFun::Add(long n1, long n2, long *pVal){*pVal = n1 + n2;return S_OK;}

 

  这个太简单了,不再浪费“口条”。下面我们实现字符串连接的Cat()函数:

STDMETHODIMP CFun::Cat(BSTR s1, BSTR s2, BSTR *pVal){int nLen1 = ::SysStringLen( s1 ); // s1 的字符长度int nLen2 = ::SysStringLen( s2 ); // s2 的字符长度*pVal = ::SysAllocStringLen( s1, nLen1 + nLen2 );// 构造新的 BSTR 同时把 s1 先保存进去if( nLen2 ){::memcpy( *pVal + n
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VC知识库文章 - COM 组件设计与应用(五)——用 ATL 写第一个组件
COM组件设计与应用(九)
COM组件设计与应用之VC6的IDispatch接口
BHO编程
我对COM的理解
vs2019 Com组件初探-实现vbs的CreateObject函数逻辑
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服