' ########################################################################################
' Microsoft Windows
' File: wsipx.inc
' Copyright (c) 2011 Jos? Roca
' Portions Copyright (c) Microsoft Corporation.
' All Rights Reserved.
' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
' EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
' MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' ########################################################################################
#IF NOT %DEF(PBX_WSipx_PBI)
#DEFINE PBX_WSipx_PBI
%EQUATE `WSIPX_INC = 1
'/*
' * wsipx.h
' *
' * Microsoft Windows
' * Copyright (C) Microsoft Corporation, 1992-1999.
' *
' * Windows Sockets include file for IPX/SPX. This file contains all
' * standardized IPX/SPX information. Include this header file after
' * winsock.h.
' *
' * To open an IPX socket, call socket() with an address family of
' * AF_IPX, a socket type of SOCK_DGRAM, and protocol NSPROTO_IPX.
' * Note that the protocol value must be specified, it cannot be 0.
' * All IPX packets are sent with the packet type field of the IPX
' * header set to 0.
' *
' * To open an SPX or SPXII socket, call socket() with an address
' * family of AF_IPX, socket type of SOCK_SEQPACKET or SOCK_STREAM,
' * and protocol of NSPROTO_SPX or NSPROTO_SPXII. If SOCK_SEQPACKET
' * is specified, then the end of message bit is respected, and
' * recv() calls are not completed until a packet is received with
' * the end of message bit set. If SOCK_STREAM is specified, then
' * the end of message bit is not respected, and recv() completes
' * as soon as any data is received, regardless of the setting of the
' * end of message bit. Send coalescing is never performed, and sends
' * smaller than a single packet are always sent with the end of
' * message bit set. Sends larger than a single packet are packetized
' * with the end of message bit set on only the last packet of the
' * send.
' *
' */
'/*
' * This is the structure of the SOCKADDR structure for IPX and SPX.
' *
' */
' // Size = 14 bytes
TYPE SOCKADDR_IPX BYTE
 sa_family AS INTEGER ' short
 sa_netnum(3) AS BYTE ' char [4];
 sa_nodenum(5) AS BYTE ' char [6];
 sa_socket AS WORD ' unsigned short
END TYPE
'/*
' * Protocol families used in the "protocol" parameter of the socket() API.
' *
' */
%EQUATE `NSPROTO_IPX = 1000
%EQUATE `NSPROTO_SPX = 1256
%EQUATE `NSPROTO_SPXII = 1257
#ENDIF
