На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

GlobalReAlloc



The GlobalReAlloc function changes the size or attributes of a specified global memory object. The size can increase or decrease.

HGLOBAL GlobalReAlloc(

HGLOBAL hMem, // handle to the global memory object
DWORD dwBytes, // new size of the block
UINT uFlags // how to reallocate object
);


Parameters

hMem

Identifies the global memory object to be reallocated. This handle is returned by either the GlobalAlloc or GlobalReAlloc function.

dwBytes

Specifies the new size, in bytes, of the memory block. If this parameter is zero and the uFlags parameter specifies the GMEM_MOVEABLE flag, the function returns the handle of a memory object that is marked as discarded. If uFlags specifies the GMEM_MODIFY flag, this parameter is ignored.

uFlags

Specifies how to reallocate the global memory object. If the GMEM_MODIFY flag is specified, this parameter modifies the attributes of the memory object, and the dwBytes parameter is ignored. Otherwise, this parameter controls the reallocation of the memory object.
The GMEM_MODIFY flag can be combined with either or both of the following flags:

Flag Meaning
GMEM_DISCARDABLE Allocates discardable memory if the GMEM_MODIFY flag is also specified. This flag is ignored, unless the object was previously allocated as movable or the GMEM_MOVEABLE flag is also specified.
GMEM_MOVEABLE Windows NT only: Changes a fixed memory object to a movable memory object if the GMEM_MODIFY flag is also specified.


If this parameter does not specify GMEM_MODIFY, it can be any combination of the following flags:

Flag Meaning
GMEM_MOVEABLE If dwBytes is zero, discards a previously movable and discardable memory block. If the lock count of the object is not zero or if the block is not movable and discardable, the function fails. If dwBytes is nonzero, enables the system to move the reallocated block to a new location without changing the movable or fixed attribute of the memory object. If the object is fixed, the handle returned may be different from the handle specified by the hMem parameter. If the object is movable, the block can be moved without invalidating the handle, even if the object is currently locked by a previous call to the GlobalLock function. To get the new address of the memory block, use GlobalLock.
GMEM_NOCOMPACT Prevents memory from being compacted or discarded to satisfy the allocation request.
GMEM_ZEROINIT Causes the additional memory contents to be initialized to zero if the memory object is growing in size.


Return Values

If the function succeeds, the return value is the handle of the reallocated memory object.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.

Remarks

If GlobalReAlloc reallocates a movable object, the return value is the handle of the memory object. To convert the handle to a pointer, use the GlobalLock function.
If GlobalReAlloc reallocates a fixed object, the value of the handle returned is the address of the first byte of the memory block. To access the memory, a process can simply cast the return value to a pointer.
If GlobalReAlloc fails, the original memory is not freed, and the original handle and pointer are still valid.

See Also

GlobalAlloc, GlobalFree, GlobalLock


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

GlobalReAlloc



Функция GlobalReAlloc изменяет размер или атрибуты определенного глобального объекта памяти. Размер может увеличить или уменьшаться.

HGLOBAL GlobalReAlloc(

HGLOBAL hMem, // РУЧКА на глобальный объект памяти DWORD dwBytes, // новый размер блока UINT uFlags // как, чтобы reallocate объект
);


Параметры

hMem

Идентифицирует глобальный объект памяти против reallocated. Эта ручка возвращана или GlobalAlloc или функция GlobalReAlloc.

dwBytes

Определяет новый размер, в байтах, блока памяти. Если этот параметр является нулем и параметр uFlags определяет флаг GMEM_MOVEABLE, функция возвращает ручку объекта памяти, которая обозначена как отвергнуто. Если uFlags определяет флаг GMEM_MODIFY, этот параметр проигнорирован.

uFlags

Определяет как, чтобы reallocate глобальный объект памяти. Если флаг GMEM_MODIFY определен, этот параметр модифицирует атрибуты объекта памяти, и параметр dwBytes проигнорирован. В противном случае, этот параметр регулирует перераспределение объекта памяти.
Флаг GMEM_MODIFY может быть объединен с или обоими следующими флагов:

Значение Флага
GMEM_DISCARDABLE Распределяет исключаемую память если флаг GMEM_MODIFY также определен. Этот флаг проигнорирован, если объект прежде не был распределен как подвижный или флаг GMEM_MOVEABLE также определен.
GMEM_MOVEABLE Windows NT только: Изменяет фиксированный объект памяти против подвижного объекта памяти если флаг GMEM_MODIFY также определен.


Если этот параметр не определяет GMEM_MODIFY, это может быть любой комбинацией следующего флагов:

Значение Флага
GMEM_MOVEABLE Если dwBytes - нуль, отвергает прежде подвижного и исключаемого блока памяти. Если счет замка объекта не является нулем или если блок - не подвижный и исключаемый, функция терпит неудачу. Если dwBytes ненулевой, позволяет систему, чтобы перемещать reallocated блока на новую позицию не изменяя подвижный или фиксированный атрибут объекта памяти. Если объект установлен, возвращанная ручка может отличаться от ручки определенной параметром hMem. Если объект подвижный, блок может не быть перемещен аннулируя ручку, даже если бы объект к настоящему времени заперт предшествующим вызовом в функцию GlobalLock. Для того, чтобы получать новый адрес блока памяти, используйте GlobalLock.
GMEM_NOCOMPACT Предохраняет память от уплотненное или отвергнутое, чтобы удовлетворять просьбу распределения.
GMEM_ZEROINIT Вызывает дополнительное содержание памяти, которое нужно инициализироваться в нуль если объект памяти растет по величине.


Обратные Величины

Если функция добивается успеха, обратная величина является ручкой reallocated объекта памяти.
Если функция терпит неудачу, обратная величина НЕДЕЙСТВИТЕЛЬНА. Для того, чтобы расширять информацию ошибки, назовите GetLastError.

Замечания

Если GlobalReAlloc reallocates подвижный объект, обратная величина является ручкой объекта памяти. Для того, чтобы преобразовывать ручку на указатель, используйте функцию GlobalLock.
Если GlobalReAlloc reallocates фиксированный объект, величина возвращанной ручки - адрес первого байта блока памяти. Чтобы иметь доступ к памяти, процесс может просто бросить обратную величину на указатель.
Если GlobalReAlloc терпит неудачу, оригинальная память не освобождена, и оригинальная ручка и указатель все еще правильный.

Смотри Также

GlobalAlloc, GlobalFree, GlobalLock


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz