IManagedAddin 接口

更新:2007 年 11 月

实现 IManagedAddin 接口可创建加载托管外接程序的组件。此接口是在 2007 Microsoft Office system 中添加的。

[
        object,
        uuid(B9CEAB65-331C-4713-8410-DDDAF8EC191A),
        pointer_default(unique),
        oleautomation
]
interface IManagedAddin : IUnknown
{
        HRESULT Load(
                [in] BSTR bstrManifestURL, 
                [in] IDispatch *pdispApplication);
        HRESULT Unload();
};

方法

下表列出了 IManagedAddin 接口定义的方法。

名称

说明

IManagedAddin::Load

在 Microsoft Office 应用程序加载托管外接程序时调用。

IManagedAddin::Unload

在 Microsoft Office 应用程序即将卸载托管外接程序时调用。

备注

从 2007 Microsoft Office system 开始,Microsoft Office 应用程序使用 IManagedAddin 接口来帮助加载 Visual Studio Tools for Office 外接程序。您可以实现 IManagedAddin 接口来针对托管外接程序创建自己的外接程序加载程序和运行库,而不是使用 Visual Studio Tools for Office 自带的外接程序加载程序 (VSTOLoader.dll) 和运行库。有关 VSTOLoader.dll 和 Visual Studio Tools for Office 运行库的更多信息,请参见应用程序级外接程序的体系结构

如何加载托管外接程序

当应用程序启动时,会产生下列步骤:

  1. 该应用程序通过在以下注册表项下查找项来发现外接程序:

    HKEY_CURRENT_USER\Software\Microsoft\Office\<应用程序名称>\Addins\

    此注册表项下的每一项都是外接程序的唯一 ID。通常,这是外接程序程序集的名称。

  2. 该应用程序在每个外接程序的注册表项下查找 Manifest 项。

    托管外接程序可以在 HKEY_CURRENT_USER\Software\Microsoft\Office\<应用程序名称>\Addins\<外接程序 ID> 下的 Manifest 项中存储清单的完整路径。清单是一个文件(通常是 XML 文件),提供了可用于帮助加载外接程序的信息。

  3. 如果该应用程序找到 Manifest 项,便会尝试加载托管外接程序加载程序组件。为此,该应用程序会尝试创建实现 IManagedAddin 接口的 COM 对象。

    Visual Studio Tools for Office 运行库包括外接程序加载程序组件 (VSTOLoader.dll),您也可以通过实现 IManagedAddin 接口来创建自己的组件。

  4. 该应用程序调用 IManagedAddin::Load 方法,并传入 Manifest 项的值。

  5. IManagedAddin::Load 方法执行加载外接程序所需的任务,例如为正在加载的外接程序配置应用程序域和安全策略。

有关 Microsoft Office 应用程序用来发现和加载托管外接程序的注册表项的更多信息,请参见 应用程序级外接程序的注册表项

IManagedAddin 实现指南

如果实现 IManagedAddin,则必须使用以下 CLSID 注册包含该实现的 DLL:

99D651D7-5F7C-470E-8A3B-774D5D9536AC

Microsoft Office 应用程序使用此 CLSID 来创建实现 IManagedAddin 的 COM 对象。

警告:

CLSID 也由 Visual Studio Tools for Office 运行库中的 VSTOLoader.dll 使用。因此,如果您使用 IManagedAddin 来创建自己的外接程序加载程序和运行库组件,则不能将组件部署到运行使用 Visual Studio Tools for Office 创建的外接程序的计算机上。

请参见

其他资源

非托管 API 引用 (Visual Studio Tools for Office)