IManagedAddin 接口

实现 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 接口定义的方法。

Name

说明

IManagedAddin::Load

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

IManagedAddin::Unload

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

备注

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

如何加载托管外接程序

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

  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 Runtime 包括外接程序加载程序组件 (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 Runtime 运行时中的 VSTOLoader.dll 使用。 因此,如果您使用 IManagedAddin 来创建自己的外接程序加载程序和运行时组件,则不能将组件部署到运行依赖于 Visual Studio Tools for Office Runtime 的外接程序的计算机上。

请参见

其他资源

非托管 API 参考(Visual Studio 中的 Office 开发)