数据类型:
1〉HRESULT
S_OK | 0x00000000 | 成功 |
S_FALSE | 0x00000001 | 函数成功执行完成,但返回时出现错误 |
E_INVALIDARG | 0x80070057 | 参数有错误 |
E_OUTOFMEMORY | 0x8007000E | 内存申请错误 |
E_UNEXPECTED | 0x8000FFFF | 未知的异常 |
E_NOTIMPL | 0x80004001 | 未实现功能 |
E_FAIL | 0x80004005 | 没有详细说明的错误。一般需要取得 Rich Error 错误信息(注1) |
E_POINTER | 0x80004003 | 无效的指针 |
E_HANDLE | 0x80070006 | 无效的句柄 |
E_ABORT | 0x80004004 | 终止操作 |
E_ACCESSDENIED | 0x80070005 | 访问被拒绝 |
E_NOINTERFACE | 0x80004002 | 不支持接口 |
2> 创建ATL项目
. 新建一个ATL项目,名称simple.应用程序设置服务器类型选择dll方式.其余多选选项全部非选(取消顶部"属性"多选框的勾选)
. 点击菜单: 项目-> 添加类; 选择 ATL简单对象
. 弹出的向导中: 简称为 Fun,其余自动完成;"选项"选项卡中接口选择 自定义,自动化兼容不选.完成
. 查看类试图, 在IFun上点击右键, 选择: 添加->添加方法。
. 弹出的向导中,返回类型定死为HRESULT,表明函数执行状态结果, 函数功能结果由参数返回,输入的
参数在参数属性中选择in,输出的选择out, 返回结果的返回retval, retval类型只能有一个,并被放在最后
默认的out/retval是灰色,当你有参数类型是指针时才可用。
完成添加,到Fun.cpp中编辑函数
添加行: *ret = n1 + n2;
3> 调用此COM