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