[IronPython] COM Object Issue

2008-12-11 Thread Zaur Shibzoukhov
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

2008-11-26 Thread Zaur Shibzoukhov
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

2008-10-27 Thread Zaur Shibzoukhov
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