home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_2706 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  3.4 KB  |  111 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import string
  5. import pythoncom
  6. from win32com.server import util, policy
  7. from win32com.server.exception import COMException
  8. import winerror
  9. import types
  10. import pywintypes
  11. from pythoncom import DISPATCH_METHOD, DISPATCH_PROPERTYGET
  12. from winerror import S_OK
  13. UnicodeType = pywintypes.UnicodeType
  14. StringType = types.StringType
  15.  
  16. class DictionaryPolicy(policy.BasicWrapPolicy):
  17.     _com_interfaces_ = []
  18.     _name_to_dispid_ = {
  19.         'item': pythoncom.DISPID_VALUE,
  20.         '_newenum': pythoncom.DISPID_NEWENUM,
  21.         'count': 1 }
  22.     _reg_desc_ = 'Python Dictionary'
  23.     _reg_clsid_ = '{39b61048-c755-11d0-86fa-00c04fc2e03e}'
  24.     _reg_progid_ = 'Python.Dictionary'
  25.     _reg_verprogid_ = 'Python.Dictionary.1'
  26.     _reg_policy_spec_ = 'win32com.servers.dictionary.DictionaryPolicy'
  27.     
  28.     def _CreateInstance_(self, clsid, reqIID):
  29.         self._wrap_({ })
  30.         return pythoncom.WrapObject(self, reqIID)
  31.  
  32.     
  33.     def _wrap_(self, ob):
  34.         self._obj_ = ob
  35.  
  36.     
  37.     def _invokeex_(self, dispid, lcid, wFlags, args, kwargs, serviceProvider):
  38.         if dispid == 0:
  39.             l = len(args)
  40.             if l < 1:
  41.                 raise COMException(desc = 'not enough parameters', scode = winerror.DISP_E_BADPARAMCOUNT)
  42.             l < 1
  43.             key = args[0]
  44.             if type(key) == UnicodeType:
  45.                 pass
  46.             elif type(key) == StringType:
  47.                 key = pywintypes.Unicode(key)
  48.             else:
  49.                 raise COMException(desc = 'Key must be a string', scode = winerror.DISP_E_TYPEMISMATCH)
  50.             key = (type(key) == UnicodeType).lower()
  51.             if wFlags & (DISPATCH_METHOD | DISPATCH_PROPERTYGET):
  52.                 if l > 1:
  53.                     raise COMException(scode = winerror.DISP_E_BADPARAMCOUNT)
  54.                 l > 1
  55.                 
  56.                 try:
  57.                     return self._obj_[key]
  58.                 except KeyError:
  59.                     return None
  60.                 
  61.  
  62.             None<EXCEPTION MATCH>KeyError
  63.             if l != 2:
  64.                 raise COMException(scode = winerror.DISP_E_BADPARAMCOUNT)
  65.             l != 2
  66.             if args[1] is None:
  67.                 
  68.                 try:
  69.                     del self._obj_[key]
  70.                 except KeyError:
  71.                     pass
  72.                 except:
  73.                     None<EXCEPTION MATCH>KeyError
  74.                 
  75.  
  76.             None<EXCEPTION MATCH>KeyError
  77.             self._obj_[key] = args[1]
  78.             return S_OK
  79.         if dispid == 1:
  80.             if not wFlags & DISPATCH_PROPERTYGET:
  81.                 raise COMException(scode = winerror.DISP_E_MEMBERNOTFOUND)
  82.             wFlags & DISPATCH_PROPERTYGET
  83.             if len(args) != 0:
  84.                 raise COMException(scode = winerror.DISP_E_BADPARAMCOUNT)
  85.             len(args) != 0
  86.             return len(self._obj_)
  87.         if dispid == pythoncom.DISPID_NEWENUM:
  88.             return util.NewEnum(self._obj_.keys())
  89.         raise COMException(scode = winerror.DISP_E_MEMBERNOTFOUND)
  90.  
  91.     
  92.     def _getidsofnames_(self, names, lcid):
  93.         name = string.lower(names[0])
  94.         
  95.         try:
  96.             return (self._name_to_dispid_[name],)
  97.         except KeyError:
  98.             raise COMException(scode = winerror.DISP_E_MEMBERNOTFOUND, desc = 'Member not found')
  99.  
  100.  
  101.  
  102.  
  103. def Register():
  104.     UseCommandLine = UseCommandLine
  105.     import win32com.server.register
  106.     return UseCommandLine(DictionaryPolicy)
  107.  
  108. if __name__ == '__main__':
  109.     Register()
  110.  
  111.