COM Object Method Invoke Exception - Silverlight 4
Posted
by Adam Driscoll
on Stack Overflow
See other posts from Stack Overflow
or by Adam Driscoll
Published on 2010-05-04T17:32:17Z
Indexed on
2010/05/04
17:58 UTC
Read the original article
Hit count: 1663
I'm trying to use the new AutomationFactory
provided with Silverlight 4 to call a .NET COM class.
.NET COM-Exposed Class:
public class ObjectContainer
{
public bool GetObject([Out, MarshalAs((UnmanagedType.IUnknown)] out object obj)
{
obj = new SomeOtherObj();
return true;
}
}
Silverlight Assembly:
dynamic objectContainer;
try
{
objectContainer = AutomationFactory.GetObject(ProgId);
} catch
{
objectContainer = AutomationFactory.CreateObject(ProgId);
}
object obj;
if (!objectContainer.GetObject(out obj))
{
throw new Exception();
}
When I call objectContainer.GetObject(out obj)
an exception is thrown stating:
Value does not fall within the expected range.
at MS.Internal.ComAutomation.ComAutomationNative.CheckInvokeHResult(UInt32 hr, String memberName, String exceptionSource, String exceptionDescription, String exceptionHelpFile, UInt32 exceptionHelpContext) at MS.Internal.ComAutomation.ComAutomationNative.Invoke(Boolean tryInvoke, String memberName, ComAutomationInvokeType invokeType, ComAutomationInteropValue[] rgParams, IntPtr nativePeer, ComAutomationInteropValue& returnValue) at MS.Internal.ComAutomation.ComAutomationObject.InvokeImpl(Boolean tryInvoke, String name, ComAutomationInvokeType invokeType, Object& returnValue, Object[] args)
at MS.Internal.ComAutomation.ComAutomationObject.Invoke(String name, ComAutomationInvokeType invokeType, Object[] args) at System.Runtime.InteropServices.Automation.AutomationMetaObjectProvider.TryInvokeMember(InvokeMemberBinder binder, Object[] args, Object& result) at System.Runtime.InteropServices.Automation.AutomationMetaObjectProviderBase.<.cctor>b__4(Object obj, InvokeMemberBinder binder, Object[] args) at CallSite.Target(Closure , CallSite , Object , String , Object& ) at CallSite.Target(Closure , CallSite , Object , String , Object& ) at ApplicationModule.ObjectContainer.GetObject()
Wha's the deal?
© Stack Overflow or respective owner