mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 10:46:18 +02:00
+ started porting the win16 api units
git-svn-id: trunk@31533 -
This commit is contained in:
parent
393d86a2e5
commit
8610065db4
3
.gitattributes
vendored
3
.gitattributes
vendored
@ -9710,6 +9710,9 @@ rtl/win16/sysheap.inc svneol=native#text/plain
|
|||||||
rtl/win16/sysos.inc svneol=native#text/plain
|
rtl/win16/sysos.inc svneol=native#text/plain
|
||||||
rtl/win16/sysosh.inc svneol=native#text/plain
|
rtl/win16/sysosh.inc svneol=native#text/plain
|
||||||
rtl/win16/system.pp svneol=native#text/plain
|
rtl/win16/system.pp svneol=native#text/plain
|
||||||
|
rtl/win16/win31.pp svneol=native#text/plain
|
||||||
|
rtl/win16/winprocs.pp svneol=native#text/plain
|
||||||
|
rtl/win16/wintypes.pp svneol=native#text/plain
|
||||||
rtl/win32/Makefile svneol=native#text/plain
|
rtl/win32/Makefile svneol=native#text/plain
|
||||||
rtl/win32/Makefile.fpc svneol=native#text/plain
|
rtl/win32/Makefile.fpc svneol=native#text/plain
|
||||||
rtl/win32/buildrtl.lpi svneol=native#text/plain
|
rtl/win32/buildrtl.lpi svneol=native#text/plain
|
||||||
|
17
rtl/win16/win31.pp
Normal file
17
rtl/win16/win31.pp
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
unit win31;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
wintypes;
|
||||||
|
|
||||||
|
const
|
||||||
|
GFSR_SYSTEMRESOURCES = $0000;
|
||||||
|
GFSR_GDIRESOURCES = $0001;
|
||||||
|
GFSR_USERRESOURCES = $0002;
|
||||||
|
|
||||||
|
function GetFreeSystemResources(SysResource: UINT): UINT; external 'USER';
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
end.
|
94
rtl/win16/winprocs.pp
Normal file
94
rtl/win16/winprocs.pp
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
unit winprocs;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
wintypes;
|
||||||
|
|
||||||
|
function LOBYTE(w: Word): Byte; inline;
|
||||||
|
function HIBYTE(w: Word): Byte; inline;
|
||||||
|
|
||||||
|
function LOWORD(l: LongInt): Word; inline;
|
||||||
|
function HIWORD(l: LongInt): Word; inline;
|
||||||
|
|
||||||
|
function MAKELONG(low, high: Word): LONG; inline;
|
||||||
|
|
||||||
|
function MAKELPARAM(low, high: Word): LPARAM; inline;
|
||||||
|
function MAKELRESULT(low, high: Word): LRESULT; inline;
|
||||||
|
|
||||||
|
function MAKELP(sel, off: Word): FarPointer; inline;
|
||||||
|
function SELECTOROF(lp: FarPointer): Word; inline;
|
||||||
|
function OFFSETOF(lp: FarPointer): Word; inline;
|
||||||
|
|
||||||
|
// FIELDOFFSET
|
||||||
|
|
||||||
|
{ System Information }
|
||||||
|
function GetVersion: DWORD; external 'KERNEL';
|
||||||
|
|
||||||
|
function GetFreeSpace(Flag: UINT): DWORD; external 'KERNEL';
|
||||||
|
function GetCurrentPDB: UINT; external 'KERNEL';
|
||||||
|
|
||||||
|
function GetWindowsDirectory(Buffer: LPSTR; Size: UINT): UINT; external 'KERNEL';
|
||||||
|
function GetSystemDirectory(Buffer: LPSTR; Size: UINT): UINT; external 'KERNEL';
|
||||||
|
|
||||||
|
function GetWinFlags: DWORD; external 'KERNEL';
|
||||||
|
|
||||||
|
function GetDOSEnvironment: LPSTR; external 'KERNEL';
|
||||||
|
|
||||||
|
function GetCurrentTime: DWORD; external 'USER';
|
||||||
|
function GetTickCount: DWORD; external 'USER';
|
||||||
|
function GetTimerResolution: DWORD; external 'USER';
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
function LOBYTE(w: Word): Byte;
|
||||||
|
begin
|
||||||
|
LOBYTE := Byte(w);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function HIBYTE(w: Word): Byte;
|
||||||
|
begin
|
||||||
|
HIBYTE := Byte(w shr 8);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function LOWORD(l: LongInt): Word;
|
||||||
|
begin
|
||||||
|
LOWORD := Word(l);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function HIWORD(l: LongInt): Word;
|
||||||
|
begin
|
||||||
|
HIWORD := Word(l shr 16);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function MAKELONG(low, high: Word): LONG;
|
||||||
|
begin
|
||||||
|
MAKELONG := low or (LongInt(high) shl 16);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function MAKELPARAM(low, high: Word): LPARAM;
|
||||||
|
begin
|
||||||
|
MAKELPARAM := MAKELONG(low, high);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function MAKELRESULT(low, high: Word): LRESULT;
|
||||||
|
begin
|
||||||
|
MAKELRESULT := MAKELONG(low, high);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function MAKELP(sel, off: Word): FarPointer;
|
||||||
|
begin
|
||||||
|
MAKELP := Ptr(sel, off);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function SELECTOROF(lp: FarPointer): Word;
|
||||||
|
begin
|
||||||
|
SELECTOROF:=HIWORD(LongInt(lp));
|
||||||
|
end;
|
||||||
|
|
||||||
|
function OFFSETOF(lp: FarPointer): Word;
|
||||||
|
begin
|
||||||
|
OFFSETOF:=LOWORD(LongInt(lp));
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
81
rtl/win16/wintypes.pp
Normal file
81
rtl/win16/wintypes.pp
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
unit wintypes;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
type
|
||||||
|
Bool = WordBool;
|
||||||
|
|
||||||
|
UINT = Word;
|
||||||
|
LONG = LongInt;
|
||||||
|
|
||||||
|
WPARAM = UINT;
|
||||||
|
LPARAM = LONG;
|
||||||
|
LRESULT = LONG;
|
||||||
|
|
||||||
|
{ The Win16 C headers define the P-prefixed types - PSTR, etc. as near pointers.
|
||||||
|
Borland Pascal 7 defines them as far pointers (in other words, the same as the
|
||||||
|
LP-prefixed type - LPSTR) We define them as the default pointer type for the
|
||||||
|
current memory model. This means we'll be BP7 compatible in the large memory
|
||||||
|
model (which is the only memory model supported by BP7).
|
||||||
|
|
||||||
|
Also, using memory models other than 'large' under win16 is somewhat nasty and
|
||||||
|
is better to be avoided. }
|
||||||
|
PSTR = ^Char;
|
||||||
|
NPSTR = ^Char; near;
|
||||||
|
LPSTR = ^Char; far;
|
||||||
|
LPCSTR = ^Char; far;
|
||||||
|
|
||||||
|
{ PBYTE is already defined in system }
|
||||||
|
LPBYTE = ^Byte; far;
|
||||||
|
|
||||||
|
PINT = ^SmallInt;
|
||||||
|
LPINT = ^SmallInt; far;
|
||||||
|
|
||||||
|
{ PWORD is already defined in system }
|
||||||
|
LPWORD = ^Word; far;
|
||||||
|
|
||||||
|
PLONG = ^LONG;
|
||||||
|
LPLONG = ^LONG; far;
|
||||||
|
|
||||||
|
{ PDWORD is already defined in system }
|
||||||
|
LPDWORD = ^DWORD; far;
|
||||||
|
|
||||||
|
LPVOID = FarPointer;
|
||||||
|
|
||||||
|
PHANDLE = ^THandle;
|
||||||
|
SPHANDLE = ^THandle; near;
|
||||||
|
LPHANDLE = ^THandle; far;
|
||||||
|
|
||||||
|
HGLOBAL = THandle;
|
||||||
|
HLOCAL = THandle;
|
||||||
|
|
||||||
|
TGlobalHandle = THandle;
|
||||||
|
TLocalHandle = THandle;
|
||||||
|
|
||||||
|
ATOM = UINT;
|
||||||
|
TAtom = ATOM;
|
||||||
|
|
||||||
|
HINST = THandle; { instead of HINSTANCE, to avoid conflict with var hInstance }
|
||||||
|
HMODULE = HINST;
|
||||||
|
|
||||||
|
const
|
||||||
|
{ GetWinFlags result mask values }
|
||||||
|
WF_PMODE = $0001;
|
||||||
|
WF_CPU286 = $0002;
|
||||||
|
WF_CPU386 = $0004;
|
||||||
|
WF_CPU486 = $0008;
|
||||||
|
WF_STANDARD = $0010;
|
||||||
|
WF_WIN286 = $0010;
|
||||||
|
WF_ENHANCED = $0020;
|
||||||
|
WF_WIN386 = $0020;
|
||||||
|
WF_CPU086 = $0040;
|
||||||
|
WF_CPU186 = $0080;
|
||||||
|
WF_LARGEFRAME = $0100;
|
||||||
|
WF_SMALLFRAME = $0200;
|
||||||
|
WF_80x87 = $0400;
|
||||||
|
WF_PAGING = $0800;
|
||||||
|
WF_WLO = $8000;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
end.
|
Loading…
Reference in New Issue
Block a user