This is part of Win16 API which allow to create versions of program from one source code to run under OS/2 and Win16. Under OS/2 program can be running under Win-OS/2 if program is Windows NE executable, and with help on Windows Libraries for OS/2, if it is OS/2 NE executable. Here is a WLO to OS/2 API mapping draft
Locks a local memory object and returns a pointer to its first byte.
LPVOID WINAPI LocalLock( HLOCAL hMem );
hMem – Handle to the memory object.
Returns a pointer to the beginning of the memory block.
Returns NULL on failure (e.g., handle is invalid or the block has been discarded). Call GetLastError.
Increments the lock count of the object by one. The heap manager cannot move or discard a locked block.
Every call to LocalLock must be balanced with a call to LocalUnlock.
For fixed objects (LMEM_FIXED), the lock count is always zero and the returned pointer equals the handle.
LPSTR pData = (LPSTR)LocalLock(hMem); if (pData) { // work with data LocalUnlock(hMem); }
push hMem call LocalLock mov [p], ax