|
大家好,好久没有发新贴了,此贴来给广大的COM爱好者入门之用。(我也是入门者)
VC6开发Word的Com加载项的难度比VB6难,所以,很多我们VB爱好者在这上面会浪费很多时间。
我在浪费很多时间后,做了一个示例,以及注意事项,以避免大家不必要的集体浪费时间。
整体描述:
1.注意源码中有大量的注释,以下的注意,只是针对VB不同的地方
2.此示例是参考网上的,但几乎每句代码,我都会判断他的作用,是否一定要用,所以,可以说,比目前网上找到的资料更适合学过VB的。
3.此工程中多余的东西,我大多删除了,所以,不太大。
WordAddin.rar
(43.59 KB, 下载次数: 194)
如果你是开发爱好者,请看(如果你不是开发爱好者,你很可能一头雾水,也是正常的,大家都是从这里经过的):
注意:
本说明在参照以下的内容下的补充:(即是对以下内容的补充)
http://www.iforchina.com/show.aspx?id=22232&cid=157
http://www.vckbase.com/document/viewdoc/?id=644
http://www.vckbase.com/document/viewdoc/?id=539
http://www.vckbase.com/document/viewdoc/?id=648
0. 在运行本工程前,将修改"StdAfx.h"中的#import中的路径及WordAddin.h中的#import,否则,90%都编译不过(10%能编译过的,与我的PC安装Office与Window路径完全一样的)
修改的方法及细节见stdafx.h中的注释
1. 在#import时,只在引用Office(2003 sp3)库时,加named_guids,其他可不用加!
named_guids解释:
Tells the compiler to define and initialize GUID variables in old style, of the form LIBID_MyLib, CLSID_MyCoClass, IID_MyInterface, and DIID_MyDispInterface
2. 在rgs文件中,给注册项赋值用单引号!
3. 关于CComPtr与CComQIPtr的区别,请参考:http://www.cnblogs.com/howareyou ... /11/18/1336018.html
不过,一般VB开发者很难看懂,所以,简单的方法是记住:一般在Office库与Word库的有5处使用CComQIPtr,这5处是:Application、CommandBarButton、CommandBarComboBox、CommandBars、Document(这个在OnConnection时,通常还没有实例化,所以,用到的不多),其他都用CComPtr即可。
(注意3的措词)
4. 其中的ATLASSERT语句都是判断性的,可以删掉。
5. 另外,象if (FAILED(hr)) return hr; 这样的语句,可以删掉,都是判断性的,即判断前面是否正常执行
6. 按钮的图片是通过mspaint做的,在放到路径下,在利用"resources"新增2个图片,关闭工程后,在将rc中将图片的名字设为mspaint中的图片。
7. 菜单的Button按钮,必须给PutTag一个字符串,否则,事件无法激活。
kongguisheng@foxmail.com
2009.5.10
[ 本帖最后由 konggs 于 2009-5-14 13:05 编辑 ] |
|