COM SDK高手快来看啊! 受不了,用COM SDK,你要实现N个接口呀!,不用ATL的话!,我要自杀呀! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 只要不用MFC都可以啊!!帮帮我吧! 我不会用mfc编程序,但是我知道实现你的想法不是那么简单的。 首先,只用com的sdk不能创建窗口,必须结合platformSDK一起编程。 那个所谓控件窗口实际上可以不是一个窗口,可能就是你的窗口上的一块地方。这个地方(site)可不简单,实现了不少接口。如果这个地方能防一个控件,则要实现的接口如下: 首先,必须实现IOleClientSite接口。一切COM客户Site一般都必须实现这个接口。不过不必实现这个接口有关链接的方法。 如果要和控件通信,必须实现IAdviseSinkEx接口。起码要实现OnViewChange方法。这个不是必需的 一般来说,控件都能支持,在位激活(InPlace Activation),因此必须实现IOleInPlaceSite接口。 必须实现IOleControlSite接口,处理一些有关控件问题。 IOleInPlaceFrame,控件可能需要显示它的工具条什么的,那就必须有这个 IOleContainer,枚举窗口中的对象 IDispatch,呈现环境属性 如果支持无窗口特性,应该实现IOleInPlaceSiteWindowless. 此外还有一些其它的要求,具体可以参见msdn. 以上就是实现一个control容器所要干的事. 这些工作十分琐碎,容易出错,并且有固定的套路.mfc已经为你实现了。你要是感兴趣,可以看mfc源程序。其他的控件容器的例子很少。可以看一下Inside OLE第2版的例子。 总之,mfc的CreateControl不是那么简单的 我对C++宏定义的定义语法和有什么作用不是很懂 MFC CSocket类的问题? PatBlt 如何让控件大小随窗口大小改变而改变? 怎样给一个对话框增加一个工具条?? WinExec 和 ShellExecute 命令分别是怎么使用的,他们有什么区别? 请问这是重载的什么操作符??? 要判断一个CString变量是否与半角的单引号 " 相等,怎么写? 关于根证书? 假前散分,顺便讨论,本人转行到IT及此公司半年多一点,老板说年后三月份转正,经理级待遇 ,工资3000(怎么可能?),兄弟们看看....... char * &cData中,cData属于何种类型? 如何屏蔽esc键
首先,只用com的sdk不能创建窗口,必须结合platformSDK一起编程。
那个所谓控件窗口实际上可以不是一个窗口,可能就是你的窗口上的一块地方。这个地方(site)可不简单,实现了不少接口。如果这个地方能防一个控件,则要实现的接口如下:
首先,必须实现IOleClientSite接口。一切COM客户Site一般都必须实现这个接口。不过不必实现这个接口有关链接的方法。
如果要和控件通信,必须实现IAdviseSinkEx接口。起码要实现OnViewChange方法。这个不是必需的
一般来说,控件都能支持,在位激活(InPlace Activation),因此必须实现IOleInPlaceSite接口。
必须实现IOleControlSite接口,处理一些有关控件问题。
IOleInPlaceFrame,控件可能需要显示它的工具条什么的,那就必须有这个
IOleContainer,枚举窗口中的对象
IDispatch,呈现环境属性
如果支持无窗口特性,应该实现IOleInPlaceSiteWindowless.
此外还有一些其它的要求,具体可以参见msdn.
以上就是实现一个control容器所要干的事.
这些工作十分琐碎,容易出错,并且有固定的套路.mfc已经为你实现了。你要是感兴趣,可以看mfc源程序。其他的控件容器的例子很少。可以看一下Inside OLE第2版的例子。
总之,mfc的CreateControl不是那么简单的