Функция LocalUnlock уменьшает счетчик блокировок указанного объекта локальной памяти на единицу. Указанный объект должен быть выделен с указаним флага LMEM_MOVEABLE. Если указанный объект был выделен с указанным флагом LMEM_FIXED, то функция ничего не выполняет.
Примечание: глобальные и локальные функции работают медленнее, чем остальные функции менеджера памяти. Поэтому новые приложения должны использовать функции по работе с кучей.
function LocalUnlock( hMem: HLOCAL // дескриптор объекта локальной памяти ): BOOL; stdcall;
Параметры
hMem [in]
Дескриптор объекта локальной памяти, для которого будет произведено уменьшение
количества блокировок. Должен быть получен путем вызова функций
LocalAlloc или
LocalReAlloc.
Возвращаемое значение
Если после выполнения уменьшения счетчика блокировок указанный объект все еще остается блокированным, то возвращаемым значением функции является True.
В случае ошибки функция возвращает False. Для получения расширенной информации об ошибке следует сделать вызов GetLastError. Если вызов GetLastError возвратил значение NO_ERROR, то объект локальной памяти был успешно разблокирован.
Описание
Внутренняя структура данных каждого объекта в памяти содержит счетчик блокировок, который первоначально равен нулю. Функция LocalLock увеличивает счетчик блокировок на единицу, а функция LocalUnlock уменьшает на единицу указанный счетчик. Каждому вызову функции LocalLock должен соответствовать вызов функции LocalUnlock. Когда значение счетчика блокировок положительно, положение блока памяти, соответствующего объекту локальной памяти, фиксировано, разве что, только, не будет произведен вызов функций LocalReAlloc или LocalDiscard. Когда же счетчик блокировок равен нулю, то объект может быть перемещен или уничтожен.
Если объект глобальной памяти является разблокированным, то функция LocalUnlock вернет False, а следующий за ней вызов GetLestError вернет ERROR_NOT_LOCKED. Объекты памяти, которые были выделены с флагом LMEM_FIXED, всегда имеют счетчик блокировок равным нулю и служат причиной ошибки ERROR_NOT_LOCKED.
Требования
Windows NT/2000: Требуется Windows NT 3.1 или более поздняя версия
Windows 95/98: Требуется Windows 95 или более поздняя версия
Бибиотека: Kernel32.dll
Подключаемый модуль: Windows
Смотри также:
LocalSize |
LockSegment![]() |
© Mystic, 2002