Share via


IManagedAddin 接口

实现 IManagedAddin 接口以创建加载托管 VSTO 外接程序的组件。此接口是在 2007 Microsoft 办公室 系统中添加的。

语法

[
    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 应用程序加载托管 VSTO 外接程序时调用。
IManagedAddin::Unload 在 Microsoft Office 应用程序即将卸载 VSTO 托管外接程序时调用。

注解

Microsoft 办公室应用程序(从 2007 Microsoft 办公室 系统开始)使用 IManagedAddin 接口来帮助加载 办公室 VSTO 外接程序。可以实现 IManagedAddin 接口,为托管 VSTO 外接程序创建自己的 VSTO 外接程序加载器和运行时,而不是使用 VSTO 外接程序加载程序(VSTOLoader.dll)和 Visual Studio Tools for 办公室 运行时。 有关更多信息,请参见 Architecture of VSTO Add-ins

如何加载托管加载项

应用程序启动时,会执行以下步骤:

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

    HKEY_CURRENT_U标准版R\Software\Microsoft\办公室\<application name>\Addins\

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

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

    托管 VSTO 外接程序可以将清单Manifest的完整路径存储在HKEY_CURRENT_U标准版R\Software\Microsoft\办公室\<application name>\Addins\addins\<add-in ID> 下的条目中。 清单是一个文件(通常是 XML 文件),提供用于帮助加载 VSTO 外接程序的信息。

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

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

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

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

    有关Microsoft 办公室应用程序用于发现和加载托管 VSTO 外接程序的注册表项的详细信息,请参阅 VSTO 外接程序的注册表项。

实现 IManagedAddin 的指导

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

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

Microsoft 办公室应用程序使用此 CLSID 创建实现 IManagedAddin 的 COM 对象。

注意

Visual Studio Tools for 办公室 运行时中的 VSTOLoader.dll 也使用此 CLSID。 因此,如果使用 IManagedAddin 创建自己的 VSTO 外接程序加载器和运行时组件,则不能将组件部署到运行依赖于 Visual Studio Tools for 办公室 运行时的 VSTO 外接程序的计算机。

另请参阅