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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. from win32com.server.util import wrap
  5. import pythoncom
  6. import string
  7. from util import CheckClean
  8. numErrors = 0
  9.  
  10. def CheckSameCOMObject(ob1, ob2):
  11.     addr1 = string.split(repr(ob1))[6][:-1]
  12.     addr2 = string.split(repr(ob2))[6][:-1]
  13.     return addr1 == addr2
  14.  
  15.  
  16. def CheckObjectIdentity(ob1, ob2):
  17.     u1 = ob1.QueryInterface(pythoncom.IID_IUnknown)
  18.     u2 = ob2.QueryInterface(pythoncom.IID_IUnknown)
  19.     return CheckSameCOMObject(u1, u2)
  20.  
  21.  
  22. def FailObjectIdentity(ob1, ob2, when):
  23.     global numErrors
  24.     if not CheckObjectIdentity(ob1, ob2):
  25.         numErrors = numErrors + 1
  26.         print when, 'are not identical (%s, %s)' % (`ob1`, `ob2`)
  27.     
  28.  
  29.  
  30. class Dummy:
  31.     _public_methods_ = []
  32.     _com_interfaces_ = [
  33.         pythoncom.IID_IPersistStorage]
  34.  
  35.  
  36. class Dummy2:
  37.     _public_methods_ = []
  38.     _com_interfaces_ = [
  39.         pythoncom.IID_IPersistStorage,
  40.         pythoncom.IID_IExternalConnection]
  41.  
  42.  
  43. class DeletgatedDummy:
  44.     _public_methods_ = []
  45.  
  46.  
  47. class Dummy3:
  48.     _public_methods_ = []
  49.     _com_interfaces_ = [
  50.         pythoncom.IID_IPersistStorage]
  51.     
  52.     def _query_interface_(self, iid):
  53.         if iid == pythoncom.IID_IExternalConnection:
  54.             return wrap(DelegatedDummy())
  55.  
  56.  
  57.  
  58. def TestGatewayInheritance():
  59.     o = wrap(Dummy(), pythoncom.IID_IPersistStorage)
  60.     o2 = o.QueryInterface(pythoncom.IID_IUnknown)
  61.     FailObjectIdentity(o, o2, 'IID_IPersistStorage->IID_IUnknown')
  62.     o3 = o2.QueryInterface(pythoncom.IID_IDispatch)
  63.     FailObjectIdentity(o2, o3, 'IID_IUnknown->IID_IDispatch')
  64.     FailObjectIdentity(o, o3, 'IID_IPersistStorage->IID_IDispatch')
  65.     o4 = o3.QueryInterface(pythoncom.IID_IPersistStorage)
  66.     FailObjectIdentity(o, o4, 'IID_IPersistStorage->IID_IPersistStorage(2)')
  67.     FailObjectIdentity(o2, o4, 'IID_IUnknown->IID_IPersistStorage(2)')
  68.     FailObjectIdentity(o3, o4, 'IID_IDispatch->IID_IPersistStorage(2)')
  69.     o5 = o4.QueryInterface(pythoncom.IID_IPersist)
  70.     FailObjectIdentity(o, o5, 'IID_IPersistStorage->IID_IPersist')
  71.     FailObjectIdentity(o2, o5, 'IID_IUnknown->IID_IPersist')
  72.     FailObjectIdentity(o3, o5, 'IID_IDispatch->IID_IPersist')
  73.     FailObjectIdentity(o4, o5, 'IID_IPersistStorage(2)->IID_IPersist')
  74.  
  75.  
  76. def TestMultiInterface():
  77.     o = wrap(Dummy2(), pythoncom.IID_IPersistStorage)
  78.     o2 = o.QueryInterface(pythoncom.IID_IExternalConnection)
  79.     FailObjectIdentity(o, o2, 'IID_IPersistStorage->IID_IExternalConnection')
  80.     o22 = o.QueryInterface(pythoncom.IID_IExternalConnection)
  81.     FailObjectIdentity(o, o22, 'IID_IPersistStorage->IID_IExternalConnection')
  82.     FailObjectIdentity(o2, o22, 'IID_IPersistStorage->IID_IExternalConnection (stability)')
  83.     o3 = o2.QueryInterface(pythoncom.IID_IPersistStorage)
  84.     FailObjectIdentity(o2, o3, 'IID_IExternalConnection->IID_IPersistStorage')
  85.     FailObjectIdentity(o, o3, 'IID_IPersistStorage->IID_IExternalConnection->IID_IPersistStorage')
  86.  
  87.  
  88. def test():
  89.     TestGatewayInheritance()
  90.     TestMultiInterface()
  91.     if numErrors == 0:
  92.         print 'Worked ok'
  93.     else:
  94.         print 'There were', numErrors, 'errors.'
  95.  
  96. if __name__ == '__main__':
  97.     test()
  98.     CheckClean()
  99.  
  100.