mirror of
https://github.com/clinton-hall/nzbToMedia.git
synced 2025-07-30 11:38:30 -07:00
Also updates: - importlib-metadata-0.7 - jaraco-windows - jaraco.classes-1.5 - jaraco.collections-1.6.0 - jaraco.functools-1.20 - jaraco.structures-1.1.2 - jaraco.text-1.10.1 - jaraco.ui-1.6 - more-itertools-4.3.0 - path.py-11.5.0 - six-1.12.0
29 lines
550 B
Python
29 lines
550 B
Python
import ctypes
|
|
from ctypes import WinError
|
|
|
|
from .api import memory
|
|
|
|
|
|
class LockedMemory(object):
|
|
def __init__(self, handle):
|
|
self.handle = handle
|
|
|
|
def __enter__(self):
|
|
self.data_ptr = memory.GlobalLock(self.handle)
|
|
if not self.data_ptr:
|
|
del self.data_ptr
|
|
raise WinError()
|
|
return self
|
|
|
|
def __exit__(self, *args):
|
|
memory.GlobalUnlock(self.handle)
|
|
del self.data_ptr
|
|
|
|
@property
|
|
def data(self):
|
|
with self:
|
|
return ctypes.string_at(self.data_ptr, self.size)
|
|
|
|
@property
|
|
def size(self):
|
|
return memory.GlobalSize(self.data_ptr)
|