Подскажите пожалуйста как правильно использовать функцию GlobalUnlock. В MSDN написано что надо передавать handle to the global memory object, а в туториалах ICZELION что указатель на память.Или там опечатка.
GlobalUnlock работает с указателем. С хэндлом работает GlobalFree (это в случае GMEM_MOVEABLE). Если использовался флаг GMEM_FIXED, GlobalUnlock не нужен. В этом случае для освобождения используй GlobalFree с параметром pointer, полученным от GlobalAlloc
Vjacheslav Ты бы лучше спросил, а нужно ли вообще использовать GMEM_MOVEABLE и Lock\Unlock в Win32. Насколько я понимаю кроме мороки они ничего не дают, т.к. это пережитки прошлого для обратной совместимости. Читаем у Microsoft'а: <font size=3>"In earlier versions of Windows, movable memory objects were important for memory management. They enabled the system to compact the heap when necessary to make space available for other memory allocations. By using virtual memory, the system is able to manage memory by moving pages of physical memory without affecting the virtual addresses of the processes using the pages. When the system moves a page of physical memory, it simply maps the process's virtual page to the new location of the physical page. Movable memory is still useful for allocating discardable memory. When the system needs additional physical storage, it can use a "least recently used" algorithm to free discardable memory that is not locked. Discardable memory should be used for data that is needed infrequently and can be regenerated easily"</font><!--size-->
leo прав - GlobalXXXXX & LocalXXXXX анахронизм, сейчас нужно использовать или HeapXXXXX, или VirtualXXXXX.