开发Office COM Addin 的一点总结
近期做了初浅地学习了在Visual Studio.Net 中开发Office COM Addin的方法,微软让这个工程的建立,管理相当简单,不少工作就自动完成了,所要做的,是实现Connect类的几个函数。
这个几个函数,虽然要自己来实现,但其中几个对很多Addin来说差不多都是一样的。根据自己的想法,总结了一下其中几个函数的使用。
Connect 继承于Extensibility.IDTExtensibility2类,需要实现以下五个函数。
public void OnConnection(object application, Extensibility.ext_ConnectMode connectMode,
object addInInst, ref System.Array custom)
{
applicationObject = application;
addInInstance = addInInst;
if(connectMode != Extensibility.ext_ConnectMode.ext_cm_Startup)
{
OnStartupComplete(ref custom);
}
}
public void OnDisconnection( Extensibility.ext_DisconnectMode disconnectMode, ref System.Array custom)
{
if (disconnectMode != Extensibility.ext_DisconnectMode.ext_dm_HostShutdown)
{
OnBeginShutdown(ref custom);
}
applicationObject = null;
}
public void OnBeginShutdown(ref System.Array custom)
{
object missing = Missing.Value ;
myButton.Delete(missing);
myButton = null;
}
OnAddinsUpdate 目前尚未用到过这个函数,对此不作说明。
以上是我对做过的几个Addin的看法,会有不对的地方。
这个几个函数,虽然要自己来实现,但其中几个对很多Addin来说差不多都是一样的。根据自己的想法,总结了一下其中几个函数的使用。
Connect 继承于Extensibility.IDTExtensibility2类,需要实现以下五个函数。
-
OnConnection: 装载插件到内存时处理(可以通过自动化在程序启动时自动装载插件)。
- OnDisconnection: 从内存中缷载插件时处理。
- OnAddinsUpdate: COM插件改变时处理。
- OnStartupComplete: 当应用程序启动时插件刚装载完成时处理。
- OnBeginShutdown: 当应用程序关闭时插件刚缷载完成时处理。
但在一般编程中OnConnection和OnDisconnection是比较固定的,如下为两个比较典型的例子,基本上可以直接拿来用的。
OnStartupComplete一般来说是最主要的一个函数,Addin的按钮,菜单等等控件的初始化和加载都是在这个函数里边完成的。OnBeginShutdown 主要用来清理各个控件从宿主程序中删除。
OnAddinsUpdate 目前尚未用到过这个函数,对此不作说明。
以上是我对做过的几个Addin的看法,会有不对的地方。
浙公网安备 33010602011771号