Mark Hammond wrote:

However, I have a problem that one of the methods on the ActiveX
should show a UI and fire an event. The python code doesn't
show the UI
and no events get fired. This does the same thing in VB
uncles I wait in
a polling loop for my call to the ActiveX component and use the
ubiquitous DoEvents call in VB6 - is there something which
will allow me
to yield control to the OS in the same way as VB6 in Python.



ActiveX controls need an AX control "container" in order for them to work correctly. win32com by itself currently can not provide such an environment. However, Pythonwin and wxPython both can (Pythonwin by virtue of MFC, wxPython by virtue of wxWindows). I don't know much about wxPython's support, but see pythonwin\pywin\demos\ocx for examples of how to do it in pythonwin.

Mark




Hello,

Sorry that was a bad explanation - the control _is_ an ActiveX exe - not an ocx - it simply brings up a form (which in actual fact I then hide immediatly, I can't stop the form appearing in the first place - it has to appear for a few millisecs like a subliminal message). The component is an out of process exe - I did find something like DoEvents in pythoncom.PumpWaitingMessages - however I still can't get the win32com/python interation working, events are not simply not fired in my code.

I think that I will have to write a thin wrapper in VB or C# to access the underlying ActiveX exe (and protect the exe from the vagarities of the interface) which can then be accesssed with win32com - bit of a pain because it means that I have a maintenance issue (I work in a pure python shop and VB/C# code cannot be maintained by anyone except for me) but hey, its a protection against future redundancies <joke>! However if you know any gotchyas with ActiveX exe/win32com integration that I could look out for then that would be great.

   Thanks for your help.

Cheers,

Neil

_______________________________________________
Python-win32 mailing list
[EMAIL PROTECTED]
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to