Sufficient conditions for COM local server to be singleton

Gordon McMillan gmcm at hypernet.com
Wed Jun 20 16:31:31 EDT 2001


Bill Bell wrote: 


>My essential question is: I had understood from reading previous 
>discussions on this list that, by default, to make a COM local 
>server fire up in only a single copy it is only necessary to declare 
>"_reg_clsctx_ = pythoncom.CLSCTX_LOCAL_SERVER". However, 
>this doesn't seem to do the trick.

No, not quite. Using CLSCTX_LOCAL_SERVER is enough to ensure
that there's only a single copy of your module loaded. If you
want only one copy of your instance, you'll have to use a
singleton pattern. Try registering a ParentFactory class that does
nothing but return the one and only instance of Parent (wrapped, 
of course).

class ParentFactory:
  _public_methods_ = ["GetTheParent"]
  _reg_clsid_ = ....


- Gordon



More information about the Python-list mailing list