社区
ATL
帖子详情
CoCreateInstance返回E_NOTIMPL
blackblue
2004-01-11 03:25:52
在客户端使用CoCreateInstance创建一个进程外接口时,
如果该接口派生自IDispatch,就可以正常创建,
如果该接口派生自IUnknown,就返回E_NOTIMPL,调试后可以肯定在服务器侧已成功的创建了接口实例。不知道是不是和接口列集有关?
哪位大哥给解释一下?
...全文
203
7
打赏
收藏
CoCreateInstance返回E_NOTIMPL
在客户端使用CoCreateInstance创建一个进程外接口时, 如果该接口派生自IDispatch,就可以正常创建, 如果该接口派生自IUnknown,就返回E_NOTIMPL,调试后可以肯定在服务器侧已成功的创建了接口实例。不知道是不是和接口列集有关? 哪位大哥给解释一下?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
blackblue
2004-01-13
打赏
举报
回复
非常感谢,问题已解决
lop5712
2004-01-11
打赏
举报
回复
楼主的错误是因为使用了Service,即一个进程外组件,必须使用列集。但楼主使用了标准列集方式(组件没有实现IMarshal),却没有提供对应的代理/占位组件,因此只对那个接口错误,如果楼主换成声请IUnknown*接口的话,应该不会出错(不过就只能调用那3个函数)。
下面的帖子和楼主的问题是同样的,楼主可参考其中的步骤生成代理/占位组件并注册。
http://expert.csdn.net/Expert/topic/2604/2604535.xml?temp=.3787653
而至于为什么从IDispatch派生的可以没事,那是因为IDispatch的代理/占位组件已经实现编好了,存于ole32.dll中,因此即使楼主没有提供它的代理/占位组件依然可以成功调用。
blackblue
2004-01-11
打赏
举报
回复
不好意思,刚才发现CoCreateInstance返回的是E_NOINTERFACE,而不是E_NOTIMPL,
正确的问题应该是这样的:
在客户端使用CoCreateInstance创建一个进程外接口时,
如果该接口派生自IDispatch,就可以正常创建,
如果该接口派生自IUnknown,就返回E_NOINTERFACE,调试后可以肯定在服务器侧已成功的创建了接口实例。不知道是不是和接口列集有关?
希望各位帮忙解决。
blackblue
2004-01-11
打赏
举报
回复
客户端是VC.你可以试试
(1)服务器侧使用ATL向导生成一个Service,然后New ATL Object,其中Interface设为Custom,添加新类编译即可
(2)客户端导入类型库后调用CoCreateInstance
就会出这个问题
GameWeaver
2004-01-11
打赏
举报
回复
帮你顶
wangweixing2000
2004-01-11
打赏
举报
回复
这个意思是你没有导入类型库或者说你的导入库是错误的!你看看你的控件支持双接口吗?如果你在接口派生自IDispatch,可以正常创建,那么IUnknown就不会有问题!你还要看看你的客户端是什么语言了!如果是在vb下只能在IDispatch下!因为在那些宏语言(vb、asp...)导入库只支持IDispatch接口。
blackblue
2004-01-11
打赏
举报
回复
请顺便告知如何解决?谢谢了
SHLoadInProc在什么时候会卸载一个DLL?
何谓SHLoadInProc SHLoadInProc函数能将一个模块装入到...需要注意的是,此函数在Windows Vista及后续版本就不再可用了,如果你在这类操作系统中调用它,系统只是简单地
返回
E_
NOTIMPL
。 SHLoadInProc函数会指示Exp
自定义浏览器 选择自 jiangsheng 的 Blog
IOleClientSite的所有方法都可以
返回
E_
NOTIMPL
。 一些IOleInPlaceSite和IOleWindow的方法需要一个实现来覆盖
返回
值。可以在示例代码中查看IOleInPlaceSite和IOleWindow的最小实现的样例代码。 既然我们已经完成了...
编写媒体基础MFT组件
- 如果此方法
返回
E_
NOTIMPL
,则MFT不提供最匹配的输入类型,继续执行第2步。 2、调用IMFTransform::SetInputType设置输入的类型,你可以使用在第1步中获取的到的最匹配的输入类型,也可以自己创建自定义的...
通过WTL自定义CShellFileDialog对话框,即实现IFileDialogControlEvents接口和处理IFileDialogCustomize接口
} // Overrideables - Event handlers HRESULT OnButtonClicked(DWORD /*dwIDCtl*/) { return E_
NOTIMPL
; } HRESULT OnCheckButtonToggled(DWORD /*dwIDCtl*/, BOOL /*bChecked*/) { return E_
NOTIMPL
; } HRESULT ...
COM(Componet Object Model_组件对象模型)技术概述
如果函数正常执行,则
返回
S_OK,同时真正的函数运行结果则通过参数指针
返回
。如果遇到了异常情况,则COM系统经过判断,会
返回
相应的错误值。常见的
返回
值有: HRESULT 值 ...
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章