В Com надстройку я должен был добавить:
public partial class ThisAddIn
{
...
protected override object RequestComAddInAutomationService()
{
if (addinUtilities == null)
{
addinUtilities = new AddinUtilities();
}
return addinUtilities;
}
...
}
Вы должны вернуть объект из этой функции, этот объект может впоследствии использоваться в Interop как в фрагменте кода ниже. добавьте любую функциональность, которую вы хотите открыть этому объекту.
Затем используйте надстройку следующим образом:
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
.