1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- """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
|