AIM-PIbd-32-Kurbanova-A-A/aimenv/Lib/site-packages/win32com/server/factory.py

27 lines
850 B
Python
Raw Normal View History

2024-10-02 22:15:59 +04:00
# Class factory utilities.
import pythoncom
def RegisterClassFactories(clsids, flags=None, clsctx=None):
"""Given a list of CLSID, create and register class factories.
Returns a list, which should be passed to RevokeClassFactories
"""
if flags is None:
flags = pythoncom.REGCLS_MULTIPLEUSE | pythoncom.REGCLS_SUSPENDED
if clsctx is None:
clsctx = pythoncom.CLSCTX_LOCAL_SERVER
ret = []
for clsid in clsids:
# Some server append '-Embedding' etc
if clsid[0] not in ["-", "/"]:
factory = pythoncom.MakePyFactory(clsid)
regId = pythoncom.CoRegisterClassObject(clsid, factory, clsctx, flags)
ret.append((factory, regId))
return ret
def RevokeClassFactories(infos):
for factory, revokeId in infos:
pythoncom.CoRevokeClassObject(revokeId)