Ok Chip - thanks for getting in touch. (I've cc'ed the list as it is a 'subscribers only' mailing list).

I'll check out the source for VSLab and have another play.

Thanks

Michael

Chip wrote:
Michael,

I posted twice to this thread but posts are not shown in the thread. I
mail my post to you:

Note: since I've posted but I don't see my reply I post again, sorry
if it is (almost) a duplicate

Hi I am Antonio Cisternino, author of VSLab,

Viewlets have been designed to be as close as possible to WinForms
UserControls, the Viewlet class inherit from control and simply
implements the communication with Visual Studio. In the roadmap we
think to let Viewlets to be used standalone, but for the moment I
would simply open the VSLabViewlets project and change the base class
from Viewlet to UserControl. Few more changes will be required. On the
Web site you'll find a few whitepapers describing Viewlets and VSLab
architecture, is less tied to VS than you would think.

-- Ciao,
-- Antonio


On Jun 27, 5:26 pm, Michael Foord <[EMAIL PROTECTED]> wrote:
Curt Hagenlocher wrote:
The Viewlet architecture in VSLab looks very closely tied to Visual
Studio.  The MK_E_UNAVAILABLE error is almost certainly because
Viewlet.Show is trying (and failing) to do a
Marshal.GetActiveObject("VisualStudio.DTE").
Ok - thanks for your help Curt. I guess using it standalone is out of
the question then.

At some point I would like to learn F#, so I may revisit it then - but
I'll drop it for now.

Michael





On Fri, Jun 27, 2008 at 7:35 AM, Michael Foord
<[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:
Curt Hagenlocher wrote: Oh, duh, it hosts itself inside that ViewletProxy that was
        previously uninitialized :)
         Are you doing this with Visual Studio running?
I tried hosting it in a separate form and it didn't show. I'm
    running standalone under IronPython - no VS.
Michael On Fri, Jun 27, 2008 at 6:52 AM, Curt Hagenlocher
        <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
        <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>>
        wrote:
That "dir" error is a known problem with beta 3 -- and as you
           might imagine, sky-high in priority on our list of things
        to fix
           for beta 4.
               Viewlets appear to be user controls; you probably need
        to host one
           in a Form.
On Fri, Jun 27, 2008 at 6:45 AM, Michael Foord
           <[EMAIL PROTECTED]
        <mailto:[EMAIL PROTECTED]>
        <mailto:[EMAIL PROTECTED]
        <mailto:[EMAIL PROTECTED]>>> wrote:
Curt Hagenlocher wrote: A bit of quality time with Reflector shows that
        there's a
                   _viewletsProxy object which hasn't been
        initialized.  You
                   probably need to call VSLabFSICore.Viewlets.Init()
        first.
                    It's static, and in the vslabfsicore module.
Thanks Curt - your reflector-fu is greater than mine. I
        should
               spend some quality time with it.
Your advice gets me to the next step, I can make a
               GraphControl flash momentarily into view (on creation), but
               attempting to show it causes another explosion:
C:\compile\VSLab>C:\compile\IronPython-2.0B3\ipy.exe
               -X:ExceptionDetail viewlet.
               py
               Operation unavailable (Exception from HRESULT: 0x800401E3
               (MK_E_UNAVAILABLE))
                at
System.Runtime.InteropServices.Marshal.GetActiveObject(Guid&
               rclsid, IntPt
               r reserved, Object& ppunk)
                at
System.Runtime.InteropServices.Marshal.GetActiveObject(String
               progID)
                at VSLabFSICore.Viewlet.Show()
                at GraphViewlet.GraphControl.Show()
                at _stub_$28##26(Closure , CallSite , CodeContext ,
        Object )
at _stub_MatchCaller(Object , CallSite , Object[] )
                at
