You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.7 KiB
54 lines
1.7 KiB
6 years ago
|
"""Manages a dictionary of CLSID strings to Python classes.
|
||
|
|
||
|
Primary use of this module is to allow modules generated by
|
||
|
makepy.py to share classes. @makepy@ automatically generates code
|
||
|
which interacts with this module. You should never need to reference
|
||
|
this module directly.
|
||
|
|
||
|
This module only provides support for modules which have been previously
|
||
|
been imported. The gencache module provides some support for loading modules
|
||
|
on demand - once done, this module supports it...
|
||
|
|
||
|
As an example, the MSACCESS.TLB type library makes reference to the
|
||
|
CLSID of the Database object, as defined in DAO3032.DLL. This
|
||
|
allows code using the MSAccess wrapper to natively use Databases.
|
||
|
|
||
|
This obviously applies to all cooperating objects, not just DAO and
|
||
|
Access.
|
||
|
"""
|
||
|
mapCLSIDToClass = {}
|
||
|
|
||
|
def RegisterCLSID( clsid, pythonClass ):
|
||
|
"""Register a class that wraps a CLSID
|
||
|
|
||
|
This function allows a CLSID to be globally associated with a class.
|
||
|
Certain module will automatically convert an IDispatch object to an
|
||
|
instance of the associated class.
|
||
|
"""
|
||
|
|
||
|
mapCLSIDToClass[str(clsid)] = pythonClass
|
||
|
|
||
|
def RegisterCLSIDsFromDict( dict ):
|
||
|
"""Register a dictionary of CLSID's and classes.
|
||
|
|
||
|
This module performs the same function as @RegisterCLSID@, but for
|
||
|
an entire dictionary of associations.
|
||
|
|
||
|
Typically called by makepy generated modules at import time.
|
||
|
"""
|
||
|
mapCLSIDToClass.update(dict)
|
||
|
|
||
|
def GetClass(clsid):
|
||
|
"""Given a CLSID, return the globally associated class.
|
||
|
|
||
|
clsid -- a string CLSID representation to check.
|
||
|
"""
|
||
|
return mapCLSIDToClass[clsid]
|
||
|
|
||
|
def HasClass(clsid):
|
||
|
"""Determines if the CLSID has an associated class.
|
||
|
|
||
|
clsid -- the string CLSID to check
|
||
|
"""
|
||
|
return clsid in mapCLSIDToClass
|