用VC6.0编写Word插件(Office2K、XP、03)
2010-07-15 20:45:04 来源:WEB开发网第三步,通过上面的两个步骤,我们的插件框架已经形成,但是Office怎么知道启动的时候要来把我们的插件Load起来呢?Office的不同组件,例如Word、Excel、Outlook等怎么知道去Load自己的插件呢?答案就是在注册表中加入相应的键值。打开文件视图FileView—>Resource File中的rgs文件,加入以下代码:
HKCU
{
Software
{
Microsoft
{
Office
{
Word
{
Addins
{
''TestAddin.SimAddin''
{
val FriendlyName = s ''WORD Custom Addin''
val Description = s ''Word Custom Addin''
val LoadBehavior = d ''00000003''
val CommandLineSafe = d ''00000001''
}
}
}
}
}
}
}
以上代码由三个需要注意的地方:
1. Office下面的那个子项代表了这个插件是属于那个组件,Word、Excel、Outlook等等。
2. Addins下面的那个子项要写成你添加的COM组件的名字,千万不要照着我的工程的名字照抄。
3. 所有的值两边加的都是单引号,而且要用英文下的单引号,不能用双引号。
这样一个Office插件的框架才算完成,你可以在OnConnection函数中加一些测试代码,看看有没有执行到,如果执行成功才能继续,否则检查上面的步骤有没有错误。
第四步,同时需要import两个office的文件,一个是MSO.dll,另一个是MSWORD.OLB。这两个文件可以在以下位置找到(具体位置与office安装路径有关):
C:Program FilesCommon FilesMicrosoft SharedOFFICE11
C:Program FilesMicrosoft OfficeOFFICE11
然后在stdafx.h中加入如下语句:
#import "C:\Program Files\Common Files\Microsoft Shared\OFFICE11\mso.dll"
rename_namespace("Office") named_guids,exclude("Pages")
using namespace Office;
#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.olb" rename_namespace("VBE6")
using namespace VBE6;
#import "C:\Program Files\Microsoft Office\OFFICE11\MSWORD.OLB" rename("ExitWindows","ExitWindowsEx")
#import "C:\Program Files\Microsoft Office\OFFICE11\MSWORD.OLB"
rename_namespace("Word"), raw_interfaces_only, named_guids ,exclude("Pages")
using namespace Word;
更多精彩
赞助商链接