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
| Group | Functions |
|---|---|
| Module manager | GETVERSION GETMODULEHANDLE GETMODULEUSAGE GETMODULEFILENAME GETPROCADDRESS MAKEPROCINSTANCE FREEPROCINSTANCE GETINSTANCEDATA CATCH THROW GETCODEHANDLE LOADLIBRARY |
| Global Memory Manager | GlobalAlloc GlobalCompact GlobalDiscard GlobalFree GlobalLock GlobalReAlloc GlobalSize GlobalUnlock GlobalFlags |
| Local Memory Manager | LocalInit LocalAlloc LocalCompact LocalDiscard LocalFree LocalLock LocalFreeze LocalMelt LocalReAlloc LocalSize LocalUnlock LocalHandleDelta LockData UnlockData LocalFlags |
| Task Scheduler | GetCurrentTask Yield SetPriority |
| Resource Manager | AddFontResource RemoveFontResource LoadBitmap LoadCursor LoadIcon LoadMenu LoadString LoadAccelerators FindResource LoadResource AllocResource LockResource FreeResource AccessResource SizeofResource SetResourceHandler |
| String Translation | AnsiUpper AnsiLower AnsiNext AnsiPrev |
| Atom Manager | InitAtomTable AddAtom DeleteAtom FindAtom GetAtomName |
| Windows Initialization File | GetProfileInt GetProfileString WriteProfileString |
| Debugging | FatalExit |
| File I/O | _lopen _lcreat _llseek _lread _lwrite _lclose OpenFile GetTempFileName GetTempDrive |
| Registry | RegOpenKey RegCreateKey RegCloseKey RegDeleteKey RegSetValue RegQueryValue RegEnumKey |