Python, VB and COM

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Nick  Leaton

    #1

    Python, VB and COM

    I have a class built as a class library. It makes
    a Test.dll, and I can call this from other VB projects

    class PyTest

    private _name as string

    Public Property Name() as string
    Get
    return _name
    End Get
    Set (byval value as string)
    _name = value
    End Set
    End Property

    End Class

    Then I was expecting to do something like

    import win32Com.client

    pt = win32com.client .Dispatch ("Test.PyTes t")
    pt.Name = "fred"
    print pt.Name

    However it doesn't look like the Test.dll is known.
    Any pointers?

    Thanks

    Nick

  • Steve Holden

    #2
    Re: Python, VB and COM

    Nick Leaton wrote:
    [color=blue]
    > I have a class built as a class library. It makes
    > a Test.dll, and I can call this from other VB projects
    >
    > class PyTest
    >
    > private _name as string
    >
    > Public Property Name() as string
    > Get
    > return _name
    > End Get
    > Set (byval value as string)
    > _name = value
    > End Set
    > End Property
    >
    > End Class
    >
    > Then I was expecting to do something like
    >
    > import win32Com.client
    >
    > pt = win32com.client .Dispatch ("Test.PyTes t")
    > pt.Name = "fred"
    > print pt.Name
    >
    > However it doesn't look like the Test.dll is known.
    > Any pointers?
    >
    > Thanks
    >
    > Nick
    >[/color]
    Well, first of all it would have been easier to deal with your specific
    problem if you'd copied the error message you got.

    Exercising my psychic powers. I'll assume you saw something like

    pywintypes.com_ error: (-2147221005, 'Invalid class string', None, None)

    The best advice I can give is as follows:

    1. Start pythonWin
    2. Bring up Help | PythonWin Reference
    3. Follow the win32com ReadMe link under "Python COM"
    4. Follow the "win32com documentation index" link
    5. Follow the "A quick start to Client Side COM" link.

    The document you reach (yes, accessible, isn't it - I have learned to
    accept that in the open source world some people program and some people
    write documentation, but the two sets rarely coincide) will explain the
    linkages between COM Objects and win32com, and the section under "To
    generate Python sources supporting a COM object" is probably what you need.

    regards
    Steve
    --
    Steve Holden http://www.holdenweb.com/
    Python Web Programming http://pydish.holdenweb.com/
    Holden Web LLC +1 703 861 4237 +1 800 494 3119

    Comment

    • Nick

      #3
      Re: Python, VB and COM

      Thanks Steve.

      I eventually found the library. Running makepy over the library
      produced the requisite file.

      Its working.

      Help appreciated.

      Nick

      Comment

      Working...