直接从shape-action调用c#外接程序方法

本文关键字:程序 方法 调用 shape-action | 更新日期: 2023-09-27 18:04:29

我有以下设置:我用VSTO为Visio 2010编写了一个加载项,这个加载项为UI添加了另一个ribbon。从这个用户界面,可以打开新的表单和做一些很酷的事情。

使用我重写的旧版本工具,可以右键单击一个形状并直接从该形状打开一个表单。这是通过向形状添加一个动作来实现的,看起来像:

=RUNADDON("VS2.EXE")

其中VS2.exe是打开另一个表单的可执行文件(必须在Visio的搜索路径中)。

我的问题是,是否有一种简单的方法可以从形状动作内部调用加载项/功能区中的方法?比如:

=RUNADDON("MyAddIn.MyMethod()")

我找到的相关信息(但没有回答这个问题)是

  • 如何从单独的c#项目调用VSTO AddIn方法?
  • http://msdn.microsoft.com/en-us/library/bb608621.aspx
  • http://msdn.microsoft.com/en-us/library/aa200979%28office.10%29.aspx
  • http://msdn.microsoft.com/en-us/library/ff767833.aspx

感谢您的回复和建议。

直接从shape-action调用c#外接程序方法

如果您想从ShapeSheet调用外接程序中的操作,那么您需要使用以下两个函数之一引发事件:

QUEUEMARKEREVENT("我的ContextString")见https://msdn.microsoft.com/en-us/library/office/ff767955.aspx

RUNADDONWARGS("QueueMarkerEvent"、"我的ContextString")见https://msdn.microsoft.com/EN-US/library/office/ff768158.aspx

第一个是较新的,是专门为此目的制作的。外接程序需要监听应用程序。用于捕获引发事件。

在Visio SDK中有一些例子