[IronPython] COM Object Issue
I just discovered strange thing with COM (IP 2.0): D:\Downloads\IronPython-2.0-Bin\IronPython-2.0>ipy.exe -X:ExceptionDetail -X:ShowClrExceptions IronPython 2.0 (2.0.0.0) on .NET 2.0.50727.1433 Type "help", "copyright", "credits" or "license" for more information. >>> import System >>> wt=System.Type.GetTypeFromProgID("Word.Application") >>> wa=System.Activator.CreateInstance(wt) >>> wa.Documents.Add() >>> wa.Documents[1] Error while invoking Item. в Microsoft.Scripting.Com.ComRuntimeHelpers.CheckThrowException(Int32 hresult, ExcepInfo& excepInfo, UInt32 argErr, String message) в _stub_$26##25(Closure , CallSite , DispCallable ) в Microsoft.Scripting.Actions.MatchCaller.Call1[T0,TRet](Func`3 target, CallSite site, Object[] args) в Microsoft.Scripting.Actions.CallSite`1.UpdateAndExecute(Object[] args) в Microsoft.Scripting.Actions.UpdateDelegates.Update1[T,T0,TRet](CallSite site, T0 arg0) в _stub_$25##24(Closure , CallSite , ComObject , Int32 ) в Microsoft.Scripting.Actions.MatchCaller.Call2[T0,T1,TRet](Func`4 target, CallSite site, Object[] args) в Microsoft.Scripting.Actions.CallSite`1.UpdateAndExecute(Object[] args) в Microsoft.Scripting.Actions.UpdateDelegates.Update2[T,T0,T1,TRet](CallSite site, T0 arg0, T1 arg1) в _stub_$24##23(Closure , CallSite , Object , Int32 ) в Microsoft.Scripting.Actions.MatchCaller.Call2[T0,T1,TRet](Func`4 target, CallSite site, Object[] args) в Microsoft.Scripting.Actions.CallSite`1.UpdateAndExecute(Object[] args) в Microsoft.Scripting.Actions.UpdateDelegates.Update2[T,T0,T1,TRet](CallSite site, T0 arg0, T1 arg1) в $23##22(Closure , Scope , LanguageContext ) в Microsoft.Scripting.Runtime.OptimizedScriptCode.InvokeTarget(LambdaExpression code, Scope scope) в Microsoft.Scripting.ScriptCode.Run(Scope scope) в IronPython.Hosting.PythonCommandLine.<>c__DisplayClass1.b__0() StandardError: Error while invoking Item. CLR Exception: TargetParameterCountException : Error while invoking Item. >>> wa.Documents[None,1] >>> wa.Documents[1,1] It looks like IP's wa.Documents indexer make wrong call of .Item. -- Zaur ___ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
Re: [IronPython] COM Object Issue
What will happen with the item-like access to COM objects in IP 2.0? Whether it will return to []-like access (as in RC 1) or it will remain .Item(...)? IMHO RC 1 way is more preferred. Best regards, Zaur 2008/10/27 Dino Viehland <[EMAIL PROTECTED]>: > Oh, and I'm not sure if this is by design or not (I'll need to ping the DLR > team), but it seems you can do: > > wd.Variables.Item('foo') > > instead. > > -Original Message- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Dino Viehland > Sent: Monday, October 27, 2008 7:44 AM > To: Discussion of IronPython > Subject: Re: [IronPython] COM Object Issue > > Is the exception you're seeing "Error while invoking Item"? Just want to > make sure I'm seeing the same thing and the actual exception is cut off in > your snippet below. > > -Original Message- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Zaur > Shibzoukhov > Sent: Monday, October 27, 2008 12:51 AM > To: users@lists.ironpython.com > Subject: [IronPython] COM Object Issue > > There is an error in RC 1: > > IronPython 2.0 (2.0.0.0) on .NET 2.0.50727.1433 > Type "help", "copyright", "credits" or "license" for more information. >>>> import System >>>> wa = >>>> System.Activator.CreateInstance(System.Type.GetTypeFromProgID("Word.Application")) >>>> wd = wa.Documents.Add() >>>> wd.Variables.Add("foo") > >>>> wd.Variables["foo"] > Traceback (most recent call last): > File "", line 1, in > > In IronPython Beta 5 it worked as expected: > > IronPython 2.0 Beta (2.0.0.5000) on .NET 2.0.50727.1433 > Type "help", "copyright", "credits" or "license" for more information. >>>> import System >>>> wa = >>>> System.Activator.CreateInstance(System.Type.GetTypeFromProgID("Word.Application")) >>>> wd = wa.Documents.Add() >>>> wd.Variables.Add("foo") > >>>> wd.Variables["foo"] > > > Best regards, > Zaur > ___ > Users mailing list > Users@lists.ironpython.com > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > ___ > Users mailing list > Users@lists.ironpython.com > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > ___ > Users mailing list > Users@lists.ironpython.com > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > ___ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
[IronPython] COM Object Issue
There is an error in RC 1: IronPython 2.0 (2.0.0.0) on .NET 2.0.50727.1433 Type "help", "copyright", "credits" or "license" for more information. >>> import System >>> wa = >>> System.Activator.CreateInstance(System.Type.GetTypeFromProgID("Word.Application")) >>> wd = wa.Documents.Add() >>> wd.Variables.Add("foo") >>> wd.Variables["foo"] Traceback (most recent call last): File "", line 1, in In IronPython Beta 5 it worked as expected: IronPython 2.0 Beta (2.0.0.5000) on .NET 2.0.50727.1433 Type "help", "copyright", "credits" or "license" for more information. >>> import System >>> wa = >>> System.Activator.CreateInstance(System.Type.GetTypeFromProgID("Word.Application")) >>> wd = wa.Documents.Add() >>> wd.Variables.Add("foo") >>> wd.Variables["foo"] Best regards, Zaur ___ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com