Microsoft.Scripting.Actions.CallSite`1.UpdateAndExecute(Object[]
               args)
                at
Microsoft.Scripting.Actions.UpdateDelegates.Update2[T,T0,T1,TRet](CallSite
               site, T0 arg0, T1 arg1)
                at S$2.Initialize(CodeContext )
                at
        IronPython.Hosting.PythonCommandLine.RunFileWorker(String
               fileName)
                at IronPython.Hosting.PythonCommandLine.RunFile(String
        fileName)
               EnvironmentError: Operation unavailable (Exception from
               HRESULT: 0x800401E3 (MK_
               E_UNAVAILABLE))
The code that produces this is: import clr
               clr.AddReference('vslabfsicore')
               clr.AddReference('vslabviewlets')
from VSLabFSICore import Viewlets
               from GraphViewlet import GraphControl
Viewlets.Init()
               g = GraphControl()
               g.Show()
If instead of 'g.Show()' I attempt 'dir(g)' I get a
        very odd
               error!
C:\compile\VSLab>C:\compile\IronPython-2.0B3\ipy.exe
               -X:ExceptionDetail viewlet.
               py
               'this' type cannot be an interface itself.
                at
        System.RuntimeTypeHandle.GetFirstSlotForInterface(IntPtr
               interfaceHandle)
                at System.RuntimeType.GetInterfaceMap(Type ifaceType)
                at
Microsoft.Scripting.Generation.CompilerHelpers.TryGetCallableMethod(Method
               Info method)
                at
Microsoft.Scripting.Generation.CompilerHelpers.FilterNonVisibleMembers(Typ
               e type, MemberInfo[] foundMembers)
                at
IronPython.Runtime.Types.TypeInfo.MemberBinder.GetMember(Type
               type, String
               name, BindingFlags flags)
                at
IronPython.Runtime.Types.TypeInfo.StandardResolver.ResolveMember(MemberBin
               der binder, DynamicAction action, Type type, String name)
                at
IronPython.Runtime.Types.TypeInfo.MemberResolver.ResolveMembers(MemberBind
               er binder, DynamicAction action, Type type)
                at
IronPython.Runtime.Types.TypeInfo.GetResolvedMembers(MemberBinder
               memberBi
               nder, DynamicAction action, Type type)
                at
IronPython.Runtime.Calls.PythonBinder.ResolveMemberNames(CodeContext
               conte
               xt, PythonType type, PythonType owner, Dictionary`2
        memberNames)
                at
IronPython.Runtime.Types.PythonType.GetMemberNames(CodeContext
               context, Ob
               ject self)
                at
IronPython.Runtime.Operations.PythonOps.GetAttrNames(CodeContext
               context,
               Object o)
                at IronPython.Runtime.Builtin.dir(CodeContext context,
        Object o)
                at _stub_$26##24(Closure , CallSite , CodeContext ,
        Object ,
               Object )
at _stub_MatchCaller(Object , CallSite , Object[] )
                at
Microsoft.Scripting.Actions.CallSite`1.UpdateAndExecute(Object[]
               args)
                at
Microsoft.Scripting.Actions.UpdateDelegates.Update3[T,T0,T1,T2,TRet](CallS
               ite site, T0 arg0, T1 arg1, T2 arg2)
at S$2.Initialize(CodeContext )
                at
        IronPython.Hosting.PythonCommandLine.RunFileWorker(String
               fileName)
                at IronPython.Hosting.PythonCommandLine.RunFile(String
        fileName)
               ValueError: 'this' type cannot be an interface itself.
Incidentally, even when installed with VS Pro I can't get
               VSLab to work *anyway* (this is Vista 64bit FWIW), so
        the code
               may not be ready for prime time.
I may try firing up reflector myself and see where it
        takes me.
Michael Foord On Thu, Jun 26, 2008 at 2:58 PM, Michael Foord
                   <[EMAIL PROTECTED]
        <mailto:[EMAIL PROTECTED]>
                   <mailto:[EMAIL PROTECTED]
        <mailto:[EMAIL PROTECTED]>>
                   <mailto:[EMAIL PROTECTED]
        <mailto:[EMAIL PROTECTED]>
                   <mailto:[EMAIL PROTECTED]
        <mailto:[EMAIL PROTECTED]>>>> wrote:
The viewlets that come with VSLab look *really*
        cool.
                   They're
                      based on F# so I decided to see if they could be
        used
                   from IronPython.
http://www.codeplex.com/vslab The dependencies are pretty hefty. You need F#
                   installed *and*
                      Managed DirectX (June 2008 SDK ~450mb seems to
        fulfil
                   the dependency).
To get at the viewlet assemblies you need Visual
        Studio Pro
                      installed as well, but they can be extracted
        from the
                   VSLabs msi
                      installer without VS Pro.
Ok, so with all the dependencies installed I
        attempt to
                   use them -
                      and *boom*. Anyone here got any ideas?
IronPython 2.0 Beta (2.0.0.3000) on .NET
        2.0.50727.1434
                      Copyright (c) Microsoft Corporation. All rights
        reserved.
                      >>> import clr
                      >>> clr.AddReference('vslabfsicore')
                      >>> clr.AddReference('vslabviewlets')
                      >>> clr.AddReference('vslabcore')
                      >>> from GraphViewlet import GraphControl
                      >>> g = GraphControl()
                      Traceback (most recent call last):
                       File "<stdin>", line 1, in <module>
                       File "vslabviewlets", line unknown, in .ctor
                       File "vslabfsicore",- Hide quoted text -
- Show quoted text -...

read more ยป


--
http://www.ironpythoninaction.com/
http://www.voidspace.org.uk/
http://www.trypython.org/
http://www.ironpython.info/
http://www.theotherdelia.co.uk/
http://www.resolverhacks.net/

_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to