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