为什么有的com项目有类厂,有的没有呢?

afraidboy 2003-01-22 02:31:51
我初学com,在网上下了一些源码,可是这些源吗有的有类厂,有的没有,这是什么原因呢?
望高手执教?
还有是不是com提供的类不能有自己的返回值?必须是STDMETHODIMP类型?如果我想返回
一个int可以吗?
还有namespace 是什么意思?
...全文
38 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
WQ 2003-01-24
  • 打赏
  • 举报
回复
handsomebaby(小新) ( ) 信誉:100
存在
handsomebaby 2003-01-23
  • 打赏
  • 举报
回复
都有类厂,只是有的你看到了,有的被封装起来了,不存在没有类厂的COM对象!
flyycyu 2003-01-23
  • 打赏
  • 举报
回复
STDMETHODIMP Ctest::TEST(BSTR *str)
{
// TODO: 在此添加实现代码
CComBSTR bstr("test");
*str=bstr.Detach();

return S_OK;
}
flyycyu 2003-01-23
  • 打赏
  • 举报
回复
IClassFactory
在COM+是强制要这样做的1
harry202 2003-01-23
  • 打赏
  • 举报
回复
[out,retval]long *pVal
pVal就是返回值,这个和c中一样,只是前面加了[out,retval]来表示数据流动的方向而已
Billy_Chen28 2003-01-22
  • 打赏
  • 举报
回复
关注!
afraidboy 2003-01-22
  • 打赏
  • 举报
回复
使用[out,retval]如何返回值?
那位有代码贴上来一份,不胜感激!
ruihuahan 2003-01-22
  • 打赏
  • 举报
回复
有类厂的类是可以通过CoCreateInstance等函数直接创建的类。而有些类是通过调用某些接口的函数间接创建的,所以不一定要暴露对应的类厂。
一般来说,接口方法的返回值为HRESULT,用来返回方法调用的状态,返回值一般用参数。
NAMESPACE用来限定变量等的可见性。
WQ 2003-01-22
  • 打赏
  • 举报
回复
当你需要一个别人不能创建的接口是不用类厂
比如Enumerator
可以,[out,retval]但只可一个
命名空间,管理方便
afraidboy 2003-01-22
  • 打赏
  • 举报
回复
为什么有的有idl文件,有的没有呢?

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