Guest User

Untitled

a guest
Sep 16th, 2015
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.41 KB | None | 0 0
  1. import sys, os
  2. import pythoncom
  3. import win32com
  4. import winerror
  5. from win32com.server.util import wrap
  6. from win32com.server.exception import COMException
  7.  
  8. class CTTSEngineSapi:
  9.     #
  10.     # COM declarations    
  11.     #
  12.     _reg_clsid_ = "{202AF9B0-1315-401C-AC66-EB2ACE56A44A}"
  13.     _reg_desc_ = "Python TTS Engine"
  14.     _reg_progid_ = "Python.TTSEngine"
  15.    
  16.     ###
  17.     ### Link to typelib
  18.     _typelib_guid_ = '{9903F14C-12CE-4c99-9986-2EE3D7D588A8}'
  19.     _typelib_version_ = 5, 4
  20.     _com_interfaces_ = ['ISpTTSEngine', 'ISpObjectWithToken']
  21.     _public_methods_ = [ 'GetOutputFormat', 'Speak', 'SetObjectToken', 'GetObjectToken']
  22.  
  23.  
  24.     def __init__(self):
  25.         self.MyProp1 = 10
  26.         f = open("C://Users/myuser/Projects/PythonCOM/test.txt", "w")
  27.         f.close()
  28.  
  29.     def Speak(self):
  30.         raise COMException("throw error")
  31.         return wrap(CPippo())
  32.  
  33.     def GetOutputFormat(self):
  34.         raise COMException("throw error")
  35.         return wrap(CPippo())
  36.  
  37.     def SetObjectToken(self):
  38.         f = open("C://Users/myuser/Projects/PythonCOM/tekst.txt", "w")
  39.         f.close()
  40.         raise COMException("throw error")
  41.         return wrap(CPippo())
  42.  
  43.     def GetObjectToken(self):
  44.         raise COMException("throw error")
  45.         return wrap(CPippo())  
  46.  
  47. def RegisterTypeLib():
  48.     this_dir = os.path.dirname(__file__)
  49.     tlb = os.path.abspath(os.path.join(this_dir, "sapiddk.tlb"))
  50.     print "Registering %s" % (tlb,)
  51.     tli=pythoncom.LoadTypeLib(tlb)
  52.     pythoncom.RegisterTypeLib(tli,tlb)
  53.  
  54. def UnregisterTypelib():
  55.     k = CTTSEngineSapi
  56.     try:
  57.         pythoncom.UnRegisterTypeLib(k._typelib_guid_,
  58.                                     k._typelib_version_[0],
  59.                                     k._typelib_version_[1],
  60.                                     0,
  61.                                     pythoncom.SYS_WIN32)
  62.         print "Unregistered typelib"
  63.     except pythoncom.error, details:
  64.         if details[0]==winerror.TYPE_E_REGISTRYACCESS:
  65.             pass
  66.         else:
  67.             raise
  68.  
  69. def main(argv=None):
  70.     if argv is None: argv = sys.argv[1:]
  71.     if '--unregister' in argv:
  72.         # Unregister the type-libraries.
  73.         UnregisterTypelib()
  74.     else:
  75.         # Register the type-libraries.
  76.         RegisterTypeLib()
  77.     import win32com.server.register
  78.     win32com.server.register.UseCommandLine(CSpeectSapi)
  79.  
  80. if __name__=='__main__':
  81.     main(sys.argv)
Advertisement
Add Comment
Please, Sign In to add comment