Windows API Guide: GetStockObject Function


Declare Function GlobalLock Lib "kernel32.dll" (ByVal hMem As Long) As Long

Platforms: Win 32s, Win 95/98, Win NT

GlobalLock locks a moveable block of memory into its current physical position. The block's internal lock count is incremented by one; a memory block is considered locked if its lock counter is greater than zero. Memory blocks cannot be moved or discarded while locked. The function returns a pointer to the beginning of the memory block if successful, or 0 if the function fails.

hMem
The handle to the moveable memory block to lock.

Example:

' Use a block of memory as an intermediary step to copy ' the contents of array s() to array t().  Yes, you could copy them directly, ' but this demonstrates a few different memory functions. Dim s(0 To 255) As Integer, t(0 To 255) As Integer  ' arrays to copy from/to Dim c As Integer, retval As Long  ' counter variable & return value Dim hMem As Long, pMem As Long  ' handle and pointer to memory block ' Initialize the source array s()'s data For c = 0 To 255   s(c) = 2 * c  ' each element equals double its index Next c ' Allocate a moveable block of memory (returns a handle) (Integer type = 2 bytes) hMem = GlobalAlloc(GMEM_MOVEABLE Or GMEM_ZEROINIT, 256 * 2) ' Lock the memory block, returning a pointer to it pMem = GlobalLock(hMem) ' Copy the entire contents of s() to the memory block ' Note that pMem is ByVal because we want its contents, not a pointer to it CopyMemory ByVal pMem, s(0), 256 * 2 ' Copy the contents of the memory block to t()  (we could have just copied s() to t()) CopyMemory t(0), ByVal pMem, 256 * 2 ' Unlock the memory block, destroying the pointer and freeing resources x = GlobalUnlock(hMem) ' Free the memory block (de-allocate it) x = GlobalFree(hMem) ' Verify that t() = s(), which it should For c = 0 To 255   If s(c) <> t(c) Then Debug.Print "Copy attempt failed." End If

See Also: GlobalUnlock
Category: Memory

Go back to the alphabetical Function listing.
Go back to the Reference section index.


This page is copyright © 2000 Paul Kuliniewicz. Copyright Information.
Go back to the Windows API Guide home page.
E-mail: vbapi@vbapi.com Send Encrypted E-Mail
This page is at http://www.vbapi.com/ref/g/globallock.html



Windows API Guide
Windows API Guide - Reference - Volume 1: Version 3.0 For the MS-DOS and PC-DOS Operating Systems
ISBN: B001V0KQIY
EAN: N/A
Year: 1998
Pages: 610

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net