搜索


会员资源切换至【手机版】

切换本帖至【手机版】


开启左侧

网上少有的VC++之COM编程教程-天道的实地培训教程-龙天论坛收集整理_eD2k地址_计算机_教育下载

[复制链接]
发表于 2018-6-16 17:22:00 | 显示全部楼层 |阅读模式
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0


资源信息:


网上少有的VC++之COM编程教程-天道的实地培训教程哦 http://www.lthack.com/thread- 94-1-1.html (出处: 龙天论坛_百度云论坛_百度网盘论坛_云资源_免费教程学习网-龙天 论坛官) 课程的大体目录: 3.Com开发之第一个ATL程序 4.Com开发之MFC调用Com接口 5.Com开发之MFC调用Com接口 6.Com开发之MFC调用Com接口 7.Com开发之MFC调用Com接口 8.Com开发之MFC调用Com接口 9.Com开发之ATL框架详解 10.Com开发之MFC实现自动化组件 11.Com开发之脚本调用Com的双接口 12.Com开发之MFC调用IDispatch 13.Com开发之MFC调用IDispatch 14.Com开发之MFC包装类的使用 15.Com开发之错误信息处理 16.Com开发之错误信息处理 17.Com开发之错误信息处理 18.Com开发之回调事件通知 19.Com开发之回调事件通知 20.Com开发之连接点 21.Com开发之连接点 24.VB测试ADO部件 25.VB测试ADO对象 26.VC使用ADO访问数据库 27.数据库建模工具的使用 28.ADO点Net测试SQL2005数据库设计 29.ADO点Net测试SQL2005数据库设计 30.ADO点Net测试SQL2005数据库设计 31.ADO点Net测试SQL2005数据库设计 32.C++点Net基础应用视频 33.C++点Net基础应用视频 34.第一个ATLCOM编程 35.第一个ATLCOM编程 36.第一个自定义ActiveX控件 37.第一个自定义ActiveX控件 项目源代码: 贴一下 // Err.cpp : Implementation of CErr #include "stdafx.h" #include "FirstATL.h" #include "Err.h" ///////////////////////////////////////////////////////////////////////////// // CErr STDMETHODIMP CErr::InterfaceSupportsErrorInfo(REFIID riid) { static const IID* arr[] = { &IID_IErr }; for (int i=0; i spCEI; hr = ::CreateErrorInfo(&spCEI); if (!spCEI) return E_FAIL; spCEI->SetGUID(IID_IErr); // 如果是系统定义的错误也可以使用 GUID_NULL LPOLESTR pProgID = NULL; hr = ::ProgIDFromCLSID(CLSID_Err,&pProgID); if (SUCCEEDED(hr) && pProgID) { spCEI->SetSource(pProgID); // 设置错误源,也就是组件的 ProgID ::CoTaskMemFree(pProgID); } // 上面是通用的方法,其实你当然知道正在书写的组件的 ProgID 了 // 所以不用动态取得 ProgID 也可. 你可以这样书写 // spCEI->SetSource( L"FirstATL.Err.1" ); ProgID 可以在 rgs 文件中看到 // 如果你的组件同时提供了帮助文件,那么就可以: // spCEI->SetHelpContext( 0 ); // 设置帮 助文件中的主题号 // spCEI->SetHelpFile( L"xxx.hlp" ); // 设置帮助文件的文件名 spCEI->SetDescription( L"除数不能为0" ); // 设置错误的文字描述 CComQIPtr spErrInfo = spCEI; // QueryInterface 得到 IErrorInfo if( spErrInfo ) ::SetErrorInfo( 0, spErrInfo ); // 这时调用者就 可以得到错误信息了 return E_FAIL; } // 使用 CComCoClass::Error() 方式,便捷地设置错误信息 STDMETHODIMP CErr::Div3(long n1, long n2, long *pResult) { // TODO: Add your implementation code here if (0==n2) return Error(L"除数不能为0"); *pResult = n1 / n2; return S_OK; } 解压密码:www.lthack.com 下载地址: http://pan.baidu.com/share/link?shareid=1080938605&uk=3073355117

主题推广




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

切换至【手机版】| 主站| Archiver|

JS of wanmeiff.com and vcpic.com Please keep this copyright information, respect of, thank you!JS of wanmeiff.com and vcpic.com Please keep this copyright information, respect of, thank you!

|网站地图

GMT+8, 2026-3-25 02:04 , Processed in 0.210807 second(s), 121 queries .

 

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