How do I have a client shutdown a win32 COM server?

Noah noah at noah.org
Sat Jul 12 12:47:44 EDT 2003


Hi,

How do I shutdown a win32 COM server?

I am scripting Adobe Illustrator through its COM interface.
The problem is that Illustrator has memory leaks.
And after a few hours of running, Illustrator will start to behave
oddly
until eventually it refuses the create new COM objects.
The solution is to close Illustrator and then restart it.
This is easy if I'm sitting at my desk and can see that it has
crashed.
What I'd like to do is have the client restart the server every 10
minutes
(or when it sees a specific exception).

A COM client will automatically start the COM server if it is 
not already running, but I don't know how to shutdown a COM server 
that is already running.

So, how do you bounce a COM server? 
If anyone has any hints I would appreciate it.

P.S. Note, that I'm pretty sure it's not the client leaking memory
because
if I shutdown the client and restart it with the same Illustrator COM
server
running it will immediately have the same problem. The COM error I get
is an "internal error" exception:
    com_error: (-2147352567, 'Exception occurred.', (0, None, 'an
internal error occurred: PARM', None, 0, -2147352577), None)

Yours,
Noah




More information about the Python-list mailing list