Platform SDK: Memory |
The GlobalFree function frees the specified global memory object and invalidates its handle.
Note The global functions are slower than other memory management functions and do not provide as many features. Therefore, new applications should use the heap functions. However, the global functions are still used with DDE and the clipboard functions.
HGLOBAL GlobalFree( HGLOBAL hMem // handle to global memory object );
If the function succeeds, the return value is NULL.
If the function fails, the return value is equal to a handle to the global memory object. To get extended error information, call GetLastError.
If the process examines or modifies the memory after it has been freed, heap corruption may occur or an access violation exception (EXCEPTION_ACCESS_VIOLATION) may be generated.
If the hgblMem parameter is NULL, GlobalFree fails and the system generates an access violation exception.
The GlobalFree function will free a locked memory object. A locked memory object has a lock count greater than zero. The GlobalLock function locks a global memory object and increments the lock count by one. The GlobalUnlock function unlocks it and decrements the lock count by one. To get the lock count of a global memory object, use the GlobalFlags function.
If an application is running under a debug version of the system, GlobalFree will issue a message that tells you that a locked object is being freed. If you are debugging the application, GlobalFree will enter a breakpoint just before freeing a locked object. This allows you to verify the intended behavior, then continue execution.
Windows NT/2000: Requires Windows NT 3.1 or later.
Windows 95/98: Requires Windows 95 or later.
Header: Declared in Winbase.h; include Windows.h.
Library: Use Kernel32.lib.
Memory Management Overview, Memory Management Functions, GlobalAlloc, GlobalFlags, GlobalLock, GlobalReAlloc, GlobalUnlock