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 接口定义的方法。
名称 |
说明 |
---|---|
在 Microsoft Office 应用程序加载托管外接程序时调用。 |
|
在 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 运行库的更多信息,请参见应用程序级外接程序的体系结构。
如何加载托管外接程序
当应用程序启动时,会产生下列步骤:
该应用程序通过在以下注册表项下查找项来发现外接程序:
HKEY_CURRENT_USER\Software\Microsoft\Office\<应用程序名称>\Addins\
此注册表项下的每一项都是外接程序的唯一 ID。通常,这是外接程序程序集的名称。
该应用程序在每个外接程序的注册表项下查找 Manifest 项。
托管外接程序可以在 HKEY_CURRENT_USER\Software\Microsoft\Office\<应用程序名称>\Addins\<外接程序 ID> 下的 Manifest 项中存储清单的完整路径。清单是一个文件(通常是 XML 文件),提供了可用于帮助加载外接程序的信息。
如果该应用程序找到 Manifest 项,便会尝试加载托管外接程序加载程序组件。为此,该应用程序会尝试创建实现 IManagedAddin 接口的 COM 对象。
Visual Studio Tools for Office 运行库包括外接程序加载程序组件 (VSTOLoader.dll),您也可以通过实现 IManagedAddin 接口来创建自己的组件。
该应用程序调用 IManagedAddin::Load 方法,并传入 Manifest 项的值。
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 创建的外接程序的计算机上。 |