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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. from ctypes import *
  5. from pyreadline.keysyms.winconstants import CF_TEXT, GHND
  6. from pyreadline.unicode_helper import ensure_unicode, ensure_str
  7. OpenClipboard = windll.user32.OpenClipboard
  8. EmptyClipboard = windll.user32.EmptyClipboard
  9. GetClipboardData = windll.user32.GetClipboardData
  10. GetClipboardFormatName = windll.user32.GetClipboardFormatNameA
  11. SetClipboardData = windll.user32.SetClipboardData
  12. EnumClipboardFormats = windll.user32.EnumClipboardFormats
  13. CloseClipboard = windll.user32.CloseClipboard
  14. OpenClipboard.argtypes = [
  15.     c_int]
  16. EnumClipboardFormats.argtypes = [
  17.     c_int]
  18. CloseClipboard.argtypes = []
  19. GetClipboardFormatName.argtypes = [
  20.     c_uint,
  21.     c_char_p,
  22.     c_int]
  23. GetClipboardData.argtypes = [
  24.     c_int]
  25. SetClipboardData.argtypes = [
  26.     c_int,
  27.     c_int]
  28. GlobalLock = windll.kernel32.GlobalLock
  29. GlobalAlloc = windll.kernel32.GlobalAlloc
  30. GlobalUnlock = windll.kernel32.GlobalUnlock
  31. GlobalLock.argtypes = [
  32.     c_int]
  33. GlobalUnlock.argtypes = [
  34.     c_int]
  35. memcpy = cdll.msvcrt.memcpy
  36.  
  37. def enum():
  38.     OpenClipboard(0)
  39.     q = EnumClipboardFormats(0)
  40.     while q:
  41.         print q,
  42.         q = EnumClipboardFormats(q)
  43.     CloseClipboard()
  44.  
  45.  
  46. def getformatname(format):
  47.     buffer = c_buffer(' ' * 100)
  48.     bufferSize = sizeof(buffer)
  49.     OpenClipboard(0)
  50.     GetClipboardFormatName(format, buffer, bufferSize)
  51.     CloseClipboard()
  52.     return buffer.value
  53.  
  54.  
  55. def GetClipboardText():
  56.     text = ''
  57.     if OpenClipboard(0):
  58.         hClipMem = GetClipboardData(CF_TEXT)
  59.         if hClipMem:
  60.             GlobalLock.restype = c_char_p
  61.             text = GlobalLock(hClipMem)
  62.             GlobalUnlock(hClipMem)
  63.         
  64.         CloseClipboard()
  65.     
  66.     return ensure_unicode(text)
  67.  
  68.  
  69. def SetClipboardText(text):
  70.     buffer = c_buffer(ensure_str(text))
  71.     bufferSize = sizeof(buffer)
  72.     hGlobalMem = GlobalAlloc(c_int(GHND), c_int(bufferSize))
  73.     GlobalLock.restype = c_void_p
  74.     lpGlobalMem = GlobalLock(c_int(hGlobalMem))
  75.     memcpy(lpGlobalMem, addressof(buffer), c_int(bufferSize))
  76.     GlobalUnlock(c_int(hGlobalMem))
  77.     if OpenClipboard(0):
  78.         EmptyClipboard()
  79.         SetClipboardData(c_int(CF_TEXT), c_int(hGlobalMem))
  80.         CloseClipboard()
  81.     
  82.  
  83. if __name__ == '__main__':
  84.     txt = GetClipboardText()
  85.     print txt
  86.  
  87.