L
Luke
Hi
I'm developing a c# application integrated with excel via ole automation.
I've developed an excel commandbar and handle buttons' click events. So far,
so good.
I got stuck with accessing my com addin from the .net application. I
couldn't find any official documentation, so following a vb example that I
found on the web, I'm passing the addin instance:
class Connect : Object, Excensibility.IDTExcensibility2
{
....
public void OnConnection(object application, Extensibility.ext_ConnectMode
connectMode, object addInInst, ref System.Array custom)
{
addInInst.GetType().InvokeMember("Object",
BindingFlags.Public | BindingFlags.SetProperty, null, addInInst, new
object [] {this});
}
....
}
According to the example I should be able to the addin from my application:
foreach(Office.ComAddIn comAddin in xlApp.COMAddIns)
{
if (comAddIn.ProgId.Equals("ComAddin.Connect"))
{
ComAddin.Connect com = (ComAddin.Connect)
comAddIn.GetType().InvokeMember("Object", BindingFlags.Public |
BindingFlags.GetProperty, null, comAddIn, null);
}
}
However I get an exception saying that the 'Specified cast is not valid'.
Is there some other way to access my com addin?
Cheers,
Luke
I'm developing a c# application integrated with excel via ole automation.
I've developed an excel commandbar and handle buttons' click events. So far,
so good.
I got stuck with accessing my com addin from the .net application. I
couldn't find any official documentation, so following a vb example that I
found on the web, I'm passing the addin instance:
class Connect : Object, Excensibility.IDTExcensibility2
{
....
public void OnConnection(object application, Extensibility.ext_ConnectMode
connectMode, object addInInst, ref System.Array custom)
{
addInInst.GetType().InvokeMember("Object",
BindingFlags.Public | BindingFlags.SetProperty, null, addInInst, new
object [] {this});
}
....
}
According to the example I should be able to the addin from my application:
foreach(Office.ComAddIn comAddin in xlApp.COMAddIns)
{
if (comAddIn.ProgId.Equals("ComAddin.Connect"))
{
ComAddin.Connect com = (ComAddin.Connect)
comAddIn.GetType().InvokeMember("Object", BindingFlags.Public |
BindingFlags.GetProperty, null, comAddIn, null);
}
}
However I get an exception saying that the 'Specified cast is not valid'.
Is there some other way to access my com addin?
Cheers,
Luke