*****************************************************} { } { Windows Sockets API v. 2.20 Header File } { } { Prerelease 16.09.96 } { } { Base: WinSock2.h from Winsock SDK 1.6 BETA } { Delphi 2 RTL Windows32 API Interface } { } { (c) 1996 by Artur Grajek 'AHS' } { email: c51725ag@juggernaut.eti.pg.gda.pl } {*******************************************************} { } { } { List of Modifications : } { Removed WS2's type definition of TGUID, and now use } { the TGUID type as defined in the D3's COMOBJ unit } { Modified by JCP 271197 } { } { } { } {
accept - AHS END } { Socket function prototypes
bind -
closesocket -
connect -
gethostbyaddr -
gethostbyname -
gethostname -
getpeername -
getprotobyname -
getprotobynumber -
getservbyname -
getservbyport -
getsockname -
getsockopt -
htonl -
htons -
inet_addr -
inet_ntoa - PInAddr;} { TInAddr
ioctlsocket -
listen -
ntohl -
ntohs -
recv -
recvfrom -
select -
send -
sendto -
setsockopt -
shutdown -
socket -
TransmitFile -
WSAAccept - WinSock 2 API new function prototypes
WSAAddressToString -
WSAAsyncGetHostByAddr -
WSAAsyncGetHostByName -
WSAAsyncGetProtoByName -
WSAAsyncGetProtoByNumber -
WSAAsyncGetServByName -
WSAAsyncGetServByPort -
WSAAsyncSelect -
WSACancelAsyncRequest -
WSACancelBlockingCall -
WSACleanup -
WSACloseEvent -
WSAConnect -
WSACreateEvent -
WSADuplicateSocket -
WSAEnumNameSpaceProviders - UNICODE
WSAEnumNetworkEvents - UNICODE
WSAEnumProtocols -
WSAEventSelect - UNICODE
WSAGetAsyncBuflen -
WSAGetAsyncError -
WSAGetLastError -
WSAGetOverlappedResult -
WSAGetQOSByName -
WSAGetSelectError -
WSAGetSelectEvent -
WSAGetServiceClassInfo -
WSAGetServiceClassNameByClassId - UNICODE
WSAHtonl -
WSAHtons -
WSAInstallServiceClass -
WSAIoctl -
WSAIsBlocking -
WSAJoinLeaf -
WSALookupServiceBegin - UNICODE} { Registration and Name Resolution API functions
WSALookupServiceEnd - UNICODE
UNICODE
WSALookupServiceNext - UNICODE
WSAMakeASyncReply -
WSAMakeSelectReply -
WSANtohl -
WSANtohs -
WSARecv -
WSARecvDisconnect -
WSARecvEx - UNICODE
WSARecvFrom -
WSARemoveServiceClass - UNICODE
WSAResetEvent -
WSASend -
WSASendDisconnect -
WSASendTo -
WSASetBlockingHook -
WSASetEvent -
WSASetLastError -
WSASetService - UNICODE
WSASocket -
WSAStartup -
WSAStringToAddress - UNICODE
WSAUnhookBlockingHook -
WSAWaitForMultipleEvents - UNICODE
GUARANTEE
LPHANDLE
LPSOCKADDR
LPWSAEVENT
LPWSAOVERLAPPED
PAFPROTOCOLS
PBLOB
PCONDITIONPROC
PCSADDR_INFO
PFDSet
PFlowspec
PGroup
PHostEnt
PInAddr
PLinger
PNetEnt
PProtoEnt
PQOS
PServEnt
PSockAddr
PSockAddrIn
PSOCKET_ADDRESS
PSockProto
PTimeVal
PTransmitFileBuffers
pu_long
pu_short
PWSABUF
PWSAData
PWSAEcomparator
PWSAESETSERVICEOP
PWSANAMESPACE_INFO
PWSANAMESPACE_INFOA
PWSANAMESPACE_INFOW
PWSANETWORKEVENTS
PWSANSCLASSINFO
PWSANSClassInfoA
PWSANSClassInfoW
PWSAOVERLAPPED_COMPLETION_ROUTINE
PWSAPROTOCOLCHAIN
PWSAPROTOCOL_INFO
PWSAPROTOCOL_INFOA
PWSAPROTOCOL_INFOW
PWSAQUERYSET
PWSAQuerySetA
PWSAQuerySetW
PWSASERVICECLASSINFO
PWSAServiceClassInfoA
PWSAServiceClassInfoW
PWSAVersion
SOCKADDR
SunB
SunW
TAFPROTOCOLS
TBLOB
TCSADDR_INFO
TFDSet
TFlowspec
TGroup
THostEnt
TInAddr
TLinger
TNetEnt
TProtoEnt
TQualityOfService
TServEnt
TSockAddr
TSockAddrIn
TSocket
TSOCKET_ADDRESS
TSockProto
TTimeVal
TTransmitFileBuffers
TWSABUF
TWSAData
TWSAEcomparator
TWSAESETSERVICEOP
TWSANAMESPACE_INFO
TWSANAMESPACE_INFOA
TWSANAMESPACE_INFOW
TWSANETWORKEVENTS
TWSANSCLASSINFO
TWSANSClassInfoA
TWSANSClassInfoW
TWSAPROTOCOLCHAIN
TWSAPROTOCOL_INFO
TWSAPROTOCOL_INFOA
TWSAPROTOCOL_INFOW
TWSAQuerySetA
TWSAQuerySetW
TWSASERVICECLASSINFO
TWSAServiceClassInfoA
TWSAServiceClassInfoW
TWSAVersion
u_char
u_int
u_long
u_short
WSAEVENT
WSAOVERLAPPED
WSAQUERYSET
ADDR_ANY
AF_APPLETALK
AF_ATM
AF_BAN
AF_CCITT
AF_CHAOS
AF_DATAKIT
AF_DECnet
AF_DLI
AF_ECMA
AF_FIREFOX
AF_HYLINK
AF_IMPLINK
AF_INET
AF_INET6
AF_IPX
AF_ISO
AF_LAT
AF_MAX
AF_NETBIOS
AF_NS
AF_OSI
AF_PUP
AF_SNA
AF_UNIX
AF_UNKNOWN1
AF_UNSPEC
AF_VOICEVIEW
BASE_PROTOCOL
BIGENDIAN
CF_ACCEPT
CF_DEFER
CF_REJECT
EADDRINUSE
EADDRNOTAVAIL
EAFNOSUPPORT
EALREADY
ECONNABORTED
ECONNREFUSED
ECONNRESET
EDESTADDRREQ
EDQUOT
EHOSTDOWN
EHOSTUNREACH
EINPROGRESS
EISCONN
ELOOP
EMSGSIZE
ENAMETOOLONG
ENETDOWN
ENETRESET
ENETUNREACH
ENOBUFS
ENOPROTOOPT
ENOTCONN
ENOTEMPTY
ENOTSOCK
EOPNOTSUPP
EPFNOSUPPORT
EPROCLIM
EPROTONOSUPPORT
EPROTOTYPE
EREMOTE
ESHUTDOWN
ESOCKTNOSUPPORT
ESTALE
ETIMEDOUT
ETOOMANYREFS
EUSERS
EWOULDBLOCK
FD_ACCEPT
FD_ALL_EVENTS
FD_CLOSE
FD_CONNECT
FD_GROUP_QOS
FD_MAX_EVENTS
FD_OOB
FD_QOS
FD_READ
FD_SETSIZE
FD_WRITE
FIOASYNC
FIONBIO
FIONREAD
FROM_PROTOCOL_INFO
HOST_NOT_FOUND
IMPLINK_HIGHEXPER
IMPLINK_IP
IMPLINK_LOWEXPER
INADDR_ANY
INADDR_BROADCAST
INADDR_LOOPBACK
INADDR_NONE
INVALID_SOCKET
IOCPARM_MASK
IOC_IN
IOC_INOUT
IOC_OUT
IOC_PROTOCOL
IOC_UNIX
IOC_VENDOR
IOC_VOID
IOC_WS2
IPPORT_BIFFUDP
IPPORT_CMDSERVER
IPPORT_DAYTIME
IPPORT_DISCARD
IPPORT_ECHO
IPPORT_EFSSERVER
IPPORT_EXECSERVER
IPPORT_FINGER
IPPORT_FTP
IPPORT_LOGINSERVER
IPPORT_MTP
IPPORT_NAMESERVER
IPPORT_NETSTAT
IPPORT_RESERVED
IPPORT_RJE
IPPORT_ROUTESERVER
IPPORT_SMTP
IPPORT_SUPDUP
IPPORT_SYSTAT
IPPORT_TELNET
IPPORT_TFTP
IPPORT_TIMESERVER
IPPORT_TTYLINK
IPPORT_WHOIS
IPPORT_WHOSERVER
IPPROTO_GGP
IPPROTO_ICMP
IPPROTO_IDP
IPPROTO_IGMP
IPPROTO_IP
IPPROTO_MAX
IPPROTO_ND
IPPROTO_PUP
IPPROTO_RAW
IPPROTO_TCP
IPPROTO_UDP
IP_ADD_MEMBERSHIP
IP_DONTFRAGMENT
IP_DROP_MEMBERSHIP
IP_HDRINCL
IP_MULTICAST_IF
IP_MULTICAST_LOOP
IP_MULTICAST_TTL
IP_OPTIONS
IP_TOS
IP_TTL
JL_BOTH
JL_RECEIVER_ONLY
JL_SENDER_ONLY
LAYERED_PROTOCOL
LITTLEENDIAN
LUP_CONTAINERS
LUP_DEEP
LUP_FLUSHCACHE
LUP_FLUSHPREVIOUS
LUP_NEAREST
LUP_NOCONTAINERS
LUP_RES_SERVICE
LUP_RETURN_ADDR
LUP_RETURN_ALIASES
LUP_RETURN_ALL
LUP_RETURN_BLOB
LUP_RETURN_COMMENT
LUP_RETURN_NAME
LUP_RETURN_QUERY_STRING
LUP_RETURN_TYPE
LUP_RETURN_VERSION
MAXGETHOSTSTRUCT
MAX_PROTOCOL_CHAIN
MSG_DONTROUTE
MSG_INTERRUPT
MSG_MAXIOVLEN
MSG_OOB
MSG_PARTIAL
MSG_PEEK
NO_ADDRESS
NO_DATA
NO_RECOVERY
NS_ALL
NS_DNS
NS_MS
NS_NBP
NS_NDS
NS_NETBT
NS_NIS
NS_NISPLUS
NS_NTDS
NS_PEER_BROWSE
NS_SAP
NS_STDA
NS_TCPIP_HOSTS
NS_TCPIP_LOCAL
NS_WINS
NS_WRQ
NS_X500
PFL_HIDDEN
PFL_MATCHES_PROTOCOL_ZERO
PFL_MULTIPLE_PROTO_ENTRIES
PFL_RECOMMENDED_PROTO_ENTRY
PF_APPLETALK
PF_ATM
PF_BAN
PF_CCITT
PF_CHAOS
PF_DATAKIT
PF_DECnet
PF_DLI
PF_ECMA
PF_FIREFOX
PF_HYLINK
PF_IMPLINK
PF_INET
PF_INET6
PF_IPX
PF_ISO
PF_LAT
PF_MAX
PF_NS
PF_OSI
PF_PUP
PF_SNA
PF_UNIX
PF_UNKNOWN1
PF_UNSPEC
PF_VOICEVIEW
PVD_CONFIG
RESULT_IS_ALIAS
RES_FLUSH_CACHE
RES_SERVICE
RES_UNUSED_1
SD_BOTH
SD_RECEIVE
SD_SEND
SECURITY_PROTOCOL_NONE
SERVICE_MULTIPLE
SERVICE_TYPE_VALUE_IPXPORTA
SERVICE_TYPE_VALUE_IPXPORTW
SERVICE_TYPE_VALUE_OBJECTID
SERVICE_TYPE_VALUE_OBJECTIDA
SERVICE_TYPE_VALUE_OBJECTIDW
SERVICE_TYPE_VALUE_SAPID
SERVICE_TYPE_VALUE_SAPIDA
SERVICE_TYPE_VALUE_SAPIDW
SERVICE_TYPE_VALUE_TCPPORT
SERVICE_TYPE_VALUE_TCPPORTA
SERVICE_TYPE_VALUE_TCPPORTW
SERVICE_TYPE_VALUE_UDPPORT
SERVICE_TYPE_VALUE_UDPPORTA
SERVICE_TYPE_VALUE_UDPPORTW
SG_CONSTRAINED_GROUP
SG_UNCONSTRAINED_GROUP
SIO_ASSOCIATE_HANDLE
SIO_ENABLE_CIRCULAR_QUEUEING
SIO_FIND_ROUTE
SIO_FLUSH
SIO_GET_BROADCAST_ADDRESS
SIO_GET_EXTENSION_FUNCTION_POINTER
SIO_GET_GROUP_QOS
SIO_GET_QOS
SIO_MULTICAST_SCOPE
SIO_MULTIPOINT_LOOPBACK
SIO_SET_GROUP_QOS
SIO_SET_QOS
SIO_TRANSLATE_HANDLE
SOCKET_ERROR
SOCK_DGRAM
SOCK_RAW
SOCK_RDM
SOCK_SEQPACKET
SOCK_STREAM
SOL_SOCKET
SOMAXCONN
SO_ACCEPTCONN
SO_BROADCAST
SO_CONNDATA
SO_CONNDATALEN
SO_CONNOPT
SO_CONNOPTLEN
SO_DEBUG
SO_DISCDATA
SO_DISCDATALEN
SO_DISCOPT
SO_DISCOPTLEN
SO_DONTLINGER
SO_DONTROUTE
SO_ERROR
SO_GROUP_ID
SO_GROUP_PRIORITY
SO_KEEPALIVE
SO_LINGER
SO_MAXDG
SO_MAXPATHDG
SO_MAX_MSG_SIZE
SO_OOBINLINE
SO_OPENTYPE
SO_PROTOCOL_INFO
SO_PROTOCOL_INFOA
SO_PROTOCOL_INFOW
SO_RCVBUF
SO_RCVLOWAT
SO_RCVTIMEO
SO_REUSEADDR
SO_SNDBUF
SO_SNDLOWAT
SO_SNDTIMEO
SO_SYNCHRONOUS_ALERT
SO_SYNCHRONOUS_NONALERT
SO_TYPE
SO_USELOOPBACK
TCP_BSDURGENT
TCP_EXPEDITED_1122
TCP_NODELAY
TH_NETDEV
TH_TAPI
TRY_AGAIN
UDP_NOCHECKSUM
WSABASEERR
WSADESCRIPTION_LEN
WSAEACCES
WSAEADDRINUSE
WSAEADDRNOTAVAIL
WSAEAFNOSUPPORT
WSAEALREADY
WSAEBADF
WSAECANCELLED
WSAECONNABORTED
WSAECONNREFUSED
WSAECONNRESET
WSAEDESTADDRREQ
WSAEDISCON
WSAEDQUOT
WSAEEINVALIDPROCTABLE
WSAEFAULT
WSAEHOSTDOWN
WSAEHOSTUNREACH
WSAEINPROGRESS
WSAEINTR
WSAEINVAL
WSAEINVALIDPROVIDER
WSAEISCONN
WSAELOOP
WSAEMFILE
WSAEMSGSIZE
WSAENAMETOOLONG
WSAENETDOWN
WSAENETRESET
WSAENETUNREACH
WSAENOBUFS
WSAENOMORE
WSAENOPROTOOPT
WSAENOTCONN
WSAENOTEMPTY
WSAENOTSOCK
WSAEOPNOTSUPP
WSAEPFNOSUPPORT
WSAEPROCLIM
WSAEPROTONOSUPPORT
WSAEPROTOTYPE
WSAEPROVIDERFAILEDINIT
WSAEREFUSED
WSAEREMOTE
WSAESHUTDOWN
WSAESOCKTNOSUPPORT
WSAESTALE
WSAETIMEDOUT
WSAETOOMANYREFS
WSAEUSERS
WSAEWOULDBLOCK
WSAHOST_NOT_FOUND
WSANOTINITIALISED
WSANO_ADDRESS
WSANO_DATA
WSANO_RECOVERY
WSAPROTOCOL_LEN
WSASERVICE_NOT_FOUND
WSASYSCALLFAILURE
WSASYSNOTREADY
WSASYS_STATUS_LEN
WSATRY_AGAIN
WSATYPE_NOT_FOUND
WSAVERNOTSUPPORTED
WSA_E_CANCELLED
WSA_E_NO_MORE
WSA_FLAG_MULTIPOINT_C_LEAF
WSA_FLAG_MULTIPOINT_C_ROOT
WSA_FLAG_MULTIPOINT_D_LEAF
WSA_FLAG_MULTIPOINT_D_ROOT
WSA_FLAG_OVERLAPPED
WSA_INFINITE
WSA_INVALID_EVENT
WSA_INVALID_HANDLE
WSA_INVALID_PARAMETER
WSA_IO_INCOMPLETE
WSA_IO_PENDING
WSA_MAXIMUM_WAIT_EVENTS
WSA_NOT_ENOUGH_MEMORY
WSA_OPERATION_ABORTED
WSA_WAIT_EVENT_0
WSA_WAIT_FAILED
WSA_WAIT_IO_COMPLETION
WSA_WAIT_TIMEOUT
XP1_CONNECTIONLESS
XP1_CONNECT_DATA
XP1_DISCONNECT_DATA
XP1_EXPEDITED_DATA
XP1_GRACEFUL_CLOSE
XP1_GUARANTEED_DELIVERY
XP1_GUARANTEED_ORDER
XP1_IFS_HANDLES
XP1_INTERRUPT
XP1_MESSAGE_ORIENTED
XP1_MULTIPOINT_CONTROL_PLANE
XP1_MULTIPOINT_DATA_PLANE
XP1_PARTIAL_MESSAGE
XP1_PSEUDO_STREAM
XP1_QOS_SUPPORTED
XP1_SUPPORT_BROADCAST
XP1_SUPPORT_MULTIPOINT
XP1_UNI_RECV
XP1_UNI_SEND
function accept(s: TSocket; var addr: TSockAddr; var addrlen: Integer): TSocket;
AHS END } { Socket function prototypes
function bind(s: TSocket; var addr: TSockAddr; namelen: Integer): Integer;
function closesocket(s: TSocket): Integer;
function connect(s: TSocket; var name: TSockAddr; namelen: Integer): Integer;
function gethostbyaddr(addr: Pointer; len, struct: Integer): PHostEnt;
function gethostbyname(name: PChar): PHostEnt;
function gethostname(name: PChar; len: Integer): Integer;
function getpeername(s: TSocket; var name: TSockAddr; var namelen: Integer): Integer;
function getprotobyname(name: PChar): PProtoEnt;
function getprotobynumber(proto: Integer): PProtoEnt;
function getservbyname(name, proto: PChar): PServEnt;
function getservbyport(port: Integer; proto: PChar): PServEnt;
function getsockname(s: TSocket; var name: TSockAddr; var namelen: Integer): Integer;
function getsockopt(s: TSocket; level, optname: Integer; optval: PChar; var optlen: Integer): Integer;
function htonl(hostlong: u_long): u_long;
function htons(hostshort: u_short): u_short;
function inet_addr(cp: PChar): u_long;
function inet_ntoa(inaddr: TInAddr): PChar;
PInAddr;} { TInAddr
function ioctlsocket(s: TSocket; cmd: Longint; var arg: u_long): Integer;
function listen(s: TSocket; backlog: Integer): Integer;
function ntohl(netlong: u_long): u_long;
function ntohs(netshort: u_short): u_short;
function recv(s: TSocket; var Buf; len, flags: Integer): Integer;
function recvfrom(s: TSocket; var Buf; len, flags: Integer;
var from: TSockAddr; var fromlen: Integer): Integer;
function select(nfds: Integer; readfds, writefds, exceptfds: PFDSet;
timeout: PTimeVal): Longint;
function send(s: TSocket; var Buf; len, flags: Integer): Integer;
function sendto(s: TSocket; var Buf; len, flags: Integer; var addrto: TSockAddr;
tolen: Integer): Integer;
function setsockopt(s: TSocket; level, optname: Integer; optval: PChar;
optlen: Integer): Integer;
function shutdown(s: TSocket; how: Integer): Integer;
function socket(af, struct, protocol: Integer): TSocket;
function TransmitFile(hSocket: TSocket; hFile: THandle; nNumberOfBytesToWrite: DWORD;
nNumberOfBytesPerSend: DWORD; lpOverlapped: POverlapped;
lpTransmitBuffers: PTransmitFileBuffers; dwReserved: DWORD): BOOL;
function WSAAccept( s: TSOCKET; addr: psockaddr; addrlen: PINT;
lpfnCondition: PCONDITIONPROC; dwCallbackData: DWORD): TSOCKET;
WinSock 2 API new function prototypes
function WSAAddressToString( lpsaAddress: PSOCKADDR; dwAddressLength: DWORD;
lpProtocolInfo: PWSAPROTOCOL_INFOA; lpszAddressString: PChar;
lpdwAddressStringLength: PDWORD): u_int;
function WSAAsyncGetHostByAddr(HWindow: HWND; wMsg: u_int; addr: PChar;
len, struct: Integer; buf: PChar; buflen: Integer): THandle;
function WSAAsyncGetHostByName(HWindow: HWND; wMsg: u_int;
name, buf: PChar; buflen: Integer): THandle;
function WSAAsyncGetProtoByName(HWindow: HWND; wMsg: u_int;
name, buf: PChar; buflen: Integer): THandle;
function WSAAsyncGetProtoByNumber(HWindow: HWND; wMsg: u_int; number: Integer;
buf: PChar; buflen: Integer): THandle;
function WSAAsyncGetServByName(HWindow: HWND; wMsg: u_int;
name, proto, buf: PChar; buflen: Integer): THandle;
function WSAAsyncGetServByPort( HWindow: HWND; wMsg, port: u_int;
proto, buf: PChar; buflen: Integer): THandle;
function WSAAsyncSelect(s: TSocket; HWindow: HWND; wMsg: u_int; lEvent: Longint): Integer;
function WSACancelAsyncRequest(hAsyncTaskHandle: THandle): Integer;
function WSACancelBlockingCall: Integer;
function WSACleanup: Integer;
function WSACloseEvent( hEvent: WSAEVENT ):BOOL;
function WSAConnect(s: TSOCKET; name: psockaddr;namelen: u_int;
lpCallerData: PWSABUF; lpCalleeData: PWSABUF; lpSQOS: PQOS;
lpGQOS: PQOS) : u_int;
function WSACreateEvent:WSAEVENT;
function WSADuplicateSocket(s: TSocket; dwProcessId: DWORD;
lpProtocolInfo: PWSAPROTOCOL_INFOA): u_int;
function WSAEnumNameSpaceProviders( lpdwBufferLength: PDWORD;
lpnspBuffer: PWSANAMESPACE_INFOA):u_int;
UNICODE
function WSAEnumNetworkEvents( s: TSocket; hEventObject: WSAEVENT;
lpNetworkEvents: PWSANETWORKEVENTS): u_int;
UNICODE
function WSAEnumProtocols( lpiProtocols: PInt;
lpProtocolBuffer: PWSAPROTOCOL_INFOA; lpdwBufferLength: PDWORD
): u_int;
function WSAEventSelect(s: TSOCKET; hEventObject: WSAEVENT;
lNetworkEvents: u_long): u_int;
UNICODE
function WSAGetAsyncBuflen(Param: Longint): Word;
function WSAGetAsyncError(Param: Longint): Word;
function WSAGetLastError: Integer;
function WSAGetOverlappedResult( s: TSocket; lpOverlapped: LPWSAOVERLAPPED;
lpcbTransfer: PDWORD; fWait: BOOL; lpdwFlags: PDWORD): BOOL;
function WSAGetQOSByName( s: TSocket; lpQOSName: PWSABUF;
lpQOS: PQOS): BOOL;
function WSAGetSelectError(Param: Longint): Word;
function WSAGetSelectEvent(Param: Longint): Word;
function WSAGetServiceClassInfo( lpProviderId: PGUID; lpServiceClassId: PGUID;
lpdwBufSize: PDWORD; lpServiceClassInfo: PWSASERVICECLASSINFOA)
: u_int;
function WSAGetServiceClassNameByClassId( lpServiceClassId: PGUID;
lpszServiceClassName: PChar; lpdwBufferLength: PDWORD): u_int;
UNICODE
function WSAHtonl( s: TSocket; hostlong: u_long; lpnetlong: pu_long)
: u_int;
function WSAHtons( s: TSocket; hostshort: u_short; lpnetshort: pu_short)
: u_int;
function WSAInstallServiceClass( lpServiceClassInfo: PWSASERVICECLASSINFOA
): u_int;
function WSAIoctl( s: TSocket; dwIoControlCode: DWORD; lpvInBuffer: Pointer;
cbInBuffer: DWORD; lpvOutBuffer: Pointer; cbOutBuffer: DWORD;
lpcbBytesReturned: PDWORD; lpOverlapped: LPWSAOVERLAPPED;
lpCompletionRoutine: PWSAOVERLAPPED_COMPLETION_ROUTINE): u_int;
function WSAIsBlocking: BOOL;
function WSAJoinLeaf( s: TSocket; name: psockaddr; namelen: u_int;
lpCallerData: PWSABUF; lpCalleeData: PWSABUF; lpSQOS: PQOS; lpGQOS: PQOS;
dwFlags: DWORD): TSocket;
function WSALookupServiceBegin( lpqsRestrictions: PWSAQUERYSETA;
dwControlFlags: DWORD; lphLookup: LPHANDLE): u_int;
UNICODE} { Registration and Name Resolution API functions
function WSALookupServiceEnd( hLookup: THandle): u_int;
UNICODE UNICODE
function WSALookupServiceNext( hLookup: THANDLE; dwControlFlags: DWORD;
lpdwBufferLength: PDWORD; lpqsResults: PWSAQUERYSETA): LongInt;
UNICODE
function WSAMakeASyncReply(Buflen, Error: Word): Longint;
function WSAMakeSelectReply(Event, Error: Word): Longint;
function WSANtohl( s: TSocket; netlong: u_long; lphostlong: pu_long)
: u_int;
function WSANtohs( s: TSocket; netshort: u_short; lphostshort: pu_short)
: u_int;
function WSARecv( s: TSocket; lpBuffers: PWSABUF; dwBufferCount: DWORD;
lpNumberOfBytesRecvd: PDWORD; lpFlags: PDWORD;lpOverlapped: LPWSAOVERLAPPED;
lpCompletionRoutine: PWSAOVERLAPPED_COMPLETION_ROUTINE): u_int;
function WSARecvDisconnect( s: TSocket; lpInboundDisconnectData: PWSABUF)
: u_int;
function WSARecvEx(s: TSocket; var buf; len: Integer; var flags: Integer): Integer;
UNICODE
function WSARecvFrom( s: TSocket; lpBuffers: PWSABUF; dwBufferCount: DWORD;
lpNumberOfBytesRecvd: PDWORD; lpFlags: PDWORD; lpFrom: psockaddr;
lpFromlen: PInt; lpOverlapped: LPWSAOVERLAPPED;
lpCompletionRoutine: PWSAOVERLAPPED_COMPLETION_ROUTINE): u_int;
function WSARemoveServiceClass(lpServiceClassId: PGUID): u_int;
UNICODE
function WSAResetEvent( hEvent: WSAEVENT): BOOL;
function WSASend( s: TSocket; lpBuffers: PWSABUF; dwBufferCount: DWORD;
lpNumberOfBytesSent: PDWORD; dwFlags: DWORD; lpOverlapped: LPWSAOVERLAPPED;
lpCompletionRoutine: PWSAOVERLAPPED_COMPLETION_ROUTINE): u_int;
function WSASendDisconnect( s: TSocket; lpOutboundDisconnectData: PWSABUF)
: u_int;
function WSASendTo(s: TSocket; lpBuffers: PWSABUF; dwBufferCount: DWORD;
lpNumberOfBytesSent: PDWORD;dwFlags: DWORD; lpTo: psockaddr; iTolen: u_int;
lpOverlapped: LPWSAOVERLAPPED;
lpCompletionRoutine: PWSAOVERLAPPED_COMPLETION_ROUTINE): u_int;
function WSASetBlockingHook(lpBlockFunc: TFarProc): TFarProc;
function WSASetEvent( hEvent: WSAEVENT): BOOL;
procedure WSASetLastError(iError: Integer);
function WSASetService( lpqsRegInfo: PWSAQUERYSETA;
essoperation: TWSAESETSERVICEOP; dwControlFlags: DWORD):u_int;
UNICODE
function WSASocket( af: u_int; atype: u_int; protocol: u_int;
lpProtocolInfo: PWSAPROTOCOL_INFOA; g: TGroup; dwFlags: Dword)
: TSocket;
function WSAStartup(wVersionRequired: word; var WSData: TWSAData): Integer;
function WSAStringToAddress( AddressString: PChar; AddressFamily: u_int;
lpProtocolInfo: PWSAPROTOCOL_INFOA; lpAddress: PSOCKADDR;
lpAddressLength: PInt): u_int;
UNICODE
function WSAUnhookBlockingHook: Integer;
function WSAWaitForMultipleEvents( cEvents: DWORD; lphEvents: LPWSAEVENT;
fWaitAll: BOOL; dwTimeout: DWORD; fAlertable: BOOL): DWORD;
UNICODE
GUARANTEE = (
BestEffortService,
ControlledLoadService,
PredictiveService,
GuaranteedDelayService,
GuaranteedService
);
the pointer to the buffer
LPHANDLE = PHANDLE
LPSOCKADDR = PSockaddr
AHS ?} { PSOCKADDR = PSockaddr;
LPWSAEVENT = LPHANDLE
LPWSAOVERLAPPED = POverlapped
PAFPROTOCOLS = ^TAFPROTOCOLS
Address Family/Protocol Tuples
PBLOB = ^TBLOB
Manifest constants and type definitions related to name resolution and
registration (RNR) API
PCONDITIONPROC = function ( lpCallerId:PWSABUF; lpCallerData:PWSABUF;
lpSQOS:PQOS; lpGQOS:PQOS; lpCalleeId:PWSABUF;lpCalleeData:PWSABUF;
g:PGroup; dwCallbackData:DWord) :u_int
WinSock 2 extensions -- data types for the condition function in
WSAAccept() and overlapped I/O completion routine.
PCSADDR_INFO = ^TCSADDR_INFO
CSAddr Information
PFDSet = ^TFDSet
PFlowspec = ^TFlowspec
PGroup = ^TGroup
PHostEnt = ^THostEnt
PInAddr = ^TInAddr
PLinger = ^TLinger
Structure used for manipulating linger option.
PNetEnt = ^TNetEnt
PProtoEnt = ^TProtoEnt
PQOS = ^TQualityOfService
read-only: } { 1 if accessible, } { 0 if not
PServEnt = ^TServEnt
PSockAddr = ^TSockAddr
Structure used by kernel to store most addresses.
PSockAddrIn = ^TSockAddrIn
PSOCKET_ADDRESS = ^TSOCKET_ADDRESS
SockAddr Information
PSockProto = ^TSockProto
Structure used by kernel to pass protocol information in raw sockets.
PTimeVal = ^TTimeVal
PTransmitFileBuffers = ^TTransmitFileBuffers
pu_long = ^u_long
pu_short = ^u_short
PWSABUF = ^TWSABUF
WinSock 2 extension -- WSABUF and QOS struct
PWSAData = ^TWSAData
PWSAEcomparator = ^TWSAEcomparator
Client Query API Typedefs } { The comparators
PWSAESETSERVICEOP = ^TWSAESETSERVICEOP
Service Address Registration and Deregistration Data Types.
PWSANAMESPACE_INFO = PWSANAMESPACE_INFOA
PWSANAMESPACE_INFOA = ^TWSANAMESPACE_INFOA
PWSANAMESPACE_INFOW = ^TWSANAMESPACE_INFOW
PWSANETWORKEVENTS = ^TWSANETWORKEVENTS
WinSock 2 extension -- data type for WSAEnumNetworkEvents()
PWSANSCLASSINFO = PWSANSCLASSINFOA
PWSANSClassInfoA = ^TWSANSClassInfoA
Service Installation/Removal Data Types.
PWSANSClassInfoW = ^TWSANSClassInfoW
PWSAOVERLAPPED_COMPLETION_ROUTINE = procedure ( dwError :Dword;
cbTransferred: DWORD; lpOverlapped: LPWSAOVERLAPPED; dwFlags: Dword
)
PWSAPROTOCOLCHAIN = ^TWSAPROTOCOLCHAIN
PWSAPROTOCOL_INFO = PWSAPROTOCOL_INFOA
PWSAPROTOCOL_INFOA = ^TWSAPROTOCOL_INFOA
PWSAPROTOCOL_INFOW = ^TWSAPROTOCOL_INFOW
PWSAQUERYSET = PWSAQUERYSETA
PWSAQuerySetA = ^TWSAQuerySetA
PWSAQuerySetW = ^TWSAQuerySetW
PWSASERVICECLASSINFO = PWSASERVICECLASSINFOA
PWSAServiceClassInfoA = ^TWSAServiceClassInfoA
PWSAServiceClassInfoW = ^TWSAServiceClassInfoW
PWSAVersion = ^TWSAVersion
SOCKADDR = TSockAddr
Microsoft Windows Extended data types required for the functions to
convert back and forth between binary and string forms of
addresses.
SunB = record
s_b1 : u_char;
s_b2 : u_char;
s_b3 : u_char;
s_b4 : u_char;
end;
SunW = record
s_w1 : u_short;
s_w2 : u_short;
end;
TAFPROTOCOLS = record
iAddressFamily : u_int;
iProtocol : u_int;
end;
TBLOB = record
cbSize : ULONG;
pBlobData : ^byte;
end;
TCSADDR_INFO = record
LocalAddr : TSOCKET_ADDRESS;
RemoteAddr : TSOCKET_ADDRESS;
iSocketType : u_int;
iProtocol : u_int;
end;
TFDSet = record
fd_count : u_int;
fd_array : array[0..FD_SETSIZE-1] of TSocket;
end;
TFlowspec = record
TokenRate : LongInt;
TokenBucketSize : LongInt;
PeakBandwidth : LongInt;
Latency : LongInt;
DelayVariation : LongInt;
LevelOfGuarantee : Guarantee;
CostOfCall : LongInt;
NetworkAvailability : LongInt;
end;
TGroup = u_int
WinSock 2 extension -- data type and manifest constants for socket groups
THostEnt = record
h_name : PChar;
h_aliases : ^PChar;
h_addrtype : Smallint;
h_length : Smallint;
end;
TInAddr = record
end;
TLinger = record
l_onoff : u_short;
l_linger : u_short;
end;
TNetEnt = record
n_name : PChar;
n_aliases : ^PChar;
n_addrtype : Smallint;
n_net : u_long;
end;
TProtoEnt = record
p_name : PChar;
p_aliases : ^Pchar;
p_proto : Smallint;
end;
TQualityOfService = record
SendingFlowspec : TFlowspec;
ReceivingFlowspec : TFlowspec;
ProviderSpecific : TWSABuf;
end;
TServEnt = record
s_name : PChar;
s_aliases : ^PChar;
s_port : Smallint;
s_proto : PChar;
end;
TSockAddr = TSockAddrIn
TSockAddrIn = record
end;
TSocket = u_int
The new type to be used in all
instances which refer to sockets.
TSOCKET_ADDRESS = record
lpSockaddr : PSOCKADDR ;
iSockaddrLength : u_int;
end;
TSockProto = record
sp_family : u_short;
sp_protocol : u_short;
end;
TTimeVal = record
tv_sec : Longint;
tv_usec : Longint;
end;
TTransmitFileBuffers = record
Head : Pointer;
HeadLength : DWORD;
Tail : Pointer;
TailLength : DWORD;
end;
TWSABUF = record
len : u_long;
buf : PChar;
end;
TWSAData = record
wVersion : Word;
wHighVersion : Word;
szDescription : array[0..WSADESCRIPTION_LEN] of Char;
szSystemStatus : array[0..WSASYS_STATUS_LEN] of Char;
iMaxSockets : Word;
iMaxUdpDg : Word;
lpVendorInfo : PChar;
end;
TWSAEcomparator = (
COMP_EQUAL,
COMP_NOTLESS
);
TWSAESETSERVICEOP = (
RNRSERVICE_REGISTER,
RNRSERVICE_DEREGISTER,
RNRSERVICE_DELETE
);
TWSANAMESPACE_INFO = TWSANAMESPACE_INFOA
TWSANAMESPACE_INFOA = record
NSProviderId : TGUID;
dwNameSpace : DWord;
fActive : BOOL;
dwVersion : DWord;
lpszIdentifier : PChar;
end;
TWSANAMESPACE_INFOW = record
NSProviderId : TGUID;
dwNameSpace : DWord;
fActive : BOOL;
dwVersion : DWord;
lpszIdentifier : WideChar;
end;
TWSANETWORKEVENTS = record
lNetworkEvents : u_long;
iErrorCode : array [0..FD_MAX_EVENTS-1] of u_int;
end;
TWSANSCLASSINFO = TWSANSCLASSINFOA
TWSANSClassInfoA = record
lpszName : PChar;
dwNameSpace : Dword;
dwValueType : Dword;
dwValueSize : Dword;
lpValue : Pointer;
end;
TWSANSClassInfoW = record
lpszName : WideChar;
dwNameSpace : Dword;
dwValueType : Dword;
dwValueSize : Dword;
lpValue : Pointer;
end;
TWSAPROTOCOLCHAIN = record
ChainLen : Integer;
ChainEntries : array[0..MAX_PROTOCOL_CHAIN-1] of DWORD;
end;
TWSAPROTOCOL_INFO = TWSAPROTOCOL_INFOA
TWSAPROTOCOL_INFOA = record
dwServiceFlags1 : DWORD;
dwServiceFlags2 : DWORD;
dwServiceFlags3 : DWORD;
dwServiceFlags4 : DWORD;
dwProviderFlags : DWORD;
ProviderId : TGUID;
dwCatalogEntryId : DWORD;
ProtocolChain : TWSAPROTOCOLCHAIN;
iVersion : u_int;
iAddressFamily : u_int;
iMaxSockAddr : u_int;
iMinSockAddr : u_int;
iSocketType : u_int;
iProtocol : u_int;
iProtocolMaxOffset : u_int;
iNetworkByteOrder : u_int;
iSecurityScheme : u_int;
dwMessageSize : DWORD;
dwProviderReserved : DWORD;
szProtocol : array [0..WSAPROTOCOL_LEN+1-1] of u_char;
end;
TWSAPROTOCOL_INFOW = record
dwServiceFlags1 : DWORD;
dwServiceFlags2 : DWORD;
dwServiceFlags3 : DWORD;
dwServiceFlags4 : DWORD;
dwProviderFlags : DWORD;
ProviderId : TGUID;
dwCatalogEntryId : DWORD;
ProtocolChain : TWSAPROTOCOLCHAIN;
iVersion : u_int;
iAddressFamily : u_int;
iMaxSockAddr : u_int;
iMinSockAddr : u_int;
iSocketType : u_int;
iProtocol : u_int;
iProtocolMaxOffset : u_int;
iNetworkByteOrder : u_int;
iSecurityScheme : u_int;
dwMessageSize : DWORD;
dwProviderReserved : DWORD;
szProtocol : array [0..WSAPROTOCOL_LEN+1-1] of WCHAR;
end;
TWSAQuerySetA = record
dwSize : DWord;
lpszServiceInstanceName : PChar;
lpServiceClassId : PGUID;
lpVersion : PWSAVERSION;
lpszComment : PChar;
dwNameSpace : DWord;
lpNSProviderId : PGUID;
lpszContext : PChar;
dwNumberOfProtocols : DWORD;
lpafpProtocols : PAFPROTOCOLS;
lpszQueryString : PChar;
dwNumberOfCsAddrs : Dword;
lpcsaBuffer : PCSADDR_INFO;
dwOutputFlags : DWord;
lpBlob : PBLOB;
end;
TWSAQuerySetW = record
dwSize : DWord;
lpszServiceInstanceName : WideChar;
lpServiceClassId : PGUID;
lpVersion : PWSAVERSION;
lpszComment : WideChar;
dwNameSpace : DWord;
lpNSProviderId : PGUID;
lpszContext : WideChar;
dwNumberOfProtocols : DWORD;
lpafpProtocols : PAFPROTOCOLS;
lpszQueryString : WideChar;
dwNumberOfCsAddrs : Dword;
lpcsaBuffer : PCSADDR_INFO;
dwOutputFlags : DWord;
lpBlob : PBLOB;
end;
TWSASERVICECLASSINFO = TWSASERVICECLASSINFOA
TWSAServiceClassInfoA = record
lpServiceClassId : PGUID;
lpszServiceClassName : PChar;
dwCount : DWord;
lpClassInfos : PWSANSCLASSINFOA;
end;
TWSAServiceClassInfoW = record
lpServiceClassId : PGUID;
lpszServiceClassName : WideChar;
dwCount : DWord;
lpClassInfos : PWSANSCLASSINFOW;
end;
TWSAVersion = record
dwVersion : Dword;
ecHow : TWSAEComparator;
end;
u_char = Char
Added COMOBJ for TGUID type reference JCP 271197
u_int = Integer
u_long = Longint
u_short = Word
WSAEVENT = THANDLE
AHS } { WinSock 2 extension -- new error codes and type definition
WSAOVERLAPPED = TOVERLAPPED
WSAQUERYSET = TWSAQUERYSETA
ADDR_ANY = INADDR_ANY
AF_APPLETALK = 16
NSC Hyperchannel
AF_ATM = 22
Banyan
AF_BAN = 21
Somebody is using this!
AF_CCITT = 10
datakit protocols
AF_CHAOS = 5
pup protocols: e.g. BSP
AF_DATAKIT = 9
european computer manufacturers
AF_DECnet = 12
IBM SNA
AF_DLI = 13
DECnet
AF_ECMA = 8
OSI is ISO
AF_FIREFOX = 19
VoiceView
AF_HYLINK = 15
LAT
AF_IMPLINK = 3
internetwork: UDP, TCP, etc.
AF_INET = 2
local to host (pipes, portals)
AF_INET6 = 23
Native ATM Services
AF_IPX = 6
mit CHAOS protocols
AF_ISO = 7
XEROX NS protocols
AF_LAT = 14
Direct data link interface
AF_MAX = 24
Internetwork Version 6
AF_NETBIOS = 17
AppleTalk
AF_NS = 6
IPX and SPX
AF_OSI = AF_ISO
ISO protocols
AF_PUP = 4
arpanet imp addresses
AF_SNA = 11
CCITT protocols, X.25 etc
AF_UNIX = 1
unspecified
AF_UNKNOWN1 = 20
FireFox
AF_UNSPEC = 0
Address families.
AF_VOICEVIEW = 18
NetBios-style addresses
BASE_PROTOCOL = 1
BIGENDIAN = $0000
CF_ACCEPT = $0000
WinSock 2 extension -- manifest constants for return values of the
condition function
CF_DEFER = $0002
CF_REJECT = $0001
EADDRINUSE = WSAEADDRINUSE
EADDRNOTAVAIL = WSAEADDRNOTAVAIL
EAFNOSUPPORT = WSAEAFNOSUPPORT
EALREADY = WSAEALREADY
ECONNABORTED = WSAECONNABORTED
ECONNREFUSED = WSAECONNREFUSED
ECONNRESET = WSAECONNRESET
EDESTADDRREQ = WSAEDESTADDRREQ
EDQUOT = WSAEDQUOT
EHOSTDOWN = WSAEHOSTDOWN
EHOSTUNREACH = WSAEHOSTUNREACH
EINPROGRESS = WSAEINPROGRESS
EISCONN = WSAEISCONN
ELOOP = WSAELOOP
EMSGSIZE = WSAEMSGSIZE
ENAMETOOLONG = WSAENAMETOOLONG
ENETDOWN = WSAENETDOWN
ENETRESET = WSAENETRESET
ENETUNREACH = WSAENETUNREACH
ENOBUFS = WSAENOBUFS
ENOPROTOOPT = WSAENOPROTOOPT
ENOTCONN = WSAENOTCONN
ENOTEMPTY = WSAENOTEMPTY
ENOTSOCK = WSAENOTSOCK
EOPNOTSUPP = WSAEOPNOTSUPP
EPFNOSUPPORT = WSAEPFNOSUPPORT
EPROCLIM = WSAEPROCLIM
EPROTONOSUPPORT = WSAEPROTONOSUPPORT
EPROTOTYPE = WSAEPROTOTYPE
EREMOTE = WSAEREMOTE
ESHUTDOWN = WSAESHUTDOWN
ESOCKTNOSUPPORT = WSAESOCKTNOSUPPORT
ESTALE = WSAESTALE
ETIMEDOUT = WSAETIMEDOUT
ETOOMANYREFS = WSAETOOMANYREFS
EUSERS = WSAEUSERS
EWOULDBLOCK = WSAEWOULDBLOCK
Windows Sockets errors redefined as regular Berkeley error constants.
These are commented out in Windows NT to avoid conflicts with errno.h.
Use the WSA constants instead.
FD_ACCEPT = $08
FD_ALL_EVENTS = $100
FD_CLOSE = $20
FD_CONNECT = $10
FD_GROUP_QOS = $80
FD_MAX_EVENTS = 8
FD_OOB = $04
FD_QOS = $40
FD_READ = $01
Define flags to be used with the WSAAsyncSelect() call.
FD_SETSIZE = 64
FD_WRITE = $02
FIOASYNC = IOC_IN or { set/clear async i/o }
((Longint(SizeOf(Longint)) and IOCPARM_MASK) shl 16) or
(Longint(Byte('f')) shl 8) or 125
set/clear non-blocking i/o
FIONBIO = IOC_IN or { set/clear non-blocking i/o }
((Longint(SizeOf(Longint)) and IOCPARM_MASK) shl 16) or
(Longint(Byte('f')) shl 8) or 126
get # bytes to read
FIONREAD = IOC_OUT or { get # bytes to read }
((Longint(SizeOf(Longint)) and IOCPARM_MASK) shl 16) or
(Longint(Byte('f')) shl 8) or 127
FROM_PROTOCOL_INFO = -1
The following may be used in place of the address family, socket type, or
protocol in a call to WSASocket to indicate that the corresponding value
should be taken from the supplied WSAPROTOCOL_INFO structure instead of the
parameter itself.
HOST_NOT_FOUND = WSAHOST_NOT_FOUND
IMPLINK_HIGHEXPER = 158
IMPLINK_IP = 155
Link numbers
IMPLINK_LOWEXPER = 156
INADDR_ANY = $00000000
INADDR_BROADCAST = $FFFFFFFF
INADDR_LOOPBACK = $7F000001
INADDR_NONE = $FFFFFFFF
INVALID_SOCKET = TSocket(NOT(0))
This is used instead of -1, since the
TSocket type is unsigned.
IOCPARM_MASK = $7f
IOC_IN = $80000000
IOC_INOUT = (IOC_IN or IOC_OUT)
IOC_OUT = $40000000
IOC_PROTOCOL = $10000000
IOC_UNIX = $00000000
WinSock 2 extension -- manifest constants for WSAIoctl()
IOC_VENDOR = $18000000
IOC_VOID = $20000000
IOC_WS2 = $08000000
IPPORT_BIFFUDP = 512
UNIX UDP sockets
IPPORT_CMDSERVER = 514
IPPORT_DAYTIME = 13
IPPORT_DISCARD = 9
IPPORT_ECHO = 7
Port/socket numbers: network standard functions
IPPORT_EFSSERVER = 520
IPPORT_EXECSERVER = 512
UNIX TCP sockets
IPPORT_FINGER = 79
IPPORT_FTP = 21
IPPORT_LOGINSERVER = 513
IPPORT_MTP = 57
IPPORT_NAMESERVER = 42
IPPORT_NETSTAT = 15
IPPORT_RESERVED = 1024
Ports < IPPORT_RESERVED are reserved for
privileged processes (e.g. root).
IPPORT_RJE = 77
IPPORT_ROUTESERVER = 520
IPPORT_SMTP = 25
IPPORT_SUPDUP = 95
IPPORT_SYSTAT = 11
IPPORT_TELNET = 23
IPPORT_TFTP = 69
Port/socket numbers: host specific functions
IPPORT_TIMESERVER = 37
IPPORT_TTYLINK = 87
IPPORT_WHOIS = 43
IPPORT_WHOSERVER = 513
IPPROTO_GGP = 3
Internet Group Management Protocol
IPPROTO_ICMP = 1
Dummy
IPPROTO_IDP = 22
User Datagram Protocol
IPPROTO_IGMP = 2
Internet Control Message Protocol
IPPROTO_IP = 0
Protocols
IPPROTO_MAX = 256
IPPROTO_ND = 77
XNS IDP
IPPROTO_PUP = 12
TCP
IPPROTO_RAW = 255
UNOFFICIAL Net Disk Protocol
IPPROTO_TCP = 6
Gateway
IPPROTO_UDP = 17
PUP
IP_ADD_MEMBERSHIP = 12
*set/get IP multicast loopback */
IP_DONTFRAGMENT = 14
* drop an IP group membership */
IP_DROP_MEMBERSHIP = 13
* add an IP group membership */
IP_HDRINCL = 2
* set/get IP options */
IP_MULTICAST_IF = 9
* IP time to live */
IP_MULTICAST_LOOP = 11
* set/get IP multicast ttl */
IP_MULTICAST_TTL = 10
* set/get IP multicast i/f */
IP_OPTIONS = 1
Options for use with [gs]etsockopt at the IP level. } (*
IP_OPTIONS = 1;
IP_MULTICAST_IF = 2; { set/get IP multicast interface }
IP_MULTICAST_TTL = 3; { set/get IP multicast timetolive }
IP_MULTICAST_LOOP = 4; { set/get IP multicast loopback }
IP_ADD_MEMBERSHIP = 5; { add an IP group membership }
IP_DROP_MEMBERSHIP = 6; { drop an IP group membership }
IP_DEFAULT_MULTICAST_TTL = 1; { normally limit m'casts to 1 hop }
IP_DEFAULT_MULTICAST_LOOP = 1; { normally hear sends if a member }
{ per socket; must fit in one mbuf }
*) //
IP_TOS = 3
* header is included with data */
IP_TTL = 4
* IP type of service and preced*/
JL_BOTH = $04
JL_RECEIVER_ONLY = $02
JL_SENDER_ONLY = $01
WinSock 2 extension -- manifest constants for WSAJoinLeaf()
LAYERED_PROTOCOL = 0
LITTLEENDIAN = $0001
LUP_CONTAINERS = $0002
LUP_DEEP = $0001
LUP_FLUSHCACHE = $1000
LUP_FLUSHPREVIOUS = $2000
LUP_NEAREST = $0008
LUP_NOCONTAINERS = $0004
LUP_RES_SERVICE = $8000
LUP_RETURN_ADDR = $0100
LUP_RETURN_ALIASES = $0400
LUP_RETURN_ALL = $0FF0
LUP_RETURN_BLOB = $0200
LUP_RETURN_COMMENT = $0080
LUP_RETURN_NAME = $0010
LUP_RETURN_QUERY_STRING = $0800
LUP_RETURN_TYPE = $0020
LUP_RETURN_VERSION = $0040
MAXGETHOSTSTRUCT = 1024
send/recv in the interrupt context} { Define constant based on rfc883, used by gethostbyxxxx() calls.
MAX_PROTOCOL_CHAIN = 7
WinSock 2 extension -- WSAPROTOCOL_INFO structure and associated
manifest constants} { Removed this type as it is already declared in the COMOBJ unit. In any
case this version of TGUID for WS2 is NOT compatible with D3's definition
of TGUID! JCP 271197
PGUID = ^TGUID;
TGUID = packed record
Data1 : u_long;
Data2 : u_short;
Data3 : u_short;
Data4 : array [0..8-1] of u_char;
end;
MSG_DONTROUTE = $4
peek at incoming message
MSG_INTERRUPT = $10
partial send or recv for message xport } { WinSock 2 extension -- new flags for WSASend(), WSASendTo(), WSARecv() and
WSARecvFrom()
MSG_MAXIOVLEN = 16
send without using routing tables
MSG_OOB = $1
AHS - by³o 5 !??????
MSG_PARTIAL = $8000
MSG_PEEK = $2
process out-of-band data
NO_ADDRESS = WSANO_ADDRESS
NO_DATA = WSANO_DATA
NO_RECOVERY = WSANO_RECOVERY
NS_ALL = 0
Name Spaces
NS_DNS = 12
NS_MS = 30
NS_NBP = 20
NS_NDS = 2
NS_NETBT = 13
NS_NIS = 41
NS_NISPLUS = 42
NS_NTDS = 32
NS_PEER_BROWSE = 3
NS_SAP = 1
NS_STDA = 31
NS_TCPIP_HOSTS = 11
NS_TCPIP_LOCAL = 10
NS_WINS = 14
NS_WRQ = 50
NS_X500 = 40
PFL_HIDDEN = $00000004
PFL_MATCHES_PROTOCOL_ZERO = $00000008
PFL_MULTIPLE_PROTO_ENTRIES = $00000001
Flag bit definitions for dwProviderFlags
PFL_RECOMMENDED_PROTO_ENTRY = $00000002
PF_APPLETALK = AF_APPLETALK
PF_ATM = AF_ATM
PF_BAN = AF_BAN
PF_CCITT = AF_CCITT
PF_CHAOS = AF_CHAOS
PF_DATAKIT = AF_DATAKIT
PF_DECnet = AF_DECnet
PF_DLI = AF_DLI
PF_ECMA = AF_ECMA
PF_FIREFOX = AF_FIREFOX
PF_HYLINK = AF_HYLINK
PF_IMPLINK = AF_IMPLINK
PF_INET = AF_INET
PF_INET6 = AF_INET6
PF_IPX = AF_IPX
PF_ISO = AF_ISO
PF_LAT = AF_LAT
PF_MAX = AF_MAX
PF_NS = AF_NS
PF_OSI = AF_OSI
PF_PUP = AF_PUP
PF_SNA = AF_SNA
PF_UNIX = AF_UNIX
PF_UNKNOWN1 = AF_UNKNOWN1
PF_UNSPEC = AF_UNSPEC
Protocol families, same as address families for now.
PF_VOICEVIEW = AF_VOICEVIEW
PVD_CONFIG = $3001
RESULT_IS_ALIAS = $0001
Return flags
RES_FLUSH_CACHE = $00000002
RES_SERVICE = $00000004
RES_UNUSED_1 = $00000001
Resolution flags for WSAGetAddressByName().
Note these are also used by the 1.1 API GetAddressByName, so
leave them around.
SD_BOTH = $02
SD_RECEIVE = $00
WinSock 2 extension -- manifest constants for shutdown()
SD_SEND = $01
SECURITY_PROTOCOL_NONE = $0000
SERVICE_MULTIPLE = $00000001
Service Install Flags
SERVICE_TYPE_VALUE_IPXPORTA = 'IpxSocket'
Well known value names for Service Types
SERVICE_TYPE_VALUE_IPXPORTW = 'IpxSocket'
SERVICE_TYPE_VALUE_OBJECTID = SERVICE_TYPE_VALUE_OBJECTIDA
SERVICE_TYPE_VALUE_OBJECTIDA = 'ObjectId'
SERVICE_TYPE_VALUE_OBJECTIDW = 'ObjectId'
SERVICE_TYPE_VALUE_SAPID = SERVICE_TYPE_VALUE_SAPIDA
not UNICODE
SERVICE_TYPE_VALUE_SAPIDA = 'SapId'
SERVICE_TYPE_VALUE_SAPIDW = 'SapId'
SERVICE_TYPE_VALUE_TCPPORT = SERVICE_TYPE_VALUE_TCPPORTA
SERVICE_TYPE_VALUE_TCPPORTA = 'TcpPort'
SERVICE_TYPE_VALUE_TCPPORTW = 'TcpPort'
SERVICE_TYPE_VALUE_UDPPORT = SERVICE_TYPE_VALUE_UDPPORTA
SERVICE_TYPE_VALUE_UDPPORTA = 'UdpPort'
SERVICE_TYPE_VALUE_UDPPORTW = 'UdpPort'
SG_CONSTRAINED_GROUP = $02
SG_UNCONSTRAINED_GROUP = $01
SIO_ASSOCIATE_HANDLE = IOC_IN or IOC_WS2 or 1
SIO_ENABLE_CIRCULAR_QUEUEING = IOC_VOID or IOC_WS2 or 2
SIO_FIND_ROUTE = IOC_OUT or IOC_WS2 or 3
SIO_FLUSH = IOC_VOID or IOC_WS2 or 4
SIO_GET_BROADCAST_ADDRESS = IOC_OUT or IOC_WS2 or 5
SIO_GET_EXTENSION_FUNCTION_POINTER = IOC_INOUT or IOC_WS2 or 6
SIO_GET_GROUP_QOS = IOC_INOUT or IOC_WS2 or 8
SIO_GET_QOS = IOC_INOUT or IOC_WS2 or 7
SIO_MULTICAST_SCOPE = IOC_IN or IOC_WS2 or 10
SIO_MULTIPOINT_LOOPBACK = IOC_IN or IOC_WS2 or 9
SIO_SET_GROUP_QOS = IOC_IN or IOC_WS2 or 12
SIO_SET_QOS = IOC_IN or IOC_WS2 or 11
SIO_TRANSLATE_HANDLE = IOC_INOUT or IOC_WS2 or 13
SOCKET_ERROR = -1
SOCK_DGRAM = 2
stream socket
SOCK_RAW = 3
datagram socket
SOCK_RDM = 4
raw-protocol interface
SOCK_SEQPACKET = 5
reliably-delivered message
SOCK_STREAM = 1
Types
SOL_SOCKET = $ffff
Level number for (get/set)sockopt() to apply to socket itself.
SOMAXCONN = $7fffffff
options for socket level } { Maximum queue length specifiable by listen.
SO_ACCEPTCONN = $0002
turn on debugging info recording
SO_BROADCAST = $0020
just use interface addresses
SO_CONNDATA = $7000
get socket type } { Options for connect and disconnect data and options. Used only by
non-TCP/IP transports such as DECNet, OSI TP4, etc.
SO_CONNDATALEN = $7004
SO_CONNOPT = $7001
SO_CONNOPTLEN = $7005
SO_DEBUG = $0001
sequenced packet stream } { Option flags per-socket.
SO_DISCDATA = $7002
SO_DISCDATALEN = $7006
SO_DISCOPT = $7003
SO_DISCOPTLEN = $7007
SO_DONTLINGER = $ff7f
leave received OOB data in line
SO_DONTROUTE = $0010
keep connections alive
SO_ERROR = $1007
receive timeout
SO_GROUP_ID = $2001
WinSock 2 extension -- new options
SO_GROUP_PRIORITY = $2002
ID of a socket group
SO_KEEPALIVE = $0008
allow local address reuse
SO_LINGER = $0080
bypass hardware when possible
SO_MAXDG = $7009
Other NT-specific options.
SO_MAXPATHDG = $700A
SO_MAX_MSG_SIZE = $2003
the relative priority within a group
SO_OOBINLINE = $0100
linger on close if data present
SO_OPENTYPE = $7008
configuration info for service provider } { Option for opening sockets for synchronous access.
SO_PROTOCOL_INFO = SO_PROTOCOL_INFOA
WSAPROTOCOL_INFOW structure
SO_PROTOCOL_INFOA = $2004
maximum message size
SO_PROTOCOL_INFOW = $2005
WSAPROTOCOL_INFOA structure
SO_RCVBUF = $1002
send buffer size
SO_RCVLOWAT = $1004
send low-water mark
SO_RCVTIMEO = $1006
send timeout
SO_REUSEADDR = $0004
socket has had listen()
SO_SNDBUF = $1001
Additional options.
SO_SNDLOWAT = $1003
receive buffer size
SO_SNDTIMEO = $1005
receive low-water mark
SO_SYNCHRONOUS_ALERT = $10
SO_SYNCHRONOUS_NONALERT = $20
SO_TYPE = $1008
get error status and clear
SO_USELOOPBACK = $0040
permit sending of broadcast msgs
TCP_BSDURGENT = $7000
TCP_EXPEDITED_1122 = $0002
* Option to use with [gs]etsockopt at the IPPROTO_TCP level */
TCP_NODELAY = $0001
TCP options.
TH_NETDEV = $00000001
WinSock 2 extension -- manifest constants for SIO_TRANSLATE_HANDLE ioctl
TH_TAPI = $00000002
TRY_AGAIN = WSATRY_AGAIN
UDP_NOCHECKSUM = 1
* don't fragment IP datagrams */ Option to use with [gs]etsockopt at the IPPROTO_UDP level */
WSABASEERR = 10000
AHS - trudno powiedzieæ, ile powinno byæ } { All Windows Sockets error constants are biased by WSABASEERR from the "normal"
WSADESCRIPTION_LEN = 256
WSAEACCES = (WSABASEERR+13)
WSAEADDRINUSE = (WSABASEERR+48)
WSAEADDRNOTAVAIL = (WSABASEERR+49)
WSAEAFNOSUPPORT = (WSABASEERR+47)
WSAEALREADY = (WSABASEERR+37)
WSAEBADF = (WSABASEERR+9)
WSAECANCELLED = (WSABASEERR+103)
WSAECONNABORTED = (WSABASEERR+53)
WSAECONNREFUSED = (WSABASEERR+61)
WSAECONNRESET = (WSABASEERR+54)
WSAEDESTADDRREQ = (WSABASEERR+39)
WSAEDISCON = (WSABASEERR+101)
WSAEDQUOT = (WSABASEERR+69)
WSAEEINVALIDPROCTABLE = (WSABASEERR+104)
WSAEFAULT = (WSABASEERR+14)
WSAEHOSTDOWN = (WSABASEERR+64)
WSAEHOSTUNREACH = (WSABASEERR+65)
WSAEINPROGRESS = (WSABASEERR+36)
WSAEINTR = (WSABASEERR+4)
Windows Sockets definitions of regular Microsoft C error constants
WSAEINVAL = (WSABASEERR+22)
WSAEINVALIDPROVIDER = (WSABASEERR+105)
WSAEISCONN = (WSABASEERR+56)
WSAELOOP = (WSABASEERR+62)
WSAEMFILE = (WSABASEERR+24)
WSAEMSGSIZE = (WSABASEERR+40)
WSAENAMETOOLONG = (WSABASEERR+63)
WSAENETDOWN = (WSABASEERR+50)
WSAENETRESET = (WSABASEERR+52)
WSAENETUNREACH = (WSABASEERR+51)
WSAENOBUFS = (WSABASEERR+55)
WSAENOMORE = (WSABASEERR+102)
WSAENOPROTOOPT = (WSABASEERR+42)
WSAENOTCONN = (WSABASEERR+57)
WSAENOTEMPTY = (WSABASEERR+66)
WSAENOTSOCK = (WSABASEERR+38)
WSAEOPNOTSUPP = (WSABASEERR+45)
WSAEPFNOSUPPORT = (WSABASEERR+46)
WSAEPROCLIM = (WSABASEERR+67)
WSAEPROTONOSUPPORT = (WSABASEERR+43)
WSAEPROTOTYPE = (WSABASEERR+41)
WSAEPROVIDERFAILEDINIT = (WSABASEERR+106)
WSAEREFUSED = (WSABASEERR+112)
WSAEREMOTE = (WSABASEERR+71)
WSAESHUTDOWN = (WSABASEERR+58)
WSAESOCKTNOSUPPORT = (WSABASEERR+44)
WSAESTALE = (WSABASEERR+70)
WSAETIMEDOUT = (WSABASEERR+60)
WSAETOOMANYREFS = (WSABASEERR+59)
WSAEUSERS = (WSABASEERR+68)
WSAEWOULDBLOCK = (WSABASEERR+35)
Windows Sockets definitions of regular Berkeley error constants
WSAHOST_NOT_FOUND = (WSABASEERR+1001)
Error return codes from gethostbyname() and gethostbyaddr()
(when using the resolver). Note that these errors are
retrieved via WSAGetLastError() and must therefore follow
the rules for avoiding clashes with error numbers from
specific implementations or language run-time systems.
For this reason the codes are based at WSABASEERR+1001.
Note also that [WSA]NO_ADDRESS is defined only for
compatibility purposes. } { Authoritative Answer: Host not found
WSANOTINITIALISED = (WSABASEERR+93)
WSANO_ADDRESS = WSANO_DATA
no address, look for MX record
WSANO_DATA = (WSABASEERR+1004)
Valid name, no data record of requested type
WSANO_RECOVERY = (WSABASEERR+1003)
Non recoverable errors, FORMERR, REFUSED, NOTIMP
WSAPROTOCOL_LEN = 255
a list of dwCatalogEntryIds
WSASERVICE_NOT_FOUND = (WSABASEERR+108)
WSASYSCALLFAILURE = (WSABASEERR+107)
WSASYSNOTREADY = (WSABASEERR+91)
Extended Windows Sockets error constant definitions
WSASYS_STATUS_LEN = 128
WSATRY_AGAIN = (WSABASEERR+1002)
Non-Authoritative: Host not found, or SERVERFAIL
WSATYPE_NOT_FOUND = (WSABASEERR+109)
WSAVERNOTSUPPORTED = (WSABASEERR+92)
WSA_E_CANCELLED = (WSABASEERR+111)
WSA_E_NO_MORE = (WSABASEERR+110)
WSA_FLAG_MULTIPOINT_C_LEAF = $04
WSA_FLAG_MULTIPOINT_C_ROOT = $02
WSA_FLAG_MULTIPOINT_D_LEAF = $10
WSA_FLAG_MULTIPOINT_D_ROOT = $08
WSA_FLAG_OVERLAPPED = $01
WinSock 2 extension -- manifest constants for WSASocket()
WSA_INFINITE = INFINITE
WSA_INVALID_EVENT = WSAEVENT(NiL)
WSA_INVALID_HANDLE = ERROR_INVALID_HANDLE
WSA_INVALID_PARAMETER = ERROR_INVALID_PARAMETER
WSA_IO_INCOMPLETE = ERROR_IO_INCOMPLETE
WSA_IO_PENDING = ERROR_IO_PENDING
WSA_MAXIMUM_WAIT_EVENTS = MAXIMUM_WAIT_OBJECTS
WSA_NOT_ENOUGH_MEMORY = ERROR_NOT_ENOUGH_MEMORY
WSA_OPERATION_ABORTED = ERROR_OPERATION_ABORTED
WSA_WAIT_EVENT_0 = WAIT_OBJECT_0
ahs
WSA_WAIT_FAILED = DWORD($FFFFFFFF)
WSA_WAIT_IO_COMPLETION = WAIT_IO_COMPLETION
WSA_WAIT_TIMEOUT = WAIT_TIMEOUT
XP1_CONNECTIONLESS = $00000001
Flag bit definitions for dwServiceFlags1
XP1_CONNECT_DATA = $00000080
XP1_DISCONNECT_DATA = $00000100
XP1_EXPEDITED_DATA = $00000040
XP1_GRACEFUL_CLOSE = $00000020
XP1_GUARANTEED_DELIVERY = $00000002
XP1_GUARANTEED_ORDER = $00000004
XP1_IFS_HANDLES = $00020000
XP1_INTERRUPT = $00004000
XP1_MESSAGE_ORIENTED = $00000008
XP1_MULTIPOINT_CONTROL_PLANE = $00000800
XP1_MULTIPOINT_DATA_PLANE = $00001000
XP1_PARTIAL_MESSAGE = $00040000
XP1_PSEUDO_STREAM = $00000010
XP1_QOS_SUPPORTED = $00002000
XP1_SUPPORT_BROADCAST = $00000200
XP1_SUPPORT_MULTIPOINT = $00000400
XP1_UNI_RECV = $00010000
XP1_UNI_SEND = $00008000