VSTO加载项-将可固定窗口添加到VBE编辑器



我正在用C#为PowerPoint制作一个VSTO插件,它添加了一个更好的项目资源管理器。我一直在以用户形式制作它,但如果窗口是VBE编辑器的一部分(也称为可停靠窗口(会更好。我在Application.VBE.Windows.CreateToolWindow中找到了CreateToolWindow函数。然而,我不知道如何使用这个功能,也不知道它是否能实现我想要做的事情。医生对此只字不提,我在网上也找不到任何例子。如何获取Addin实例?什么是ProgId?什么是UserDocument?

这是我的基本代码:

namespace PowerPointAddIn1
{
public partial class ThisAddIn
{
public static PowerPoint.Application App;
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
Application.VBE.Windows.CreateToolWindow(/*...*/);
}
private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
{
}
#region VSTO generated code
private void InternalStartup()
{
this.Startup += new System.EventHandler(ThisAddIn_Startup);
this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
}
#endregion
}
}

VSTO加载项不是为自定义VBA编辑器而设计的。您似乎需要为Visual Basic for Applications编辑器开发COM加载项,而不是PowerPoint。要做到这一点,您需要实现IDTExtensibility2接口。通常,您的实现将具有类(实现COM加载项接口(的Guid("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")ProgId("YourAddins.UserControlHost")属性。

如何获取Addin实例?

ThisAddin是您的外接程序实例(在C#中使用this(。通常,当您实现IDTExtensibility2接口时,实例会作为参数传递给Connect方法。

什么是ProgId?

这是外接程序的名称。通常,您可以在windows注册表或为外接程序类指定的ProgID属性中找到它。

什么是UserDocument?

应该在编辑器中显示的文档。

您可以在使用.NET(C#(.article为VBA编辑器创建工具窗口中找到示例代码。

您可以查看此web档案(由MzTool的主要贡献者Carlos Quintero撰写(:https://web.archive.org/web/20211024050815/https://www.mztools.com/articles/2012/MZ2012017.aspx

你会在那个网页上找到许多其他有用的链接来创建vbe插件!

最新更新