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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import pythoncom
  5. import traceback
  6. import win32api
  7. from sys import exc_info
  8. from win32com.server.exception import IsCOMServerException
  9. from win32com.util import IIDToInterfaceName
  10. import win32com
  11.  
  12. class DispatcherBase:
  13.     
  14.     def __init__(self, policyClass, object):
  15.         self.policy = policyClass(object)
  16.         self.logger = getattr(win32com, 'logger', None)
  17.  
  18.     
  19.     def _CreateInstance_(self, clsid, reqIID):
  20.         
  21.         try:
  22.             self.policy._CreateInstance_(clsid, reqIID)
  23.             return pythoncom.WrapObject(self, reqIID)
  24.         except:
  25.             return self._HandleException_()
  26.  
  27.  
  28.     
  29.     def _QueryInterface_(self, iid):
  30.         
  31.         try:
  32.             return self.policy._QueryInterface_(iid)
  33.         except:
  34.             return self._HandleException_()
  35.  
  36.  
  37.     
  38.     def _Invoke_(self, dispid, lcid, wFlags, args):
  39.         
  40.         try:
  41.             return self.policy._Invoke_(dispid, lcid, wFlags, args)
  42.         except:
  43.             return self._HandleException_()
  44.  
  45.  
  46.     
  47.     def _GetIDsOfNames_(self, names, lcid):
  48.         
  49.         try:
  50.             return self.policy._GetIDsOfNames_(names, lcid)
  51.         except:
  52.             return self._HandleException_()
  53.  
  54.  
  55.     
  56.     def _GetTypeInfo_(self, index, lcid):
  57.         
  58.         try:
  59.             return self.policy._GetTypeInfo_(index, lcid)
  60.         except:
  61.             return self._HandleException_()
  62.  
  63.  
  64.     
  65.     def _GetTypeInfoCount_(self):
  66.         
  67.         try:
  68.             return self.policy._GetTypeInfoCount_()
  69.         except:
  70.             return self._HandleException_()
  71.  
  72.  
  73.     
  74.     def _GetDispID_(self, name, fdex):
  75.         
  76.         try:
  77.             return self.policy._GetDispID_(name, fdex)
  78.         except:
  79.             return self._HandleException_()
  80.  
  81.  
  82.     
  83.     def _InvokeEx_(self, dispid, lcid, wFlags, args, kwargs, serviceProvider):
  84.         
  85.         try:
  86.             return self.policy._InvokeEx_(dispid, lcid, wFlags, args, kwargs, serviceProvider)
  87.         except:
  88.             return self._HandleException_()
  89.  
  90.  
  91.     
  92.     def _DeleteMemberByName_(self, name, fdex):
  93.         
  94.         try:
  95.             return self.policy._DeleteMemberByName_(name, fdex)
  96.         except:
  97.             return self._HandleException_()
  98.  
  99.  
  100.     
  101.     def _DeleteMemberByDispID_(self, id):
  102.         
  103.         try:
  104.             return self.policy._DeleteMemberByDispID_(id)
  105.         except:
  106.             return self._HandleException_()
  107.  
  108.  
  109.     
  110.     def _GetMemberProperties_(self, id, fdex):
  111.         
  112.         try:
  113.             return self.policy._GetMemberProperties_(id, fdex)
  114.         except:
  115.             return self._HandleException_()
  116.  
  117.  
  118.     
  119.     def _GetMemberName_(self, dispid):
  120.         
  121.         try:
  122.             return self.policy._GetMemberName_(dispid)
  123.         except:
  124.             return self._HandleException_()
  125.  
  126.  
  127.     
  128.     def _GetNextDispID_(self, fdex, flags):
  129.         
  130.         try:
  131.             return self.policy._GetNextDispID_(fdex, flags)
  132.         except:
  133.             return self._HandleException_()
  134.  
  135.  
  136.     
  137.     def _GetNameSpaceParent_(self):
  138.         
  139.         try:
  140.             return self.policy._GetNameSpaceParent_()
  141.         except:
  142.             return self._HandleException_()
  143.  
  144.  
  145.     
  146.     def _HandleException_(self):
  147.         if not IsCOMServerException():
  148.             if self.logger is not None:
  149.                 self.logger.exception('pythoncom server error')
  150.             else:
  151.                 traceback.print_exc()
  152.         
  153.         reraise()
  154.  
  155.     
  156.     def _trace_(self, *args):
  157.         if self.logger is not None:
  158.             record = ' '.join(map(str, args))
  159.             self.logger.debug(record)
  160.         else:
  161.             for arg in args[:-1]:
  162.                 print arg,
  163.             
  164.             print args[-1]
  165.  
  166.  
  167.  
  168. class DispatcherTrace(DispatcherBase):
  169.     
  170.     def _QueryInterface_(self, iid):
  171.         rc = DispatcherBase._QueryInterface_(self, iid)
  172.         if not rc:
  173.             self._trace_('in %s._QueryInterface_ with unsupported IID %s (%s)' % (`self.policy._obj_`, IIDToInterfaceName(iid), iid))
  174.         
  175.         return rc
  176.  
  177.     
  178.     def _GetIDsOfNames_(self, names, lcid):
  179.         self._trace_("in _GetIDsOfNames_ with '%s' and '%d'\n" % (names, lcid))
  180.         return DispatcherBase._GetIDsOfNames_(self, names, lcid)
  181.  
  182.     
  183.     def _GetTypeInfo_(self, index, lcid):
  184.         self._trace_('in _GetTypeInfo_ with index=%d, lcid=%d\n' % (index, lcid))
  185.         return DispatcherBase._GetTypeInfo_(self, index, lcid)
  186.  
  187.     
  188.     def _GetTypeInfoCount_(self):
  189.         self._trace_('in _GetTypeInfoCount_\n')
  190.         return DispatcherBase._GetTypeInfoCount_(self)
  191.  
  192.     
  193.     def _Invoke_(self, dispid, lcid, wFlags, args):
  194.         self._trace_('in _Invoke_ with', dispid, lcid, wFlags, args)
  195.         return DispatcherBase._Invoke_(self, dispid, lcid, wFlags, args)
  196.  
  197.     
  198.     def _GetDispID_(self, name, fdex):
  199.         self._trace_('in _GetDispID_ with', name, fdex)
  200.         return DispatcherBase._GetDispID_(self, name, fdex)
  201.  
  202.     
  203.     def _InvokeEx_(self, dispid, lcid, wFlags, args, kwargs, serviceProvider):
  204.         self._trace_('in %r._InvokeEx_-%s%r [%x,%s,%r]' % (self.policy._obj_, dispid, args, wFlags, lcid, serviceProvider))
  205.         return DispatcherBase._InvokeEx_(self, dispid, lcid, wFlags, args, kwargs, serviceProvider)
  206.  
  207.     
  208.     def _DeleteMemberByName_(self, name, fdex):
  209.         self._trace_('in _DeleteMemberByName_ with', name, fdex)
  210.         return DispatcherBase._DeleteMemberByName_(self, name, fdex)
  211.  
  212.     
  213.     def _DeleteMemberByDispID_(self, id):
  214.         self._trace_('in _DeleteMemberByDispID_ with', id)
  215.         return DispatcherBase._DeleteMemberByDispID_(self, id)
  216.  
  217.     
  218.     def _GetMemberProperties_(self, id, fdex):
  219.         self._trace_('in _GetMemberProperties_ with', id, fdex)
  220.         return DispatcherBase._GetMemberProperties_(self, id, fdex)
  221.  
  222.     
  223.     def _GetMemberName_(self, dispid):
  224.         self._trace_('in _GetMemberName_ with', dispid)
  225.         return DispatcherBase._GetMemberName_(self, dispid)
  226.  
  227.     
  228.     def _GetNextDispID_(self, fdex, flags):
  229.         self._trace_('in _GetNextDispID_ with', fdex, flags)
  230.         return DispatcherBase._GetNextDispID_(self, fdex, flags)
  231.  
  232.     
  233.     def _GetNameSpaceParent_(self):
  234.         self._trace_('in _GetNameSpaceParent_')
  235.         return DispatcherBase._GetNameSpaceParent_(self)
  236.  
  237.  
  238.  
  239. class DispatcherWin32trace(DispatcherTrace):
  240.     
  241.     def __init__(self, policyClass, object):
  242.         DispatcherTrace.__init__(self, policyClass, object)
  243.         if self.logger is None:
  244.             import win32traceutil
  245.         
  246.         self._trace_('Object with win32trace dispatcher created (object=%s)' % `object`)
  247.  
  248.  
  249.  
  250. class DispatcherOutputDebugString(DispatcherTrace):
  251.     
  252.     def _trace_(self, *args):
  253.         for arg in args[:-1]:
  254.             win32api.OutputDebugString(str(arg) + ' ')
  255.         
  256.         win32api.OutputDebugString(str(args[-1]) + '\n')
  257.  
  258.  
  259.  
  260. class DispatcherWin32dbg(DispatcherBase):
  261.     
  262.     def __init__(self, policyClass, ob):
  263.         pywin.debugger.brk()
  264.         print 'The DispatcherWin32dbg dispatcher is deprecated!'
  265.         print 'Please let me know if this is a problem.'
  266.         print 'Uncomment the relevant lines in dispatcher.py to re-enable'
  267.         DispatcherBase.__init__(self, policyClass, ob)
  268.  
  269.     
  270.     def _HandleException_(self):
  271.         (typ, val, tb) = exc_info()
  272.         debug = 0
  273.         
  274.         try:
  275.             raise typ, val
  276.         except Exception:
  277.             debug = pywin.debugger.GetDebugger().get_option(pywin.debugger.dbgcon.OPT_STOP_EXCEPTIONS)
  278.         except:
  279.             debug = 1
  280.  
  281.         if debug:
  282.             
  283.             try:
  284.                 pywin.debugger.post_mortem(tb, typ, val)
  285.             traceback.print_exc()
  286.  
  287.         
  288.         del tb
  289.         reraise()
  290.  
  291.  
  292.  
  293. def reraise():
  294.     (t, v, tb) = exc_info()
  295.     raise t, v, tb
  296.  
  297.  
  298. try:
  299.     import win32trace
  300.     DefaultDebugDispatcher = DispatcherWin32trace
  301. except ImportError:
  302.     DefaultDebugDispatcher = DispatcherTrace
  303.  
  304.