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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. from ctypes import c_void_p, POINTER, sizeof, Structure, windll, WinError, WINFUNCTYPE
  5. from ctypes.wintypes import BOOL, BYTE, DWORD, HANDLE, LPCWSTR, LPWSTR, UINT, WORD
  6. LPVOID = c_void_p
  7. LPBYTE = POINTER(BYTE)
  8. LPDWORD = POINTER(DWORD)
  9. SW_HIDE = 0
  10.  
  11. def ErrCheckBool(result, func, args):
  12.     if not result:
  13.         raise WinError()
  14.     result
  15.     return args
  16.  
  17. CloseHandleProto = WINFUNCTYPE(BOOL, HANDLE)
  18. CloseHandle = CloseHandleProto(('CloseHandle', windll.kernel32))
  19. CloseHandle.errcheck = ErrCheckBool
  20.  
  21. class AutoHANDLE(HANDLE):
  22.     
  23.     def Close(self):
  24.         if self.value:
  25.             CloseHandle(self)
  26.             self.value = 0
  27.         
  28.  
  29.     
  30.     def __del__(self):
  31.         self.Close()
  32.  
  33.     
  34.     def __int__(self):
  35.         return self.value
  36.  
  37.  
  38.  
  39. def ErrCheckHandle(result, func, args):
  40.     if not result:
  41.         raise WinError()
  42.     result
  43.     return AutoHANDLE(result)
  44.  
  45.  
  46. class PROCESS_INFORMATION(Structure):
  47.     _fields_ = [
  48.         ('hProcess', HANDLE),
  49.         ('hThread', HANDLE),
  50.         ('dwProcessID', DWORD),
  51.         ('dwThreadID', DWORD)]
  52.     
  53.     def __init__(self):
  54.         Structure.__init__(self)
  55.         self.cb = sizeof(self)
  56.  
  57.  
  58. LPPROCESS_INFORMATION = POINTER(PROCESS_INFORMATION)
  59.  
  60. class STARTUPINFO(Structure):
  61.     _fields_ = [
  62.         ('cb', DWORD),
  63.         ('lpReserved', LPWSTR),
  64.         ('lpDesktop', LPWSTR),
  65.         ('lpTitle', LPWSTR),
  66.         ('dwX', DWORD),
  67.         ('dwY', DWORD),
  68.         ('dwXSize', DWORD),
  69.         ('dwYSize', DWORD),
  70.         ('dwXCountChars', DWORD),
  71.         ('dwYCountChars', DWORD),
  72.         ('dwFillAttribute', DWORD),
  73.         ('dwFlags', DWORD),
  74.         ('wShowWindow', WORD),
  75.         ('cbReserved2', WORD),
  76.         ('lpReserved2', LPBYTE),
  77.         ('hStdInput', HANDLE),
  78.         ('hStdOutput', HANDLE),
  79.         ('hStdError', HANDLE)]
  80.  
  81. LPSTARTUPINFO = POINTER(STARTUPINFO)
  82. STARTF_USESHOWWINDOW = 1
  83. STARTF_USESIZE = 2
  84. STARTF_USEPOSITION = 4
  85. STARTF_USECOUNTCHARS = 8
  86. STARTF_USEFILLATTRIBUTE = 16
  87. STARTF_RUNFULLSCREEN = 32
  88. STARTF_FORCEONFEEDBACK = 64
  89. STARTF_FORCEOFFFEEDBACK = 128
  90. STARTF_USESTDHANDLES = 256
  91.  
  92. class EnvironmentBlock:
  93.     
  94.     def __init__(self, dict):
  95.         pass
  96.  
  97.  
  98. CreateProcessProto = WINFUNCTYPE(BOOL, LPCWSTR, LPWSTR, LPVOID, LPVOID, BOOL, DWORD, LPVOID, LPCWSTR, LPSTARTUPINFO, LPPROCESS_INFORMATION)
  99. CreateProcessFlags = ((1, 'lpApplicationName', None), (1, 'lpCommandLine'), (1, 'lpProcessAttributes', None), (1, 'lpThreadAttributes', None), (1, 'bInheritHandles', True), (1, 'dwCreationFlags', 0), (1, 'lpEnvironment', None), (1, 'lpCurrentDirectory', None), (1, 'lpStartupInfo'), (2, 'lpProcessInformation'))
  100.  
  101. def ErrCheckCreateProcess(result, func, args):
  102.     ErrCheckBool(result, func, args)
  103.     pi = args[9]
  104.     return (AutoHANDLE(pi.hProcess), AutoHANDLE(pi.hThread), pi.dwProcessID, pi.dwThreadID)
  105.  
  106. CreateProcess = CreateProcessProto(('CreateProcessW', windll.kernel32), CreateProcessFlags)
  107. CreateProcess.errcheck = ErrCheckCreateProcess
  108. CREATE_BREAKAWAY_FROM_JOB = 16777216
  109. CREATE_DEFAULT_ERROR_MODE = 67108864
  110. CREATE_NEW_CONSOLE = 16
  111. CREATE_NEW_PROCESS_GROUP = 512
  112. CREATE_NO_WINDOW = 134217728
  113. CREATE_SUSPENDED = 4
  114. CREATE_UNICODE_ENVIRONMENT = 1024
  115. DEBUG_ONLY_THIS_PROCESS = 2
  116. DEBUG_PROCESS = 1
  117. DETACHED_PROCESS = 8
  118. CreateJobObjectProto = WINFUNCTYPE(HANDLE, LPVOID, LPCWSTR)
  119. CreateJobObjectFlags = ((1, 'lpJobAttributes', None), (1, 'lpName', None))
  120. CreateJobObject = CreateJobObjectProto(('CreateJobObjectW', windll.kernel32), CreateJobObjectFlags)
  121. CreateJobObject.errcheck = ErrCheckHandle
  122. AssignProcessToJobObjectProto = WINFUNCTYPE(BOOL, HANDLE, HANDLE)
  123. AssignProcessToJobObjectFlags = ((1, 'hJob'), (1, 'hProcess'))
  124. AssignProcessToJobObject = AssignProcessToJobObjectProto(('AssignProcessToJobObject', windll.kernel32), AssignProcessToJobObjectFlags)
  125. AssignProcessToJobObject.errcheck = ErrCheckBool
  126.  
  127. def ErrCheckResumeThread(result, func, args):
  128.     if result == -1:
  129.         raise WinError()
  130.     result == -1
  131.     return args
  132.  
  133. ResumeThreadProto = WINFUNCTYPE(DWORD, HANDLE)
  134. ResumeThreadFlags = ((1, 'hThread'),)
  135. ResumeThread = ResumeThreadProto(('ResumeThread', windll.kernel32), ResumeThreadFlags)
  136. ResumeThread.errcheck = ErrCheckResumeThread
  137. TerminateJobObjectProto = WINFUNCTYPE(BOOL, HANDLE, UINT)
  138. TerminateJobObjectFlags = ((1, 'hJob'), (1, 'uExitCode', 127))
  139. TerminateJobObject = TerminateJobObjectProto(('TerminateJobObject', windll.kernel32), TerminateJobObjectFlags)
  140. TerminateJobObject.errcheck = ErrCheckBool
  141. WaitForSingleObjectProto = WINFUNCTYPE(DWORD, HANDLE, DWORD)
  142. WaitForSingleObjectFlags = ((1, 'hHandle'), (1, 'dwMilliseconds', -1))
  143. WaitForSingleObject = WaitForSingleObjectProto(('WaitForSingleObject', windll.kernel32), WaitForSingleObjectFlags)
  144. INFINITE = -1
  145. WAIT_TIMEOUT = 258
  146. WAIT_OBJECT_0 = 0
  147. WAIT_ABANDONED = 128
  148. GetExitCodeProcessProto = WINFUNCTYPE(BOOL, HANDLE, LPDWORD)
  149. GetExitCodeProcessFlags = ((1, 'hProcess'), (2, 'lpExitCode'))
  150. GetExitCodeProcess = GetExitCodeProcessProto(('GetExitCodeProcess', windll.kernel32), GetExitCodeProcessFlags)
  151. GetExitCodeProcess.errcheck = ErrCheckBool
  152.