diff options
author | cliechti <cliechti@f19166aa-fa4f-0410-85c2-fa1106f25c8a> | 2011-08-05 02:33:14 +0000 |
---|---|---|
committer | cliechti <cliechti@f19166aa-fa4f-0410-85c2-fa1106f25c8a> | 2011-08-05 02:33:14 +0000 |
commit | e4a7cd2440527c01dce438492ff3af7ebfcbe14b (patch) | |
tree | ffbdf2688c867f10fae7b7c6bbbc62fccd8046f4 | |
parent | 5035eb1265e6622ec525c4b093dc4ae657632bce (diff) | |
download | pyserial-e4a7cd2440527c01dce438492ff3af7ebfcbe14b.tar.gz |
implmement patch according to SF 3036175
git-svn-id: http://svn.code.sf.net/p/pyserial/code/trunk/pyserial@405 f19166aa-fa4f-0410-85c2-fa1106f25c8a
-rw-r--r-- | CHANGES.txt | 2 | ||||
-rw-r--r-- | serial/win32.py | 33 |
2 files changed, 25 insertions, 10 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index f08f961..a83f498 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -421,4 +421,4 @@ Bugfixes (posix): Bugfixes (win32): - [SF 3057499] writeTimeoutError when write Timeout is 0 - +- [SF 3036175] Windows 98 Support fix diff --git a/serial/win32.py b/serial/win32.py index 9b8c118..ca6c635 100644 --- a/serial/win32.py +++ b/serial/win32.py @@ -14,15 +14,30 @@ class _SECURITY_ATTRIBUTES(Structure): pass LPSECURITY_ATTRIBUTES = POINTER(_SECURITY_ATTRIBUTES) -CreateEventW = _stdcall_libraries['kernel32'].CreateEventW -CreateEventW.restype = HANDLE -CreateEventW.argtypes = [LPSECURITY_ATTRIBUTES, BOOL, BOOL, LPCWSTR] -CreateEvent = CreateEventW # alias - -CreateFileW = _stdcall_libraries['kernel32'].CreateFileW -CreateFileW.restype = HANDLE -CreateFileW.argtypes = [LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE] -CreateFile = CreateFileW # alias + +try: + CreateEventW = _stdcall_libraries['kernel32'].CreateEventW +except AttributeError: + # Fallback to non wide char version for old OS... + from ctypes.wintypes import LPCSTR + CreateEventA = _stdcall_libraries['kernel32'].CreateEventA + CreateEventA.restype = HANDLE + CreateEventA.argtypes = [LPSECURITY_ATTRIBUTES, BOOL, BOOL, LPCSTR] + CreateEvent=CreateEventA + + CreateFileA = _stdcall_libraries['kernel32'].CreateFileA + CreateFileA.restype = HANDLE + CreateFileA.argtypes = [LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE] + CreateFile = CreateFileA +else: + CreateEventW.restype = HANDLE + CreateEventW.argtypes = [LPSECURITY_ATTRIBUTES, BOOL, BOOL, LPCWSTR] + CreateEvent = CreateEventW # alias + + CreateFileW = _stdcall_libraries['kernel32'].CreateFileW + CreateFileW.restype = HANDLE + CreateFileW.argtypes = [LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE] + CreateFile = CreateFileW # alias class _OVERLAPPED(Structure): pass |