* fixed i386-wince support. WinCE API functions are cdecl.

git-svn-id: trunk@5741 -
This commit is contained in:
yury 2006-12-29 20:49:03 +00:00
parent 5938f9ed6c
commit ff37ef8786
11 changed files with 281 additions and 291 deletions

View File

@ -20,14 +20,14 @@
{ memory functions }
function GetProcessHeap : THandle;
stdcall;external KernelDLL name 'GetProcessHeap';
{$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'GetProcessHeap';
function HeapAlloc(hHeap : DWord; dwFlags : DWord; dwBytes : SIZE_T) : pointer;
stdcall;external KernelDLL name 'HeapAlloc';
{$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'HeapAlloc';
function HeapFree(hHeap : THandle; dwFlags : dword; lpMem: pointer) : boolean;
stdcall;external KernelDLL name 'HeapFree';
{$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'HeapFree';
{$IFDEF SYSTEMDEBUG}
function WinAPIHeapSize(hHeap : THandle; dwFlags : DWord; ptr : Pointer) : DWord;
stdcall;external 'kernel32' name 'HeapSize';
{$ifdef wince}cdecl{$else}stdcall{$endif};external 'kernel32' name 'HeapSize';
{$ENDIF}
@ -48,4 +48,3 @@ procedure SysOSFree(p: pointer; size: ptrint);
begin
HeapFree(GetProcessHeap, 0, p);
end;

View File

@ -171,11 +171,11 @@ threadvar
{ misc. functions }
function GetLastError : DWORD;
stdcall;external KernelDLL name 'GetLastError';
{$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'GetLastError';
{ time and date functions }
function GetTickCount : longint;
stdcall;external KernelDLL name 'GetTickCount';
{$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'GetTickCount';
{$ifndef WINCE}
{ process functions }
@ -201,27 +201,26 @@ threadvar
{ module functions }
function GetModuleFileName(l1:longint;p:pointer;l2:longint):longint;
stdcall;external KernelDLL name 'GetModuleFileName' + ApiSuffix;
{$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'GetModuleFileName' + ApiSuffix;
function GetModuleHandle(p : pointer) : longint;
stdcall;external KernelDLL name 'GetModuleHandle' + ApiSuffix;
function GetCommandFile:pchar;forward;
{$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'GetModuleHandle' + ApiSuffix;
{ file functions }
function WriteFile(fh:thandle;buf:pointer;len:longint;var loaded:longint;
overlap:pointer):longint;
stdcall;external KernelDLL name 'WriteFile';
{$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'WriteFile';
function ReadFile(fh:thandle;buf:pointer;len:longint;var loaded:longint;
overlap:pointer):longint;
stdcall;external KernelDLL name 'ReadFile';
{$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'ReadFile';
function CloseHandle(h : thandle) : longint;
stdcall;external KernelDLL name 'CloseHandle';
{$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'CloseHandle';
function SetFilePointer(l1,l2 : thandle;l3 : pointer;l4 : longint) : longint;
stdcall;external KernelDLL name 'SetFilePointer';
{$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'SetFilePointer';
function GetFileSize(h:thandle;p:pointer) : longint;
stdcall;external KernelDLL name 'GetFileSize';
{$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'GetFileSize';
function SetEndOfFile(h : thandle) : longbool;
stdcall;external KernelDLL name 'SetEndOfFile';
function FreeLibrary(hLibModule:THandle):ByteBool; stdcall; external KernelDLL name 'FreeLibrary';
{$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'SetEndOfFile';
function FreeLibrary(hLibModule:THandle):ByteBool; {$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'FreeLibrary';
{$ifndef WINCE}
function LoadLibrary(lpLibFileName:pchar):THandle; stdcall; external KernelDLL name 'LoadLibraryA';
@ -248,16 +247,6 @@ threadvar
stdcall;external KernelDLL name 'SetCurrentDirectoryA';
function GetCurrentDirectory(bufsize : longint;name : pchar) : longbool;
stdcall;external KernelDLL name 'GetCurrentDirectoryA';
{$else WINCE}
function LoadLibraryW(lpLibFileName:PWideChar):THandle; stdcall; external KernelDLL name 'LoadLibraryW';
function LoadLibrary(lpLibFileName:PChar):THandle;
var buf: array[0..MaxPathLen] of WideChar;
begin
AnsiToWideBuf(lpLibFileName, -1, buf, SizeOf(buf));
LoadLibrary:=LoadLibraryW(PWideChar(lpLibFileName));
end;
function GetProcAddress(hModule:THandle; lpProcName:pchar):pointer; stdcall; external KernelDLL name 'GetProcAddressA';
{$endif WINCE}
var
SetFilePointerEx : function(hFile : THandle;
@ -276,7 +265,7 @@ threadvar
FreeLibrary(hinstLib);
end;
end;
{$endif WINCE}
Procedure Errno2InOutRes;
var

View File

@ -31,25 +31,25 @@ function TlsFree(dwTlsIndex : DWord) : LongBool;
stdcall;external KernelDLL name 'TlsFree';
{$endif WINCE}
function TlsGetValue(dwTlsIndex : DWord) : pointer;
stdcall;external KernelDLL name 'TlsGetValue';
{$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'TlsGetValue';
function TlsSetValue(dwTlsIndex : DWord;lpTlsValue : pointer) : LongBool;
stdcall;external KernelDLL name 'TlsSetValue';
{$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'TlsSetValue';
function CreateThread(lpThreadAttributes : pointer;
dwStackSize : SIZE_T; lpStartAddress : pointer;lpParameter : pointer;
dwCreationFlags : DWord;var lpThreadId : DWord) : THandle;
stdcall;external KernelDLL name 'CreateThread';
{$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'CreateThread';
procedure ExitThread(dwExitCode : DWord);
stdcall;external KernelDLL name 'ExitThread';
{$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'ExitThread';
function LocalAlloc(uFlags:DWord; dwBytes:DWORD):Pointer;
stdcall;external KernelDLL name 'LocalAlloc';
function LocalFree(hMem : Pointer):Pointer; stdcall;external KernelDLL name 'LocalFree';
procedure Sleep(dwMilliseconds: DWord); stdcall;external KernelDLL name 'Sleep';
function WinSuspendThread (threadHandle : THandle) : dword; stdcall;external KernelDLL name 'SuspendThread';
function WinResumeThread (threadHandle : THandle) : dword; stdcall;external KernelDLL name 'ResumeThread';
function TerminateThread (threadHandle : THandle; var exitCode : dword) : boolean; stdcall;external KernelDLL name 'TerminateThread';
function WaitForSingleObject (hHandle : THandle;Milliseconds: dword): dword; stdcall;external KernelDLL name 'WaitForSingleObject';
function WinThreadSetPriority (threadHandle : THandle; Prio: longint): boolean; stdcall;external KernelDLL name 'SetThreadPriority';
function WinThreadGetPriority (threadHandle : THandle): LongInt; stdcall;external KernelDLL name 'GetThreadPriority';
{$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'LocalAlloc';
function LocalFree(hMem : Pointer):Pointer; {$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'LocalFree';
procedure Sleep(dwMilliseconds: DWord); {$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'Sleep';
function WinSuspendThread (threadHandle : THandle) : dword; {$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'SuspendThread';
function WinResumeThread (threadHandle : THandle) : dword; {$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'ResumeThread';
function TerminateThread (threadHandle : THandle; var exitCode : dword) : boolean; {$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'TerminateThread';
function WaitForSingleObject (hHandle : THandle;Milliseconds: dword): dword; {$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'WaitForSingleObject';
function WinThreadSetPriority (threadHandle : THandle; Prio: longint): boolean; {$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'SetThreadPriority';
function WinThreadGetPriority (threadHandle : THandle): LongInt; {$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'GetThreadPriority';
{$ifndef WINCE}
function CreateEvent(lpEventAttributes:pointer;bManualReset:longbool;bInitialState:longbool;lpName:pchar): THandle; stdcall; external KernelDLL name 'CreateEventA';
function ResetEvent(hEvent:THandle):LONGBOOL; stdcall; external KernelDLL name 'ResetEvent';
@ -141,7 +141,7 @@ CONST
end;
function ThreadMain(param : pointer) : Longint; stdcall;
function ThreadMain(param : pointer) : Longint; {$ifdef wince}cdecl{$else}stdcall{$endif};
var
ti : tthreadinfo;
begin
@ -260,16 +260,16 @@ CONST
*****************************************************************************}
procedure WinInitCriticalSection(var cs : TRTLCriticalSection);
stdcall;external KernelDLL name 'InitializeCriticalSection';
{$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'InitializeCriticalSection';
procedure WinDoneCriticalSection(var cs : TRTLCriticalSection);
stdcall;external KernelDLL name 'DeleteCriticalSection';
{$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'DeleteCriticalSection';
procedure WinEnterCriticalSection(var cs : TRTLCriticalSection);
stdcall;external KernelDLL name 'EnterCriticalSection';
{$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'EnterCriticalSection';
procedure WinLeaveCriticalSection(var cs : TRTLCriticalSection);
stdcall;external KernelDLL name 'LeaveCriticalSection';
{$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'LeaveCriticalSection';
procedure SySInitCriticalSection(var cs);
begin

View File

@ -19,7 +19,7 @@ var
{ event that happens when gui thread is done executing the method
}
function ThreadWndProc(Window: HWnd; AMessage:UInt; WParam : WParam; LParam: LParam): Longint; stdcall;
function ThreadWndProc(Window: HWnd; AMessage:UInt; WParam : WParam; LParam: LParam): Longint; {$ifdef wince}cdecl{$else}stdcall{$endif};
begin
case AMessage of

View File

@ -79,23 +79,23 @@ function PCharToPWideChar(str: PChar; strlen: longint = -1; outlen: PLongInt = n
function StringToPWideChar(const s: AnsiString; outlen: PLongInt = nil): PWideChar;
{ Wrappers for some WinAPI calls }
function CreateEvent(lpEventAttributes:pointer;bManualReset:longbool;bInitialState:longbool;lpName:pchar): THandle; stdcall;
function ResetEvent(h: THandle): LONGBOOL; stdcall;
function SetEvent(h: THandle): LONGBOOL; stdcall;
function GetCurrentProcessId:DWORD; stdcall;
function Win32GetCurrentThreadId:DWORD; stdcall;
function TlsAlloc : DWord; stdcall;
function TlsFree(dwTlsIndex : DWord) : LongBool; stdcall;
function CreateEvent(lpEventAttributes:pointer;bManualReset:longbool;bInitialState:longbool;lpName:pchar): THandle;
function ResetEvent(h: THandle): LONGBOOL;
function SetEvent(h: THandle): LONGBOOL;
function GetCurrentProcessId:DWORD;
function Win32GetCurrentThreadId:DWORD;
function TlsAlloc : DWord;
function TlsFree(dwTlsIndex : DWord) : LongBool;
function GetFileAttributes(p : pchar) : dword; stdcall;
function DeleteFile(p : pchar) : longint; stdcall;
function MoveFile(old,_new : pchar) : longint; stdcall;
function GetFileAttributes(p : pchar) : dword;
function DeleteFile(p : pchar) : longint;
function MoveFile(old,_new : pchar) : longint;
function CreateFile(lpFileName:pchar; dwDesiredAccess:DWORD; dwShareMode:DWORD;
lpSecurityAttributes:pointer; dwCreationDisposition:DWORD;
dwFlagsAndAttributes:DWORD; hTemplateFile:DWORD):longint; stdcall;
dwFlagsAndAttributes:DWORD; hTemplateFile:DWORD):longint;
function CreateDirectory(name : pointer;sec : pointer) : longbool; stdcall;
function RemoveDirectory(name:pointer):longbool; stdcall;
function CreateDirectory(name : pointer;sec : pointer) : longbool;
function RemoveDirectory(name:pointer):longbool;
{$ifdef CPUARM}
@ -195,7 +195,7 @@ var
{$i winres.inc}
function MessageBox(w1:longint;l1,l2:PWideChar;w2:longint):longint;
stdcall;external 'coredll' name 'MessageBoxW';
cdecl; external 'coredll' name 'MessageBoxW';
{*****************************************************************************}
@ -236,7 +236,7 @@ begin
end;
{$define FPC_SYSTEM_HAS_TRUNC}
function __dtoi64(d: double) : int64; external 'coredll';
function __dtoi64(d: double) : int64; cdecl; external 'coredll';
function fpc_trunc_real(d : ValReal) : int64; assembler; nostackframe; compilerproc;
asm
@ -244,7 +244,7 @@ asm
end;
{$define FPC_SYSTEM_HAS_ABS}
function fabs(d: double): double; external 'coredll';
function fabs(d: double): double; cdecl; external 'coredll';
function fpc_abs_real(d : ValReal) : ValReal; assembler; nostackframe; compilerproc;
asm
@ -252,7 +252,7 @@ asm
end;
{$define FPC_SYSTEM_HAS_SQRT}
function coresqrt(d: double): double; external 'coredll' name 'sqrt';
function coresqrt(d: double): double; cdecl; external 'coredll' name 'sqrt';
function fpc_sqrt_real(d : ValReal) : ValReal; assembler; nostackframe; compilerproc;
asm
@ -299,9 +299,9 @@ const
CP_OEMCP = 1;
function MultiByteToWideChar(CodePage:UINT; dwFlags:DWORD; lpMultiByteStr:PChar; cchMultiByte:longint; lpWideCharStr:PWideChar;cchWideChar:longint):longint;
stdcall; external 'coredll' name 'MultiByteToWideChar';
cdecl; external 'coredll' name 'MultiByteToWideChar';
function WideCharToMultiByte(CodePage:UINT; dwFlags:DWORD; lpWideCharStr:PWideChar; cchWideChar:longint; lpMultiByteStr:PChar;cchMultiByte:longint; lpDefaultChar:PChar; lpUsedDefaultChar:pointer):longint;
stdcall; external 'coredll' name 'WideCharToMultiByte';
cdecl; external 'coredll' name 'WideCharToMultiByte';
function AnsiToWideBuf(AnsiBuf: PChar; AnsiBufLen: longint; WideBuf: PWideChar; WideBufLen: longint): longint;
begin
@ -399,21 +399,21 @@ end;
*****************************************************************************}
function GetFileAttributesW(p : pwidechar) : dword;
stdcall;external KernelDLL name 'GetFileAttributesW';
cdecl; external KernelDLL name 'GetFileAttributesW';
function DeleteFileW(p : pwidechar) : longint;
stdcall;external KernelDLL name 'DeleteFileW';
cdecl; external KernelDLL name 'DeleteFileW';
function MoveFileW(old,_new : pwidechar) : longint;
stdcall;external KernelDLL name 'MoveFileW';
cdecl; external KernelDLL name 'MoveFileW';
function CreateFileW(lpFileName:pwidechar; dwDesiredAccess:DWORD; dwShareMode:DWORD;
lpSecurityAttributes:pointer; dwCreationDisposition:DWORD;
dwFlagsAndAttributes:DWORD; hTemplateFile:DWORD):longint;
stdcall;external KernelDLL name 'CreateFileW';
cdecl; external KernelDLL name 'CreateFileW';
function CreateDirectoryW(name : pwidechar;sec : pointer) : longbool;
stdcall;external KernelDLL name 'CreateDirectoryW';
cdecl; external KernelDLL name 'CreateDirectoryW';
function RemoveDirectoryW(name:pwidechar):longbool;
stdcall;external KernelDLL name 'RemoveDirectoryW';
cdecl; external KernelDLL name 'RemoveDirectoryW';
function GetFileAttributes(p : pchar) : dword; stdcall;
function GetFileAttributes(p : pchar) : dword;
var
buf: array[0..MaxPathLen] of WideChar;
begin
@ -421,7 +421,7 @@ begin
GetFileAttributes := GetFileAttributesW(buf);
end;
function DeleteFile(p : pchar) : longint; stdcall;
function DeleteFile(p : pchar) : longint;
var
buf: array[0..MaxPathLen] of WideChar;
begin
@ -429,7 +429,7 @@ begin
DeleteFile := DeleteFileW(buf);
end;
function MoveFile(old,_new : pchar) : longint; stdcall;
function MoveFile(old,_new : pchar) : longint;
var
buf_old, buf_new: array[0..MaxPathLen] of WideChar;
begin
@ -440,7 +440,7 @@ end;
function CreateFile(lpFileName:pchar; dwDesiredAccess:DWORD; dwShareMode:DWORD;
lpSecurityAttributes:pointer; dwCreationDisposition:DWORD;
dwFlagsAndAttributes:DWORD; hTemplateFile:DWORD):longint; stdcall;
dwFlagsAndAttributes:DWORD; hTemplateFile:DWORD):longint;
var
buf: array[0..MaxPathLen] of WideChar;
begin
@ -449,7 +449,7 @@ begin
dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile);
end;
function CreateDirectory(name : pointer;sec : pointer) : longbool; stdcall;
function CreateDirectory(name : pointer;sec : pointer) : longbool;
var
buf: array[0..MaxPathLen] of WideChar;
begin
@ -457,7 +457,7 @@ begin
CreateDirectory := CreateDirectoryW(buf, sec);
end;
function RemoveDirectory(name:pointer):longbool; stdcall;
function RemoveDirectory(name:pointer):longbool;
var
buf: array[0..MaxPathLen] of WideChar;
begin
@ -485,9 +485,9 @@ const
EVENT_SET = 3;
function CreateEventW(lpEventAttributes:pointer;bManualReset:longbool;bInitialState:longbool;lpName:PWideChar): THandle;
stdcall; external KernelDLL name 'CreateEventW';
cdecl; external KernelDLL name 'CreateEventW';
function CreateEvent(lpEventAttributes:pointer;bManualReset:longbool;bInitialState:longbool;lpName:pchar): THandle; stdcall;
function CreateEvent(lpEventAttributes:pointer;bManualReset:longbool;bInitialState:longbool;lpName:pchar): THandle;
var
buf: array[0..MaxPathLen] of WideChar;
begin
@ -496,21 +496,21 @@ begin
end;
function EventModify(h: THandle; func: DWORD): LONGBOOL;
stdcall; external KernelDLL name 'EventModify';
cdecl; external KernelDLL name 'EventModify';
function TlsCall(p1, p2: DWORD): DWORD;
stdcall; external KernelDLL name 'TlsCall';
cdecl; external KernelDLL name 'TlsCall';
function ResetEvent(h: THandle): LONGBOOL; stdcall;
function ResetEvent(h: THandle): LONGBOOL;
begin
ResetEvent := EventModify(h,EVENT_RESET);
end;
function SetEvent(h: THandle): LONGBOOL; stdcall;
function SetEvent(h: THandle): LONGBOOL;
begin
SetEvent := EventModify(h,EVENT_SET);
end;
function GetCurrentProcessId:DWORD; stdcall;
function GetCurrentProcessId:DWORD;
var
p: PHandle;
begin
@ -518,7 +518,7 @@ begin
GetCurrentProcessId := p^;
end;
function Win32GetCurrentThreadId:DWORD; stdcall;
function Win32GetCurrentThreadId:DWORD;
var
p: PHandle;
begin
@ -530,12 +530,12 @@ const
TLS_FUNCALLOC = 0;
TLS_FUNCFREE = 1;
function TlsAlloc : DWord; stdcall;
function TlsAlloc : DWord;
begin
TlsAlloc := TlsCall(TLS_FUNCALLOC, 0);
end;
function TlsFree(dwTlsIndex : DWord) : LongBool; stdcall;
function TlsFree(dwTlsIndex : DWord) : LongBool;
begin
TlsFree := LongBool(TlsCall(TLS_FUNCFREE, dwTlsIndex));
end;
@ -545,7 +545,7 @@ end;
*****************************************************************************}
function GetCommandLine : pwidechar;
stdcall;external KernelDLL name 'GetCommandLineW';
cdecl; external KernelDLL name 'GetCommandLineW';
var
ModuleName : array[0..255] of char;
@ -802,8 +802,8 @@ end;
System Dependent Exit code
*****************************************************************************}
procedure PascalMain;stdcall;external name 'PASCALMAIN';
procedure ExitThread(Exitcode : longint); external 'coredll';
procedure PascalMain;external name 'PASCALMAIN';
procedure ExitThread(Exitcode : longint); cdecl; external 'coredll';
Procedure system_exit;
begin
@ -1110,13 +1110,13 @@ type
{$ifdef CPUI386}
{**************************** i386 Exception handling *****************************************}
function GetCurrentProcess:DWORD; stdcall;
function GetCurrentProcess:DWORD;
begin
GetCurrentProcess := SH_CURPROC+SYS_HANDLE_BASE;
end;
function ReadProcessMemory(process : dword;address : pointer;dest : pointer;size : dword;bytesread : pdword) : longbool;
stdcall;external 'coredll' name 'ReadProcessMemory';
cdecl; external 'coredll' name 'ReadProcessMemory';
function is_prefetch(p : pointer) : boolean;
var
@ -1192,10 +1192,8 @@ begin
if IsConsole then
writeln(stderr,'In JumpToHandleErrorFrame error=',error);
{$endif SYSTEMEXCEPTIONDEBUG}
if resetFPU[exceptLevel] then asm
fninit
fldcw fpucw
end;
if resetFPU[exceptLevel] then
SysResetFPU;
{ build a fake stack }
asm
{$ifdef REGCALL}
@ -1466,19 +1464,19 @@ begin
{$endif CPUI386}
end;
procedure _FPC_mainCRTStartup;stdcall;public name '_mainCRTStartup';
procedure _FPC_mainCRTStartup;public name '_mainCRTStartup';
begin
IsConsole:=True;
Exe_entry;
end;
procedure _FPC_WinMainCRTStartup;stdcall;public name '_WinMainCRTStartup';
procedure _FPC_WinMainCRTStartup;public name '_WinMainCRTStartup';
begin
IsConsole:=False;
Exe_entry;
end;
procedure _FPC_DLLMainCRTStartup(_hinstance,_dllreason,_dllparam:longint);stdcall;public name '_DLLMainCRTStartup';
procedure _FPC_DLLMainCRTStartup(_hinstance,_dllreason,_dllparam:longint);public name '_DLLMainCRTStartup';
begin
IsConsole:=true;
sysinstance:=_hinstance;
@ -1488,7 +1486,7 @@ begin
end;
procedure _FPC_DLLWinMainCRTStartup(_hinstance,_dllreason,_dllparam:longint);stdcall;public name '_DLLWinMainCRTStartup';
procedure _FPC_DLLWinMainCRTStartup(_hinstance,_dllreason,_dllparam:longint);public name '_DLLWinMainCRTStartup';
begin
IsConsole:=false;
sysinstance:=_hinstance;
@ -1501,8 +1499,8 @@ end;
OS dependend widestrings
****************************************************************************}
function CharUpperBuff(lpsz:LPWSTR; cchLength:DWORD):DWORD; stdcall; external KernelDLL name 'CharUpperBuffW';
function CharLowerBuff(lpsz:LPWSTR; cchLength:DWORD):DWORD; stdcall; external KernelDLL name 'CharLowerBuffW';
function CharUpperBuff(lpsz:LPWSTR; cchLength:DWORD):DWORD; cdecl; external KernelDLL name 'CharUpperBuffW';
function CharLowerBuff(lpsz:LPWSTR; cchLength:DWORD):DWORD; cdecl; external KernelDLL name 'CharLowerBuffW';
procedure WinCEWide2AnsiMove(source:pwidechar;var dest:ansistring;len:SizeInt);
@ -1578,10 +1576,10 @@ procedure InitWinCEWidestrings;
Memory manager
****************************************************************************}
function malloc(Size : ptrint) : Pointer; external 'coredll';
procedure free(P : pointer); external 'coredll';
function realloc(P : Pointer; Size : ptrint) : pointer; external 'coredll';
function _msize(P : pointer): ptrint; external 'coredll';
function malloc(Size : ptrint) : Pointer; cdecl; external 'coredll';
procedure free(P : pointer); cdecl; external 'coredll';
function realloc(P : Pointer; Size : ptrint) : pointer; cdecl; external 'coredll';
function _msize(P : pointer): ptrint; cdecl; external 'coredll';
function SysGetMem (Size : ptrint) : Pointer;
begin

View File

@ -23,8 +23,8 @@ unit windows;
{ stuff like array of const is used }
{$mode objfpc}
{$calling cdecl} //convention is cdecl except for x86 emulator stdcall
//change nothing on arm
{ convention is cdecl for WinCE API}
{$calling cdecl}
interface

View File

@ -562,102 +562,102 @@
type
BFFCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPARAM; _para4:LPARAM):longint;stdcall;
BFFCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPARAM; _para4:LPARAM):longint;
LPCCHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;stdcall;
LPCCHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
LPCFHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;stdcall;
LPCFHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
PTHREAD_START_ROUTINE = Pointer;
LPTHREAD_START_ROUTINE = PTHREAD_START_ROUTINE;
EDITSTREAMCALLBACK = function (_para1:DWORD; _para2:LPBYTE; _para3:LONG; _para4:LONG):DWORD;stdcall;
EDITSTREAMCALLBACK = function (_para1:DWORD; _para2:LPBYTE; _para3:LONG; _para4:LONG):DWORD;
LPFRHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;stdcall;
LPFRHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
LPOFNHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;stdcall;
LPOFNHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
LPPRINTHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;stdcall;
LPPRINTHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
LPSETUPHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;stdcall;
LPSETUPHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
DLGPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):LRESULT;stdcall;
DLGPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):LRESULT;
PFNPROPSHEETCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPARAM):longint;stdcall;
PFNPROPSHEETCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPARAM):longint;
LPSERVICE_MAIN_FUNCTION = procedure (_para1:DWORD; _para2:LPTSTR);stdcall;
LPSERVICE_MAIN_FUNCTION = procedure (_para1:DWORD; _para2:LPTSTR);
PFNTVCOMPARE = function (_para1:LPARAM; _para2:LPARAM; _para3:LPARAM):longint;stdcall;
PFNTVCOMPARE = function (_para1:LPARAM; _para2:LPARAM; _para3:LPARAM):longint;
WNDPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):LRESULT;stdcall;
WNDPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):LRESULT;
FARPROC = pointer; //windef
NEARPROC= FARPROC; //+windef
PROC = FARPROC; //~windef
ENUMRESTYPEPROC = function (_para1:HANDLE; _para2:LPTSTR; _para3:LONG):WINBOOL;stdcall;
ENUMRESTYPEPROC = function (_para1:HANDLE; _para2:LPTSTR; _para3:LONG):WINBOOL;
ENUMRESNAMEPROC = function (_para1:HANDLE; _para2:LPCTSTR; _para3:LPTSTR; _para4:LONG):WINBOOL;stdcall;
ENUMRESNAMEPROC = function (_para1:HANDLE; _para2:LPCTSTR; _para3:LPTSTR; _para4:LONG):WINBOOL;
ENUMRESLANGPROC = function (_para1:HANDLE; _para2:LPCTSTR; _para3:LPCTSTR; _para4:WORD; _para5:LONG):WINBOOL;stdcall;
ENUMRESLANGPROC = function (_para1:HANDLE; _para2:LPCTSTR; _para3:LPCTSTR; _para4:WORD; _para5:LONG):WINBOOL;
DESKTOPENUMPROC = FARPROC;
ENUMWINDOWSPROC = function (_para1:HWND; _para2:LPARAM):WINBOOL;stdcall;
ENUMWINDOWSPROC = function (_para1:HWND; _para2:LPARAM):WINBOOL;
ENUMWINDOWSTATIONPROC = function (_para1:LPTSTR; _para2:LPARAM):WINBOOL;stdcall;
ENUMWINDOWSTATIONPROC = function (_para1:LPTSTR; _para2:LPARAM):WINBOOL;
SENDASYNCPROC = procedure (_para1:HWND; _para2:UINT; _para3:DWORD; _para4:LRESULT);stdcall;
SENDASYNCPROC = procedure (_para1:HWND; _para2:UINT; _para3:DWORD; _para4:LRESULT);
TIMERPROC = procedure (_para1:HWND; _para2:UINT; _para3:UINT; _para4:DWORD);stdcall;
TIMERPROC = procedure (_para1:HWND; _para2:UINT; _para3:UINT; _para4:DWORD);
GRAYSTRINGPROC = FARPROC;
DRAWSTATEPROC = function (_para1:HDC; _para2:LPARAM; _para3:WPARAM; _para4:longint; _para5:longint):WINBOOL;stdcall;
DRAWSTATEPROC = function (_para1:HDC; _para2:LPARAM; _para3:WPARAM; _para4:longint; _para5:longint):WINBOOL;
PROPENUMPROCEX = function (_para1:HWND; _para2:LPCTSTR; _para3:HANDLE; _para4:DWORD):WINBOOL;stdcall;
PROPENUMPROCEX = function (_para1:HWND; _para2:LPCTSTR; _para3:HANDLE; _para4:DWORD):WINBOOL;
PROPENUMPROC = function (_para1:HWND; _para2:LPCTSTR; _para3:HANDLE):WINBOOL;stdcall;
PROPENUMPROC = function (_para1:HWND; _para2:LPCTSTR; _para3:HANDLE):WINBOOL;
HOOKPROC = function (_para1:longint; _para2:WPARAM; _para3:LPARAM):LRESULT;stdcall;
HOOKPROC = function (_para1:longint; _para2:WPARAM; _para3:LPARAM):LRESULT;
ENUMOBJECTSPROC = procedure (_para1:LPVOID; _para2:LPARAM);stdcall;
ENUMOBJECTSPROC = procedure (_para1:LPVOID; _para2:LPARAM);
LINEDDAPROC = procedure (_para1:longint; _para2:longint; _para3:LPARAM);stdcall;
LINEDDAPROC = procedure (_para1:longint; _para2:longint; _para3:LPARAM);
TABORTPROC = function (_para1:HDC; _para2:longint):WINBOOL;stdcall;
TABORTPROC = function (_para1:HDC; _para2:longint):WINBOOL;
LPPAGEPAINTHOOK = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;stdcall;
LPPAGEPAINTHOOK = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
LPPAGESETUPHOOK = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;stdcall;
LPPAGESETUPHOOK = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
ICMENUMPROC = function (_para1:LPTSTR; _para2:LPARAM):longint;stdcall;
ICMENUMPROC = function (_para1:LPTSTR; _para2:LPARAM):longint;
EDITWORDBREAKPROCEX = function (_para1:pchar; _para2:LONG; _para3:BYTE; _para4:WINT):LONG;stdcall;
EDITWORDBREAKPROCEX = function (_para1:pchar; _para2:LONG; _para3:BYTE; _para4:WINT):LONG;
PFNLVCOMPARE = function (_para1:LPARAM; _para2:LPARAM; _para3:LPARAM):longint;stdcall;
PFNLVCOMPARE = function (_para1:LPARAM; _para2:LPARAM; _para3:LPARAM):longint;
LOCALE_ENUMPROC = function (_para1:LPTSTR):WINBOOL;stdcall;
LOCALE_ENUMPROC = function (_para1:LPTSTR):WINBOOL;
CODEPAGE_ENUMPROC = function (_para1:LPTSTR):WINBOOL;stdcall;
CODEPAGE_ENUMPROC = function (_para1:LPTSTR):WINBOOL;
CODEPAGE_ENUMPROCW = function (_para1:LPWSTR):WINBOOL; //+winnls
DATEFMT_ENUMPROC = function (_para1:LPTSTR):WINBOOL;stdcall;
DATEFMT_ENUMPROC = function (_para1:LPTSTR):WINBOOL;
TIMEFMT_ENUMPROC = function (_para1:LPTSTR):WINBOOL;stdcall;
TIMEFMT_ENUMPROC = function (_para1:LPTSTR):WINBOOL;
CALINFO_ENUMPROC = function (_para1:LPTSTR):WINBOOL;stdcall;
CALINFO_ENUMPROC = function (_para1:LPTSTR):WINBOOL;
PHANDLER_ROUTINE = function (_para1:DWORD):WINBOOL;stdcall;
PHANDLER_ROUTINE = function (_para1:DWORD):WINBOOL;
LPHANDLER_FUNCTION = function (_para1:DWORD):WINBOOL;stdcall;
LPHANDLER_FUNCTION = function (_para1:DWORD):WINBOOL;
PFNGETPROFILEPATH = function (_para1:LPCTSTR; _para2:LPSTR; _para3:UINT):UINT;stdcall;
PFNGETPROFILEPATH = function (_para1:LPCTSTR; _para2:LPSTR; _para3:UINT):UINT;
PFNRECONCILEPROFILE = function (_para1:LPCTSTR; _para2:LPCTSTR; _para3:DWORD):UINT;stdcall;
PFNRECONCILEPROFILE = function (_para1:LPCTSTR; _para2:LPCTSTR; _para3:DWORD):UINT;
PFNPROCESSPOLICIES = function (_para1:HWND; _para2:LPCTSTR; _para3:LPCTSTR; _para4:LPCTSTR; _para5:DWORD):WINBOOL;stdcall;
PFNPROCESSPOLICIES = function (_para1:HWND; _para2:LPCTSTR; _para3:LPCTSTR; _para4:LPCTSTR; _para5:DWORD):WINBOOL;
const
SE_CREATE_TOKEN_NAME = 'SeCreateTokenPrivilege';
SE_ASSIGNPRIMARYTOKEN_NAME = 'SeAssignPrimaryTokenPrivilege';
@ -709,7 +709,7 @@
type
{ PFNCALLBACK = CALLB; }
PFNCALLBACK = function(_para1, _para2: UINT;_para3: HCONV;_para4, _para5: HSZ; _para6: HDDEDATA;_para7 ,_para8 :DWORD): HDDEData;stdcall;
PFNCALLBACK = function(_para1, _para2: UINT;_para3: HCONV;_para4, _para5: HSZ; _para6: HDDEDATA;_para7 ,_para8 :DWORD): HDDEData;
{ CALLB = procedure ;CDECL; }
CALLB = PFNCALLBACK;

View File

@ -5049,7 +5049,7 @@
TMOUSEKEYS = MOUSEKEYS;
PMOUSEKEYS = ^MOUSEKEYS;
MSGBOXCALLBACK = procedure (lpHelpInfo:LPHELPINFO);stdcall;
MSGBOXCALLBACK = procedure (lpHelpInfo:LPHELPINFO);
TMSGBOXCALLBACK = MSGBOXCALLBACK;
MSGBOXPARAMS = record
@ -5993,7 +5993,7 @@
TPROCESSINFORMATION = PROCESS_INFORMATION;
PPROCESSINFORMATION = ^PROCESS_INFORMATION;
LPFNPSPCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPVOID):UINT;stdcall;
LPFNPSPCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPVOID):UINT;
TFNPSPCALLBACK = LPFNPSPCALLBACK;
PROPSHEETPAGEA = record
@ -6136,10 +6136,10 @@
{ PropertySheet callbacks }
LPFNADDPROPSHEETPAGE = function (_para1:HPROPSHEETPAGE; _para2:LPARAM):WINBOOL;stdcall;
LPFNADDPROPSHEETPAGE = function (_para1:HPROPSHEETPAGE; _para2:LPARAM):WINBOOL;
TFNADDPROPSHEETPAGE = LPFNADDPROPSHEETPAGE;
LPFNADDPROPSHEETPAGES = function (_para1:LPVOID; _para2:LPFNADDPROPSHEETPAGE; _para3:LPARAM):WINBOOL;stdcall;
LPFNADDPROPSHEETPAGES = function (_para1:LPVOID; _para2:LPFNADDPROPSHEETPAGE; _para3:LPARAM):WINBOOL;
TFNADDPROPSHEETPAGES = LPFNADDPROPSHEETPAGES;
PROTOCOL_INFO = record
@ -7387,17 +7387,17 @@
TNETCONNECTINFOSTRUCT = NETCONNECTINFOSTRUCT;
PNETCONNECTINFOSTRUCT = ^NETCONNECTINFOSTRUCT;
ENUMMETAFILEPROC = function (_para1:HDC; _para2:HANDLETABLE; _para3:METARECORD; _para4:longint; _para5:LPARAM):longint;stdcall;
ENUMMETAFILEPROC = function (_para1:HDC; _para2:HANDLETABLE; _para3:METARECORD; _para4:longint; _para5:LPARAM):longint;
ENHMETAFILEPROC = function (_para1:HDC; _para2:HANDLETABLE; _para3:ENHMETARECORD; _para4:longint; _para5:LPARAM):longint;stdcall;
ENHMETAFILEPROC = function (_para1:HDC; _para2:HANDLETABLE; _para3:ENHMETARECORD; _para4:longint; _para5:LPARAM):longint;
ENUMFONTSPROC = function (_para1:LPLOGFONT; _para2:LPTEXTMETRIC; _para3:DWORD; _para4:LPARAM):longint;stdcall;
ENUMFONTSPROC = function (_para1:LPLOGFONT; _para2:LPTEXTMETRIC; _para3:DWORD; _para4:LPARAM):longint;
FONTENUMPROC = function (var _para1:ENUMLOGFONT; var _para2:NEWTEXTMETRIC; _para3:longint; _para4:LPARAM):longint;stdcall;
FONTENUMPROC = function (var _para1:ENUMLOGFONT; var _para2:NEWTEXTMETRIC; _para3:longint; _para4:LPARAM):longint;
FONTENUMEXPROC = function (var _para1:ENUMLOGFONTEX;var _para2:NEWTEXTMETRICEX; _para3:longint; _para4:LPARAM):longint;stdcall;
FONTENUMEXPROC = function (var _para1:ENUMLOGFONTEX;var _para2:NEWTEXTMETRICEX; _para3:longint; _para4:LPARAM):longint;
LPOVERLAPPED_COMPLETION_ROUTINE = procedure (_para1:DWORD; _para2:DWORD; _para3:LPOVERLAPPED);stdcall;
LPOVERLAPPED_COMPLETION_ROUTINE = procedure (_para1:DWORD; _para2:DWORD; _para3:LPOVERLAPPED);
{ Structures for the extensions to OpenGL }

View File

@ -1,7 +1,7 @@
function SysFindResource(hModule:HMODULE; lpName: PWideChar; lpType: PWideChar):TResourceHandle; external 'coredll' name 'FindResourceW';
function SysLoadResource(hModule:HMODULE; hResInfo: TResourceHandle):HGLOBAL; external 'coredll' name 'LoadResource';
function SysSizeofResource(hModule:HMODULE; hResInfo:TResourceHandle):DWORD; external 'coredll' name 'SizeofResource';
function SysFindResource(hModule:HMODULE; lpName: PWideChar; lpType: PWideChar):TResourceHandle; cdecl; external 'coredll' name 'FindResourceW';
function SysLoadResource(hModule:HMODULE; hResInfo: TResourceHandle):HGLOBAL; cdecl; external 'coredll' name 'LoadResource';
function SysSizeofResource(hModule:HMODULE; hResInfo:TResourceHandle):DWORD; cdecl; external 'coredll' name 'SizeofResource';
Function HINSTANCE: HMODULE;
begin

View File

@ -26,6 +26,8 @@ unit winsock;
{$ifdef support_smartlink}
{$smartlink on}
{$endif}
{ convention is cdecl for WinCE API}
{$calling cdecl}
{remaining functions exported from ws2.dll and not used yet = to do,

View File

@ -13,6 +13,8 @@
unit WinSock2;
{$smartlink on}
{ convention is cdecl for WinCE API}
{$calling cdecl}
interface
@ -1091,107 +1093,107 @@ Type
{ WSAAccept() and overlapped I/O completion routine. }
Type
LPCONDITIONPROC = function (lpCallerId: LPWSABUF; lpCallerData : LPWSABUF; lpSQOS,lpGQOS : LPQOS; lpCalleeId,lpCalleeData : LPWSABUF;
g : GROUP; dwCallbackData : DWORD ) : Longint; stdcall;
LPWSAOVERLAPPED_COMPLETION_ROUTINE = procedure ( const dwError, cbTransferred : DWORD; const lpOverlapped : LPWSAOVERLAPPED; const dwFlags : DWORD ); stdcall;
g : GROUP; dwCallbackData : DWORD ) : Longint;
LPWSAOVERLAPPED_COMPLETION_ROUTINE = procedure ( const dwError, cbTransferred : DWORD; const lpOverlapped : LPWSAOVERLAPPED; const dwFlags : DWORD );
//begin common win & wince
function accept( const s: TSocket; addr: PSockAddr; addrlen: PLongint ): TSocket; stdcall;external WINSOCK2_DLL name 'accept';
function accept( const s: TSocket; addr: PSockAddr; var addrlen: Longint ): TSocket; stdcall;external WINSOCK2_DLL name 'accept';
function bind( const s: TSocket; addr: PSockAddr; const namelen: Longint ): Longint; stdcall;external WINSOCK2_DLL name 'bind';
function bind( const s: TSocket; const addr: TSockAddr; namelen: Longint ): Longint; stdcall;external WINSOCK2_DLL name 'bind';
function closesocket( const s: TSocket ): Longint; stdcall;external WINSOCK2_DLL name 'closesocket';
function connect( const s: TSocket; name: PSockAddr; namelen: Longint): Longint; stdcall;external WINSOCK2_DLL name 'connect';
function connect( const s: TSocket; const name: TSockAddr; namelen: Longint): Longint; stdcall;external WINSOCK2_DLL name 'connect';
function accept( const s: TSocket; addr: PSockAddr; addrlen: PLongint ): TSocket; external WINSOCK2_DLL name 'accept';
function accept( const s: TSocket; addr: PSockAddr; var addrlen: Longint ): TSocket; external WINSOCK2_DLL name 'accept';
function bind( const s: TSocket; addr: PSockAddr; const namelen: Longint ): Longint; external WINSOCK2_DLL name 'bind';
function bind( const s: TSocket; const addr: TSockAddr; namelen: Longint ): Longint; external WINSOCK2_DLL name 'bind';
function closesocket( const s: TSocket ): Longint; external WINSOCK2_DLL name 'closesocket';
function connect( const s: TSocket; name: PSockAddr; namelen: Longint): Longint; external WINSOCK2_DLL name 'connect';
function connect( const s: TSocket; const name: TSockAddr; namelen: Longint): Longint; external WINSOCK2_DLL name 'connect';
function gethostbyaddr(addr: Pointer; len, struct: Longint): PHostEnt; stdcall;external WINSOCK2_DLL name 'gethostbyaddr';
function gethostbyname(name: PChar): PHostEnt; stdcall;external WINSOCK2_DLL name 'gethostbyname';
function gethostname(name: PChar; len: Longint): Longint; stdcall;external WINSOCK2_DLL name 'gethostname';
function getpeername( const s: TSocket; var name: TSockAddr; var namelen: Longint ): Longint; stdcall;external WINSOCK2_DLL name 'getpeername';
function getprotobyname(name: PChar): PProtoEnt; stdcall;external WINSOCK2_DLL name 'getprotobyname';
function getprotobynumber(proto: Longint): PProtoEnt; stdcall;external WINSOCK2_DLL name 'getprotobynumber';
function getservbyport(port: Longint; proto: PChar): PServEnt; stdcall;external WINSOCK2_DLL name 'getservbyport';
function getservbyname(name, proto: PChar): PServEnt; stdcall;external WINSOCK2_DLL name 'getservbyname';
function getsockname( const s: TSocket; var name: TSockAddr; var namelen: Longint ): Longint; stdcall;external WINSOCK2_DLL name 'getsockname';
function getsockopt( const s: TSocket; const level, optname: Longint; optval: PChar; var optlen: Longint ): Longint; stdcall;external WINSOCK2_DLL name 'getsockopt';
function getsockopt( const s: TSocket; const level, optname: Longint; optval: Pointer; var optlen: Longint ): Longint; stdcall;external WINSOCK2_DLL name 'getsockopt';
function getsockopt( const s: TSocket; const level, optname: Longint; var optval; var optlen: Longint ): Longint; stdcall;external WINSOCK2_DLL name 'getsockopt';
function htonl(hostlong: u_long): u_long; stdcall;external WINSOCK2_DLL name 'htonl';
function htons(hostshort: u_short): u_short; stdcall;external WINSOCK2_DLL name 'htons';
function inet_addr(cp: PChar): u_long; stdcall;external WINSOCK2_DLL name 'inet_addr';
function inet_ntoa(inaddr: TInAddr): PChar; stdcall;external WINSOCK2_DLL name 'inet_ntoa';
function ioctlsocket( const s: TSocket; cmd: Longint; var arg: u_long ): Longint; stdcall;external WINSOCK2_DLL name 'ioctlsocket';
function ioctlsocket( const s: TSocket; cmd: Longint; argp: pu_long ): Longint; stdcall;external WINSOCK2_DLL name 'ioctlsocket';
function listen(s: TSocket; backlog: Longint): Longint; stdcall;external WINSOCK2_DLL name 'listen';
function ntohl(netlong: u_long): u_long; stdcall;external WINSOCK2_DLL name 'ntohl';
function ntohs(netshort: u_short): u_short; stdcall;external WINSOCK2_DLL name 'ntohs';
function recv(s: TSocket; var Buf; len, flags: Longint): Longint; stdcall;external WINSOCK2_DLL name 'recv';
function recv(s: TSocket; Buf: PChar; len, flags: Longint): Longint; stdcall;external WINSOCK2_DLL name 'recv';
function recv(s: TSocket; Buf: Pointer; len, flags: Longint): Longint; stdcall;external WINSOCK2_DLL name 'recv';
function recvfrom(s: TSocket; Buf: PChar; len, flags: Longint; from: PSockAddr; fromlen: PLongint): Longint; stdcall;external WINSOCK2_DLL name 'recvfrom';
function recvfrom(s: TSocket; Buf: Pointer; len, flags: Longint; from: PSockAddr; fromlen: PLongint): Longint; stdcall;external WINSOCK2_DLL name 'recvfrom';
function recvfrom(s: TSocket; var Buf; len, flags: Longint; const from: TSockAddr; var fromlen: Longint): Longint; stdcall;external WINSOCK2_DLL name 'recvfrom';
function select(nfds: Longint; readfds, writefds, exceptfds: PFDSet; timeout: PTimeVal): Longint; stdcall;external WINSOCK2_DLL name 'select';
function send(s: TSocket; const Buf; len, flags: Longint): Longint; stdcall;external WINSOCK2_DLL name 'send';
function send(s: TSocket; Buf: PChar; len, flags: Longint): Longint; stdcall;external WINSOCK2_DLL name 'send';
function send(s: TSocket; Buf: Pointer; len, flags: Longint): Longint; stdcall;external WINSOCK2_DLL name 'send';
function sendto(s: TSocket; const Buf; len, flags: Longint; const addrto: TSockAddr; tolen: Longint): Longint; stdcall;external WINSOCK2_DLL name 'sendto';
function sendto(s: TSocket; Buf: PChar; len, flags: Longint; addrto: PSockAddr; tolen: Longint): Longint; stdcall;external WINSOCK2_DLL name 'sendto';
function sendto(s: TSocket; Buf: Pointer; len, flags: Longint; addrto: PSockAddr; tolen: Longint): Longint; stdcall;external WINSOCK2_DLL name 'sendto';
function setsockopt(s: TSocket; level, optname: Longint; const optval; optlen: Longint): Longint; stdcall;external WINSOCK2_DLL name 'setsockopt';
function setsockopt(s: TSocket; level, optname: Longint; optval: PChar; optlen: Longint): Longint; stdcall;external WINSOCK2_DLL name 'setsockopt';
function setsockopt(s: TSocket; level, optname: Longint; optval: Pointer; optlen: Longint): Longint; stdcall;external WINSOCK2_DLL name 'setsockopt';
function shutdown(s: TSocket; how: Longint): Longint; stdcall;external WINSOCK2_DLL name 'shutdown';
function socket(af, struct, protocol: Longint): TSocket; stdcall;external WINSOCK2_DLL name 'socket';
function gethostbyaddr(addr: Pointer; len, struct: Longint): PHostEnt; external WINSOCK2_DLL name 'gethostbyaddr';
function gethostbyname(name: PChar): PHostEnt; external WINSOCK2_DLL name 'gethostbyname';
function gethostname(name: PChar; len: Longint): Longint; external WINSOCK2_DLL name 'gethostname';
function getpeername( const s: TSocket; var name: TSockAddr; var namelen: Longint ): Longint; external WINSOCK2_DLL name 'getpeername';
function getprotobyname(name: PChar): PProtoEnt; external WINSOCK2_DLL name 'getprotobyname';
function getprotobynumber(proto: Longint): PProtoEnt; external WINSOCK2_DLL name 'getprotobynumber';
function getservbyport(port: Longint; proto: PChar): PServEnt; external WINSOCK2_DLL name 'getservbyport';
function getservbyname(name, proto: PChar): PServEnt; external WINSOCK2_DLL name 'getservbyname';
function getsockname( const s: TSocket; var name: TSockAddr; var namelen: Longint ): Longint; external WINSOCK2_DLL name 'getsockname';
function getsockopt( const s: TSocket; const level, optname: Longint; optval: PChar; var optlen: Longint ): Longint; external WINSOCK2_DLL name 'getsockopt';
function getsockopt( const s: TSocket; const level, optname: Longint; optval: Pointer; var optlen: Longint ): Longint; external WINSOCK2_DLL name 'getsockopt';
function getsockopt( const s: TSocket; const level, optname: Longint; var optval; var optlen: Longint ): Longint; external WINSOCK2_DLL name 'getsockopt';
function htonl(hostlong: u_long): u_long; external WINSOCK2_DLL name 'htonl';
function htons(hostshort: u_short): u_short; external WINSOCK2_DLL name 'htons';
function inet_addr(cp: PChar): u_long; external WINSOCK2_DLL name 'inet_addr';
function inet_ntoa(inaddr: TInAddr): PChar; external WINSOCK2_DLL name 'inet_ntoa';
function ioctlsocket( const s: TSocket; cmd: Longint; var arg: u_long ): Longint; external WINSOCK2_DLL name 'ioctlsocket';
function ioctlsocket( const s: TSocket; cmd: Longint; argp: pu_long ): Longint; external WINSOCK2_DLL name 'ioctlsocket';
function listen(s: TSocket; backlog: Longint): Longint; external WINSOCK2_DLL name 'listen';
function ntohl(netlong: u_long): u_long; external WINSOCK2_DLL name 'ntohl';
function ntohs(netshort: u_short): u_short; external WINSOCK2_DLL name 'ntohs';
function recv(s: TSocket; var Buf; len, flags: Longint): Longint; external WINSOCK2_DLL name 'recv';
function recv(s: TSocket; Buf: PChar; len, flags: Longint): Longint; external WINSOCK2_DLL name 'recv';
function recv(s: TSocket; Buf: Pointer; len, flags: Longint): Longint; external WINSOCK2_DLL name 'recv';
function recvfrom(s: TSocket; Buf: PChar; len, flags: Longint; from: PSockAddr; fromlen: PLongint): Longint; external WINSOCK2_DLL name 'recvfrom';
function recvfrom(s: TSocket; Buf: Pointer; len, flags: Longint; from: PSockAddr; fromlen: PLongint): Longint; external WINSOCK2_DLL name 'recvfrom';
function recvfrom(s: TSocket; var Buf; len, flags: Longint; const from: TSockAddr; var fromlen: Longint): Longint; external WINSOCK2_DLL name 'recvfrom';
function select(nfds: Longint; readfds, writefds, exceptfds: PFDSet; timeout: PTimeVal): Longint; external WINSOCK2_DLL name 'select';
function send(s: TSocket; const Buf; len, flags: Longint): Longint; external WINSOCK2_DLL name 'send';
function send(s: TSocket; Buf: PChar; len, flags: Longint): Longint; external WINSOCK2_DLL name 'send';
function send(s: TSocket; Buf: Pointer; len, flags: Longint): Longint; external WINSOCK2_DLL name 'send';
function sendto(s: TSocket; const Buf; len, flags: Longint; const addrto: TSockAddr; tolen: Longint): Longint; external WINSOCK2_DLL name 'sendto';
function sendto(s: TSocket; Buf: PChar; len, flags: Longint; addrto: PSockAddr; tolen: Longint): Longint; external WINSOCK2_DLL name 'sendto';
function sendto(s: TSocket; Buf: Pointer; len, flags: Longint; addrto: PSockAddr; tolen: Longint): Longint; external WINSOCK2_DLL name 'sendto';
function setsockopt(s: TSocket; level, optname: Longint; const optval; optlen: Longint): Longint; external WINSOCK2_DLL name 'setsockopt';
function setsockopt(s: TSocket; level, optname: Longint; optval: PChar; optlen: Longint): Longint; external WINSOCK2_DLL name 'setsockopt';
function setsockopt(s: TSocket; level, optname: Longint; optval: Pointer; optlen: Longint): Longint; external WINSOCK2_DLL name 'setsockopt';
function shutdown(s: TSocket; how: Longint): Longint; external WINSOCK2_DLL name 'shutdown';
function socket(af, struct, protocol: Longint): TSocket; external WINSOCK2_DLL name 'socket';
{ WinSock 2 API new function prototypes }
function WSAAccept( s : TSocket; addr : TSockAddr; addrlen : PLongint; lpfnCondition : LPCONDITIONPROC; dwCallbackData : DWORD ): TSocket; stdcall; external WINSOCK2_DLL name 'WSAAccept';
function WSAAccept( s : TSocket; addr : TSockAddr; addrlen : PLongint; lpfnCondition : LPCONDITIONPROC; dwCallbackData : DWORD ): TSocket; external WINSOCK2_DLL name 'WSAAccept';
function WSAAddressToStringW( var lpsaAddress : TSockAddr; const dwAddressLength : DWORD; const lpProtocolInfo : LPWSAProtocol_InfoW;
const lpszAddressString : PWideChar; var lpdwAddressStringLength : DWORD ): Longint; stdcall; external WINSOCK2_DLL name 'WSAAddressToStringW';
function WSAAsyncGetHostByName(HWindow: HWND; wMsg: u_int; name, buf: PChar; buflen: Longint): THandle; stdcall; external WINSOCK2_DLL name 'WSAAsyncGetHostByName';
function WSAAsyncSelect(s: TSocket; HWindow: HWND; wMsg: u_int; lEvent: Longint): Longint; stdcall; external WINSOCK2_DLL name 'WSAAsyncSelect';
function WSACancelAsyncRequest(hAsyncTaskHandle: THandle): Longint; stdcall; external WINSOCK2_DLL name 'WSACancelAsyncRequest';
function WSACleanup: Longint; stdcall; external WINSOCK2_DLL name 'WSACleanup';
function WSACloseEvent( hEvent : WSAEVENT) : WordBool; stdcall; external WINSOCK2_DLL name 'WSACloseEvent';
function WSAConnect( s : TSocket; const name : PSockAddr; namelen : Longint; lpCallerData,lpCalleeData : LPWSABUF; lpSQOS,lpGQOS : LPQOS ) : Longint; stdcall; external WINSOCK2_DLL name 'WSAConnect';
function WSACreateEvent : WSAEVENT; stdcall; external WINSOCK2_DLL name 'WSACreateEvent';
function WSAEnumNameSpaceProvidersW( var lpdwBufferLength: DWORD; const lpnspBuffer: LPWSANameSpace_InfoW ): Longint; stdcall; external WINSOCK2_DLL name 'WSAEnumNameSpaceProvidersW';
function WSAEnumNetworkEvents( const s : TSocket; const hEventObject : WSAEVENT; lpNetworkEvents : LPWSANETWORKEVENTS ) :Longint; stdcall; external WINSOCK2_DLL name 'WSAEnumNetworkEvents';
function WSAEnumProtocolsW( lpiProtocols : PLongint; lpProtocolBuffer : LPWSAProtocol_InfoW; var lpdwBufferLength : DWORD ) : Longint; stdcall; external WINSOCK2_DLL name 'WSAEnumProtocolsW';
function WSAEventSelect( s : TSocket; hEventObject : WSAEVENT; lNetworkEvents : LongInt ): Longint; stdcall; external WINSOCK2_DLL name 'WSAEventSelect';
function WSAGetLastError: Longint; stdcall; external WINSOCK2_DLL name 'WSAGetLastError';
function WSAGetOverlappedResult( s : TSocket; lpOverlapped : LPWSAOVERLAPPED; lpcbTransfer : LPDWORD; fWait : BOOL; var lpdwFlags : DWORD ) : WordBool; stdcall; external WINSOCK2_DLL name 'WSAGetOverlappedResult';
function WSAhtonl( s : TSocket; hostlong : u_long; var lpnetlong : DWORD ): Longint; stdcall; external WINSOCK2_DLL name 'WSAhtonl';
function WSAhtons( s : TSocket; hostshort : u_short; var lpnetshort : WORD ): Longint; stdcall; external WINSOCK2_DLL name 'WSAhtons';
const lpszAddressString : PWideChar; var lpdwAddressStringLength : DWORD ): Longint; external WINSOCK2_DLL name 'WSAAddressToStringW';
function WSAAsyncGetHostByName(HWindow: HWND; wMsg: u_int; name, buf: PChar; buflen: Longint): THandle; external WINSOCK2_DLL name 'WSAAsyncGetHostByName';
function WSAAsyncSelect(s: TSocket; HWindow: HWND; wMsg: u_int; lEvent: Longint): Longint; external WINSOCK2_DLL name 'WSAAsyncSelect';
function WSACancelAsyncRequest(hAsyncTaskHandle: THandle): Longint; external WINSOCK2_DLL name 'WSACancelAsyncRequest';
function WSACleanup: Longint; external WINSOCK2_DLL name 'WSACleanup';
function WSACloseEvent( hEvent : WSAEVENT) : WordBool; external WINSOCK2_DLL name 'WSACloseEvent';
function WSAConnect( s : TSocket; const name : PSockAddr; namelen : Longint; lpCallerData,lpCalleeData : LPWSABUF; lpSQOS,lpGQOS : LPQOS ) : Longint; external WINSOCK2_DLL name 'WSAConnect';
function WSACreateEvent : WSAEVENT; external WINSOCK2_DLL name 'WSACreateEvent';
function WSAEnumNameSpaceProvidersW( var lpdwBufferLength: DWORD; const lpnspBuffer: LPWSANameSpace_InfoW ): Longint; external WINSOCK2_DLL name 'WSAEnumNameSpaceProvidersW';
function WSAEnumNetworkEvents( const s : TSocket; const hEventObject : WSAEVENT; lpNetworkEvents : LPWSANETWORKEVENTS ) :Longint; external WINSOCK2_DLL name 'WSAEnumNetworkEvents';
function WSAEnumProtocolsW( lpiProtocols : PLongint; lpProtocolBuffer : LPWSAProtocol_InfoW; var lpdwBufferLength : DWORD ) : Longint; external WINSOCK2_DLL name 'WSAEnumProtocolsW';
function WSAEventSelect( s : TSocket; hEventObject : WSAEVENT; lNetworkEvents : LongInt ): Longint; external WINSOCK2_DLL name 'WSAEventSelect';
function WSAGetLastError: Longint; external WINSOCK2_DLL name 'WSAGetLastError';
function WSAGetOverlappedResult( s : TSocket; lpOverlapped : LPWSAOVERLAPPED; lpcbTransfer : LPDWORD; fWait : BOOL; var lpdwFlags : DWORD ) : WordBool; external WINSOCK2_DLL name 'WSAGetOverlappedResult';
function WSAhtonl( s : TSocket; hostlong : u_long; var lpnetlong : DWORD ): Longint; external WINSOCK2_DLL name 'WSAhtonl';
function WSAhtons( s : TSocket; hostshort : u_short; var lpnetshort : WORD ): Longint; external WINSOCK2_DLL name 'WSAhtons';
function WSAIoctl( s : TSocket; dwIoControlCode : DWORD; lpvInBuffer : Pointer; cbInBuffer : DWORD; lpvOutBuffer : Pointer; cbOutBuffer : DWORD;
lpcbBytesReturned : LPDWORD; lpOverlapped : LPWSAOVERLAPPED; lpCompletionRoutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE ) : Longint; stdcall; external WINSOCK2_DLL name 'WSAIoctl';
lpcbBytesReturned : LPDWORD; lpOverlapped : LPWSAOVERLAPPED; lpCompletionRoutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE ) : Longint; external WINSOCK2_DLL name 'WSAIoctl';
function WSAJoinLeaf( s : TSocket; name : PSockAddr; namelen : Longint; lpCallerData,lpCalleeData : LPWSABUF;
lpSQOS,lpGQOS : LPQOS; dwFlags : DWORD ) : TSocket; stdcall; external WINSOCK2_DLL name 'WSAJoinLeaf';
function WSALookupServiceBeginW( const lpqsRestrictions : LPWSAQuerySetW; const dwControlFlags : DWORD; lphLookup : PHANDLE ): Longint; stdcall; external WINSOCK2_DLL name 'WSALookupServiceBeginW';
function WSALookupServiceEnd( const hLookup : THandle ): Longint; stdcall; external WINSOCK2_DLL name 'WSALookupServiceEnd';
function WSALookupServiceNextW( const hLookup : THandle; const dwControlFlags : DWORD; var lpdwBufferLength : DWORD; lpqsResults : LPWSAQuerySetW ): Longint; stdcall; external WINSOCK2_DLL name 'WSALookupServiceNextW';
function WSANtohl( s : TSocket; netlong : u_long; var lphostlong : DWORD ): Longint; stdcall; external WINSOCK2_DLL name 'WSANtohl';
function WSANtohs( s : TSocket; netshort : u_short; var lphostshort : WORD ): Longint; stdcall; external WINSOCK2_DLL name 'WSANtohs';
lpSQOS,lpGQOS : LPQOS; dwFlags : DWORD ) : TSocket; external WINSOCK2_DLL name 'WSAJoinLeaf';
function WSALookupServiceBeginW( const lpqsRestrictions : LPWSAQuerySetW; const dwControlFlags : DWORD; lphLookup : PHANDLE ): Longint; external WINSOCK2_DLL name 'WSALookupServiceBeginW';
function WSALookupServiceEnd( const hLookup : THandle ): Longint; external WINSOCK2_DLL name 'WSALookupServiceEnd';
function WSALookupServiceNextW( const hLookup : THandle; const dwControlFlags : DWORD; var lpdwBufferLength : DWORD; lpqsResults : LPWSAQuerySetW ): Longint; external WINSOCK2_DLL name 'WSALookupServiceNextW';
function WSANtohl( s : TSocket; netlong : u_long; var lphostlong : DWORD ): Longint; external WINSOCK2_DLL name 'WSANtohl';
function WSANtohs( s : TSocket; netshort : u_short; var lphostshort : WORD ): Longint; external WINSOCK2_DLL name 'WSANtohs';
function WSARecv( s : TSocket; lpBuffers : LPWSABUF; dwBufferCount : DWORD; var lpNumberOfBytesRecvd : DWORD; var lpFlags : DWORD;
lpOverlapped : LPWSAOVERLAPPED; lpCompletionRoutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE ): Longint; stdcall; external WINSOCK2_DLL name 'WSARecv';
lpOverlapped : LPWSAOVERLAPPED; lpCompletionRoutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE ): Longint; external WINSOCK2_DLL name 'WSARecv';
function WSARecvFrom( s : TSocket; lpBuffers : LPWSABUF; dwBufferCount : DWORD; var lpNumberOfBytesRecvd : DWORD; var lpFlags : DWORD;
lpFrom : PSockAddr; lpFromlen : PLongint; lpOverlapped : LPWSAOVERLAPPED; lpCompletionRoutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE ): Longint; stdcall; external WINSOCK2_DLL name 'WSARecvFrom';
function WSAResetEvent( hEvent : WSAEVENT ): WordBool; stdcall; external WINSOCK2_DLL name 'WSAResetEvent';
lpFrom : PSockAddr; lpFromlen : PLongint; lpOverlapped : LPWSAOVERLAPPED; lpCompletionRoutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE ): Longint; external WINSOCK2_DLL name 'WSARecvFrom';
function WSAResetEvent( hEvent : WSAEVENT ): WordBool; external WINSOCK2_DLL name 'WSAResetEvent';
function WSASend( s : TSocket; lpBuffers : LPWSABUF; dwBufferCount : DWORD; var lpNumberOfBytesSent : DWORD; dwFlags : DWORD;
lpOverlapped : LPWSAOVERLAPPED; lpCompletionRoutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE ): Longint; stdcall; external WINSOCK2_DLL name 'WSASend';
lpOverlapped : LPWSAOVERLAPPED; lpCompletionRoutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE ): Longint; external WINSOCK2_DLL name 'WSASend';
function WSASendTo( s : TSocket; lpBuffers : LPWSABUF; dwBufferCount : DWORD; var lpNumberOfBytesSent : DWORD; dwFlags : DWORD;
lpTo : PSockAddr; iTolen : Longint; lpOverlapped : LPWSAOVERLAPPED; lpCompletionRoutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE ): Longint; stdcall; external WINSOCK2_DLL name 'WSASendTo';
function WSASetEvent( hEvent : WSAEVENT ): WordBool; stdcall; external WINSOCK2_DLL name 'WSASetEvent';
procedure WSASetLastError(iError: Longint); stdcall; external WINSOCK2_DLL name 'WSASetLastError';
lpTo : PSockAddr; iTolen : Longint; lpOverlapped : LPWSAOVERLAPPED; lpCompletionRoutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE ): Longint; external WINSOCK2_DLL name 'WSASendTo';
function WSASetEvent( hEvent : WSAEVENT ): WordBool; external WINSOCK2_DLL name 'WSASetEvent';
procedure WSASetLastError(iError: Longint); external WINSOCK2_DLL name 'WSASetLastError';
function WSASetServiceW( const lpqsRegInfo: LPWSAQuerySetW; const essoperation: TWSAeSetServiceOp;
const dwControlFlags: DWORD ): Longint; stdcall; external WINSOCK2_DLL name 'WSASetServiceW';
function WSASocketW( af, iType, protocol : Longint; lpProtocolInfo : LPWSAProtocol_InfoW; g : GROUP; dwFlags : DWORD ): TSocket; stdcall; external WINSOCK2_DLL name 'WSASocketW';
function WSAStartup(wVersionRequired: word; var WSData: TWSAData): Longint; stdcall; external WINSOCK2_DLL name 'WSAStartup';
const dwControlFlags: DWORD ): Longint; external WINSOCK2_DLL name 'WSASetServiceW';
function WSASocketW( af, iType, protocol : Longint; lpProtocolInfo : LPWSAProtocol_InfoW; g : GROUP; dwFlags : DWORD ): TSocket; external WINSOCK2_DLL name 'WSASocketW';
function WSAStartup(wVersionRequired: word; var WSData: TWSAData): Longint; external WINSOCK2_DLL name 'WSAStartup';
function WSAStringToAddressW( const AddressString : PWideChar; const AddressFamily: Longint; const lpProtocolInfo : LPWSAProtocol_InfoA;
var lpAddress : TSockAddr; var lpAddressLength : Longint ): Longint; stdcall; external WINSOCK2_DLL name 'WSAStringToAddressW';
var lpAddress : TSockAddr; var lpAddressLength : Longint ): Longint; external WINSOCK2_DLL name 'WSAStringToAddressW';
function WSAWaitForMultipleEvents( cEvents : DWORD; lphEvents : PWSAEVENT; fWaitAll : LongBool;
dwTimeout : DWORD; fAlertable : LongBool ): DWORD; stdcall; external WINSOCK2_DLL name 'WSAWaitForMultipleEvents';
function __WSAFDIsSet(s: TSOcket; var FDSet: TFDSet): Bool; stdcall; external WINSOCK2_DLL name '__WSAFDIsSet';
dwTimeout : DWORD; fAlertable : LongBool ): DWORD; external WINSOCK2_DLL name 'WSAWaitForMultipleEvents';
function __WSAFDIsSet(s: TSOcket; var FDSet: TFDSet): Bool; external WINSOCK2_DLL name '__WSAFDIsSet';
{ Macros }
@ -1210,62 +1212,62 @@ procedure FD_ZERO(var FDSet: TFDSet);
{$IFNDEF WINCE}
//begin win only
function WSAIsBlocking: BOOL; stdcall; external WINSOCK2_DLL name 'WSAIsBlocking';
function WSAUnhookBlockingHook: Longint; stdcall; external WINSOCK2_DLL name 'WSAUnhookBlockingHook';
function WSASetBlockingHook(lpBlockFunc: TFarProc): TFarProc; stdcall; external WINSOCK2_DLL name 'WSASetBlockingHook';
function WSACancelBlockingCall: Longint; stdcall; external WINSOCK2_DLL name 'WSACancelBlockingCall';
function WSAAsyncGetServByName(HWindow: HWND; wMsg: u_int; name, proto, buf: PChar; buflen: Longint): THandle; stdcall; external WINSOCK2_DLL name 'WSAAsyncGetServByName';
function WSAAsyncGetServByPort( HWindow: HWND; wMsg, port: u_int; proto, buf: PChar; buflen: Longint): THandle; stdcall; external WINSOCK2_DLL name 'WSAAsyncGetServByPort';
function WSAAsyncGetProtoByName(HWindow: HWND; wMsg: u_int; name, buf: PChar; buflen: Longint): THandle; stdcall; external WINSOCK2_DLL name 'WSAAsyncGetProtoByName';
function WSAAsyncGetProtoByNumber(HWindow: HWND; wMsg: u_int; number: Longint; buf: PChar; buflen: Longint): THandle; stdcall; external WINSOCK2_DLL name 'WSAAsyncGetProtoByNumber';
function WSAAsyncGetHostByAddr(HWindow: HWND; wMsg: u_int; addr: PChar; len, struct: Longint; buf: PChar; buflen: Longint): THandle; stdcall; external WINSOCK2_DLL name 'WSAAsyncGetHostByAddr';
function WSAIsBlocking: BOOL; external WINSOCK2_DLL name 'WSAIsBlocking';
function WSAUnhookBlockingHook: Longint; external WINSOCK2_DLL name 'WSAUnhookBlockingHook';
function WSASetBlockingHook(lpBlockFunc: TFarProc): TFarProc; external WINSOCK2_DLL name 'WSASetBlockingHook';
function WSACancelBlockingCall: Longint; external WINSOCK2_DLL name 'WSACancelBlockingCall';
function WSAAsyncGetServByName(HWindow: HWND; wMsg: u_int; name, proto, buf: PChar; buflen: Longint): THandle; external WINSOCK2_DLL name 'WSAAsyncGetServByName';
function WSAAsyncGetServByPort( HWindow: HWND; wMsg, port: u_int; proto, buf: PChar; buflen: Longint): THandle; external WINSOCK2_DLL name 'WSAAsyncGetServByPort';
function WSAAsyncGetProtoByName(HWindow: HWND; wMsg: u_int; name, buf: PChar; buflen: Longint): THandle; external WINSOCK2_DLL name 'WSAAsyncGetProtoByName';
function WSAAsyncGetProtoByNumber(HWindow: HWND; wMsg: u_int; number: Longint; buf: PChar; buflen: Longint): THandle; external WINSOCK2_DLL name 'WSAAsyncGetProtoByNumber';
function WSAAsyncGetHostByAddr(HWindow: HWND; wMsg: u_int; addr: PChar; len, struct: Longint; buf: PChar; buflen: Longint): THandle; external WINSOCK2_DLL name 'WSAAsyncGetHostByAddr';
function WSADuplicateSocketA( s : TSocket; dwProcessId : DWORD; lpProtocolInfo : LPWSAProtocol_InfoA ) : Longint; stdcall; external WINSOCK2_DLL name 'WSADuplicateSocketA';
function WSADuplicateSocketW( s : TSocket; dwProcessId : DWORD; lpProtocolInfo : LPWSAProtocol_InfoW ) : Longint; stdcall; external WINSOCK2_DLL name 'WSADuplicateSocketW';
function WSADuplicateSocket( s : TSocket; dwProcessId : DWORD; lpProtocolInfo : LPWSAProtocol_Info ) : Longint; stdcall; external WINSOCK2_DLL name 'WSADuplicateSocket';
function WSAEnumProtocolsA( lpiProtocols : PLongint; lpProtocolBuffer : LPWSAProtocol_InfoA; var lpdwBufferLength : DWORD ) : Longint; stdcall; external WINSOCK2_DLL name 'WSAEnumProtocolsA';
function WSAEnumProtocols( lpiProtocols : PLongint; lpProtocolBuffer : LPWSAProtocol_Info; var lpdwBufferLength : DWORD ) : Longint; stdcall; external WINSOCK2_DLL name 'WSAEnumProtocols';
function WSAGetQosByName( s : TSocket; lpQOSName : LPWSABUF; lpQOS : LPQOS ): WordBool; stdcall; external WINSOCK2_DLL name 'WSAGetQosByName';
function WSARecvDisconnect( s : TSocket; lpInboundDisconnectData : LPWSABUF ): Longint; stdcall; external WINSOCK2_DLL name 'WSARecvDisconnect';
function WSASendDisconnect( s : TSocket; lpOutboundDisconnectData : LPWSABUF ): Longint; stdcall; external WINSOCK2_DLL name 'WSASendDisconnect';
function WSASocketA( af, iType, protocol : Longint; lpProtocolInfo : LPWSAProtocol_InfoA; g : GROUP; dwFlags : DWORD ): TSocket; stdcall; external WINSOCK2_DLL name 'WSASocketA';
function WSASocket( af, iType, protocol : Longint; lpProtocolInfo : LPWSAProtocol_Info; g : GROUP; dwFlags : DWORD ): TSocket; stdcall; external WINSOCK2_DLL name 'WSASocket';
function WSADuplicateSocketA( s : TSocket; dwProcessId : DWORD; lpProtocolInfo : LPWSAProtocol_InfoA ) : Longint; external WINSOCK2_DLL name 'WSADuplicateSocketA';
function WSADuplicateSocketW( s : TSocket; dwProcessId : DWORD; lpProtocolInfo : LPWSAProtocol_InfoW ) : Longint; external WINSOCK2_DLL name 'WSADuplicateSocketW';
function WSADuplicateSocket( s : TSocket; dwProcessId : DWORD; lpProtocolInfo : LPWSAProtocol_Info ) : Longint; external WINSOCK2_DLL name 'WSADuplicateSocket';
function WSAEnumProtocolsA( lpiProtocols : PLongint; lpProtocolBuffer : LPWSAProtocol_InfoA; var lpdwBufferLength : DWORD ) : Longint; external WINSOCK2_DLL name 'WSAEnumProtocolsA';
function WSAEnumProtocols( lpiProtocols : PLongint; lpProtocolBuffer : LPWSAProtocol_Info; var lpdwBufferLength : DWORD ) : Longint; external WINSOCK2_DLL name 'WSAEnumProtocols';
function WSAGetQosByName( s : TSocket; lpQOSName : LPWSABUF; lpQOS : LPQOS ): WordBool; external WINSOCK2_DLL name 'WSAGetQosByName';
function WSARecvDisconnect( s : TSocket; lpInboundDisconnectData : LPWSABUF ): Longint; external WINSOCK2_DLL name 'WSARecvDisconnect';
function WSASendDisconnect( s : TSocket; lpOutboundDisconnectData : LPWSABUF ): Longint; external WINSOCK2_DLL name 'WSASendDisconnect';
function WSASocketA( af, iType, protocol : Longint; lpProtocolInfo : LPWSAProtocol_InfoA; g : GROUP; dwFlags : DWORD ): TSocket; external WINSOCK2_DLL name 'WSASocketA';
function WSASocket( af, iType, protocol : Longint; lpProtocolInfo : LPWSAProtocol_Info; g : GROUP; dwFlags : DWORD ): TSocket; external WINSOCK2_DLL name 'WSASocket';
function WSAAddressToStringA( var lpsaAddress : TSockAddr; const dwAddressLength : DWORD; const lpProtocolInfo : LPWSAProtocol_InfoA;
const lpszAddressString : PChar; var lpdwAddressStringLength : DWORD ): Longint; stdcall; external WINSOCK2_DLL name 'WSAAddressToStringA';
const lpszAddressString : PChar; var lpdwAddressStringLength : DWORD ): Longint; external WINSOCK2_DLL name 'WSAAddressToStringA';
function WSAAddressToString( var lpsaAddress : TSockAddr; const dwAddressLength : DWORD; const lpProtocolInfo : LPWSAProtocol_Info;
const lpszAddressString : PMBChar; var lpdwAddressStringLength : DWORD ): Longint; stdcall; external WINSOCK2_DLL name 'WSAAddressToString';
const lpszAddressString : PMBChar; var lpdwAddressStringLength : DWORD ): Longint; external WINSOCK2_DLL name 'WSAAddressToString';
function WSAStringToAddressA( const AddressString : PChar; const AddressFamily: Longint; const lpProtocolInfo : LPWSAProtocol_InfoA;
var lpAddress : TSockAddr; var lpAddressLength : Longint ): Longint; stdcall; external WINSOCK2_DLL name 'WSAStringToAddressA';
var lpAddress : TSockAddr; var lpAddressLength : Longint ): Longint; external WINSOCK2_DLL name 'WSAStringToAddressA';
function WSAStringToAddress( const AddressString : PMBChar; const AddressFamily: Longint; const lpProtocolInfo : LPWSAProtocol_Info;
var lpAddress : TSockAddr; var lpAddressLength : Longint ): Longint; stdcall; external WINSOCK2_DLL name 'WSAStringToAddress';
var lpAddress : TSockAddr; var lpAddressLength : Longint ): Longint; external WINSOCK2_DLL name 'WSAStringToAddress';
{ Registration and Name Resolution API functions }
function WSALookupServiceBeginA( const lpqsRestrictions : LPWSAQuerySetA; const dwControlFlags : DWORD; lphLookup : PHANDLE ): Longint; stdcall; external WINSOCK2_DLL name 'WSALookupServiceBeginA';
function WSALookupServiceBegin( const lpqsRestrictions : LPWSAQuerySet; const dwControlFlags : DWORD; lphLookup : PHANDLE ): Longint; stdcall; external WINSOCK2_DLL name 'WSALookupServiceBegin';
function WSALookupServiceNextA( const hLookup : THandle; const dwControlFlags : DWORD; var lpdwBufferLength : DWORD; lpqsResults : LPWSAQuerySetA ): Longint; stdcall; external WINSOCK2_DLL name 'WSALookupServiceNextA';
function WSALookupServiceNext( const hLookup : THandle; const dwControlFlags : DWORD; var lpdwBufferLength : DWORD; lpqsResults : LPWSAQuerySet ): Longint; stdcall; external WINSOCK2_DLL name 'WSALookupServiceNext';
function WSAInstallServiceClassA( const lpServiceClassInfo : LPWSAServiceClassInfoA ) : Longint; stdcall; external WINSOCK2_DLL name 'WSAInstallServiceClassA';
function WSAInstallServiceClassW( const lpServiceClassInfo : LPWSAServiceClassInfoW ) : Longint; stdcall; external WINSOCK2_DLL name 'WSAInstallServiceClassW';
function WSAInstallServiceClass( const lpServiceClassInfo : LPWSAServiceClassInfo ) : Longint; stdcall; external WINSOCK2_DLL name 'WSAInstallServiceClass';
function WSARemoveServiceClass( const lpServiceClassId : PGUID ) : Longint; stdcall; external WINSOCK2_DLL name 'WSARemoveServiceClass';
function WSALookupServiceBeginA( const lpqsRestrictions : LPWSAQuerySetA; const dwControlFlags : DWORD; lphLookup : PHANDLE ): Longint; external WINSOCK2_DLL name 'WSALookupServiceBeginA';
function WSALookupServiceBegin( const lpqsRestrictions : LPWSAQuerySet; const dwControlFlags : DWORD; lphLookup : PHANDLE ): Longint; external WINSOCK2_DLL name 'WSALookupServiceBegin';
function WSALookupServiceNextA( const hLookup : THandle; const dwControlFlags : DWORD; var lpdwBufferLength : DWORD; lpqsResults : LPWSAQuerySetA ): Longint; external WINSOCK2_DLL name 'WSALookupServiceNextA';
function WSALookupServiceNext( const hLookup : THandle; const dwControlFlags : DWORD; var lpdwBufferLength : DWORD; lpqsResults : LPWSAQuerySet ): Longint; external WINSOCK2_DLL name 'WSALookupServiceNext';
function WSAInstallServiceClassA( const lpServiceClassInfo : LPWSAServiceClassInfoA ) : Longint; external WINSOCK2_DLL name 'WSAInstallServiceClassA';
function WSAInstallServiceClassW( const lpServiceClassInfo : LPWSAServiceClassInfoW ) : Longint; external WINSOCK2_DLL name 'WSAInstallServiceClassW';
function WSAInstallServiceClass( const lpServiceClassInfo : LPWSAServiceClassInfo ) : Longint; external WINSOCK2_DLL name 'WSAInstallServiceClass';
function WSARemoveServiceClass( const lpServiceClassId : PGUID ) : Longint; external WINSOCK2_DLL name 'WSARemoveServiceClass';
function WSAGetServiceClassInfoA( const lpProviderId : PGUID; const lpServiceClassId : PGUID; var lpdwBufSize : DWORD;
lpServiceClassInfo : LPWSAServiceClassInfoA ): Longint; stdcall; external WINSOCK2_DLL name 'WSAGetServiceClassInfoA';
lpServiceClassInfo : LPWSAServiceClassInfoA ): Longint; external WINSOCK2_DLL name 'WSAGetServiceClassInfoA';
function WSAGetServiceClassInfoW( const lpProviderId : PGUID; const lpServiceClassId : PGUID; var lpdwBufSize : DWORD;
lpServiceClassInfo : LPWSAServiceClassInfoW ): Longint; stdcall; external WINSOCK2_DLL name 'WSAGetServiceClassInfoW';
lpServiceClassInfo : LPWSAServiceClassInfoW ): Longint; external WINSOCK2_DLL name 'WSAGetServiceClassInfoW';
function WSAGetServiceClassInfo( const lpProviderId : PGUID; const lpServiceClassId : PGUID; var lpdwBufSize : DWORD;
lpServiceClassInfo : LPWSAServiceClassInfo ): Longint; stdcall; external WINSOCK2_DLL name 'WSAGetServiceClassInfo';
function WSAEnumNameSpaceProvidersA( var lpdwBufferLength: DWORD; const lpnspBuffer: LPWSANameSpace_InfoA ): Longint; stdcall; external WINSOCK2_DLL name 'WSAEnumNameSpaceProvidersA';
function WSAEnumNameSpaceProviders( var lpdwBufferLength: DWORD; const lpnspBuffer: LPWSANameSpace_Info ): Longint; stdcall; external WINSOCK2_DLL name 'WSAEnumNameSpaceProviders';
lpServiceClassInfo : LPWSAServiceClassInfo ): Longint; external WINSOCK2_DLL name 'WSAGetServiceClassInfo';
function WSAEnumNameSpaceProvidersA( var lpdwBufferLength: DWORD; const lpnspBuffer: LPWSANameSpace_InfoA ): Longint; external WINSOCK2_DLL name 'WSAEnumNameSpaceProvidersA';
function WSAEnumNameSpaceProviders( var lpdwBufferLength: DWORD; const lpnspBuffer: LPWSANameSpace_Info ): Longint; external WINSOCK2_DLL name 'WSAEnumNameSpaceProviders';
function WSAGetServiceClassNameByClassIdA( const lpServiceClassId: PGUID; lpszServiceClassName: PChar;
var lpdwBufferLength: DWORD ): Longint; stdcall; external WINSOCK2_DLL name 'WSAGetServiceClassNameByClassIdA';
var lpdwBufferLength: DWORD ): Longint; external WINSOCK2_DLL name 'WSAGetServiceClassNameByClassIdA';
function WSAGetServiceClassNameByClassIdW( const lpServiceClassId: PGUID; lpszServiceClassName: PWideChar;
var lpdwBufferLength: DWORD ): Longint; stdcall; external WINSOCK2_DLL name 'WSAGetServiceClassNameByClassIdW';
var lpdwBufferLength: DWORD ): Longint; external WINSOCK2_DLL name 'WSAGetServiceClassNameByClassIdW';
function WSAGetServiceClassNameByClassId( const lpServiceClassId: PGUID; lpszServiceClassName: PMBChar;
var lpdwBufferLength: DWORD ): Longint; stdcall; external WINSOCK2_DLL name 'WSAGetServiceClassNameByClassId';
var lpdwBufferLength: DWORD ): Longint; external WINSOCK2_DLL name 'WSAGetServiceClassNameByClassId';
function WSASetServiceA( const lpqsRegInfo: LPWSAQuerySetA; const essoperation: TWSAeSetServiceOp;
const dwControlFlags: DWORD ): Longint; stdcall; external WINSOCK2_DLL name 'WSASetServiceA';
const dwControlFlags: DWORD ): Longint; external WINSOCK2_DLL name 'WSASetServiceA';
function WSASetService( const lpqsRegInfo: LPWSAQuerySet; const essoperation: TWSAeSetServiceOp;
const dwControlFlags: DWORD ): Longint; stdcall; external WINSOCK2_DLL name 'WSASetService';
const dwControlFlags: DWORD ): Longint; external WINSOCK2_DLL name 'WSASetService';
//end win only
{$endif not WINCE}