mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-03 20:30:55 +02:00
+ imported the win16 local memory management functions
git-svn-id: trunk@31544 -
This commit is contained in:
parent
1775725c26
commit
0abe2cddd6
@ -163,6 +163,26 @@ procedure LimitEmsPages(Kbytes: DWORD); external 'KERNEL';
|
||||
|
||||
procedure ValidateFreeSpaces; external 'KERNEL';
|
||||
|
||||
{ Local Memory Management }
|
||||
|
||||
function LocalDiscard(h: HLOCAL): HLOCAL; inline;
|
||||
|
||||
function LocalAlloc(Flags, Bytes: UINT): HLOCAL; external 'KERNEL';
|
||||
function LocalReAlloc(Mem: HLOCAL; Bytes, Flags: UINT): HLOCAL; external 'KERNEL';
|
||||
function LocalFree(Mem: HLOCAL): HLOCAL; external 'KERNEL';
|
||||
|
||||
function LocalLock(Mem: HLOCAL): NearPointer; external 'KERNEL';
|
||||
function LocalUnlock(Mem: HLOCAL): BOOL; external 'KERNEL';
|
||||
|
||||
function LocalSize(Mem: HLOCAL): UINT; external 'KERNEL';
|
||||
function LocalHandle(Mem: NearPointer): HLOCAL; external 'KERNEL';
|
||||
|
||||
function LocalFlags(Mem: HLOCAL): UINT; external 'KERNEL';
|
||||
|
||||
function LocalInit(Segment, Start, EndPos: UINT): BOOL; external 'KERNEL';
|
||||
function LocalCompact(MinFree: UINT): UINT; external 'KERNEL';
|
||||
function LocalShrink(Seg: HLOCAL; Size: UINT): UINT; external 'KERNEL';
|
||||
|
||||
implementation
|
||||
|
||||
function LOBYTE(w: Word): Byte;
|
||||
@ -230,4 +250,9 @@ begin
|
||||
UnlockSegment(UINT(-1));
|
||||
end;
|
||||
|
||||
function LocalDiscard(h: HLOCAL): HLOCAL;
|
||||
begin
|
||||
LocalDiscard := LocalReAlloc(h, 0, LMEM_MOVEABLE);
|
||||
end;
|
||||
|
||||
end.
|
||||
|
@ -144,6 +144,26 @@ const
|
||||
type
|
||||
GNOTIFYPROC = function(hGlbl: HGLOBAL): BOOL; far;
|
||||
|
||||
const
|
||||
{ Local Memory Flags }
|
||||
LMEM_FIXED = $0000;
|
||||
LMEM_MOVEABLE = $0002;
|
||||
LMEM_NOCOMPACT = $0010;
|
||||
LMEM_NODISCARD = $0020;
|
||||
LMEM_ZEROINIT = $0040;
|
||||
LMEM_MODIFY = $0080;
|
||||
LMEM_DISCARDABLE = $0F00;
|
||||
|
||||
LHND = LMEM_MOVEABLE or LMEM_ZEROINIT;
|
||||
LPTR = LMEM_FIXED or LMEM_ZEROINIT;
|
||||
|
||||
NONZEROLHND = LMEM_MOVEABLE;
|
||||
NONZEROLPTR = LMEM_FIXED;
|
||||
|
||||
{ LocalFlags return flags (in addition to LMEM_DISCARDABLE) }
|
||||
LMEM_DISCARDED = $4000;
|
||||
LMEM_LOCKCOUNT = $00FF;
|
||||
|
||||
implementation
|
||||
|
||||
end.
|
||||
|
Loading…
Reference in New Issue
Block a user