2011-07-26 35 views

回答

0

在COM加载我不得不补充:

public partial class ThisAddIn 
{ 
    ... 
    protected override object RequestComAddInAutomationService() 
    { 
     if (addinUtilities == null) 
     { 
       addinUtilities = new AddinUtilities(); 
     } 
     return addinUtilities; 
    } 
... 
} 

你应该从这个函数返回一个对象,这个对象可以在以后的互操作使用如下面的代码片段。添加你想暴露给这个对象的任何功能。

然后使用外接程序如下:

Application app = new Application(); 
var myAddin = app.COMAddIns; 
var count = myAddin.Count; 
COMAddIn addin; 
for (int i = 1; i <= count ; i++) // not zero indexed 
{ 
    addin = myAddin.Item(i); 
    var ob = addin.Object; 
    var str = addin.ProgId; 
    if (ob != null) 
    { 
     ob.RunQuery(ws); 
    } 
} 

正如你可以看到我还没有找到确定我的插件(如果一个人都知道我想听到)的一个很好的方式,但你可以迭代它们并检查progId。

addin.Object是我们从RequestComAddInAutomationService返回的对象。