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
Returns information about a local memory object, including its lock count and discardable status.
UINT WINAPI LocalFlags( HLOCAL hMem );
hMem – Handle to the memory object.
The low‑order byte of the low‑order word contains the lock count. Use LMEM_LOCKCOUNT to mask this value.
The high‑order byte of the low‑order word indicates the allocation attributes (e.g., LMEM_DISCARDABLE, LMEM_DISCARDED).
If the handle is invalid, the function returns LMEM_INVALID_HANDLE (0x7FFF).
For fixed objects, the lock count is always zero.
Can be used to determine whether a block has been discarded (by checking for LMEM_DISCARDED in the high‑order byte).
UINT flags = LocalFlags(hMem); if (flags != LMEM_INVALID_HANDLE) { WORD lockCount = flags & LMEM_LOCKCOUNT; if (flags & 0x0F00) ... // discardable/discarded }
push hMem call LocalFlags and ax, LMEM_LOCKCOUNT ; extract lock count