// Borland C++ Builder
// Copyright (c) 1995, 2005 by Borland Software Corporation
// All rights reserved

// (DO NOT EDIT: machine generated header) 'Inwship6.pas' rev: 10.00

#ifndef Inwship6HPP
#define Inwship6HPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member functions
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <Sysinit.hpp>	// Pascal unit
#include <Inwinsock2.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Inwship6
{
//-- type declarations -------------------------------------------------------
struct Taddrinfo;
typedef Taddrinfo *Paddrinfo;

typedef Paddrinfo *PPaddrinfo;

#pragma pack(push,1)
struct Taddrinfo
{
	
public:
	int ai_flags;
	int ai_family;
	int ai_socktype;
	int ai_protocol;
	unsigned ai_addrlen;
	char *ai_canonname;
	Inwinsock2::TSockAddrIn *ai_addr;
	Taddrinfo *ai_next;
} ;
#pragma pack(pop)

typedef int __stdcall (*Tgetaddrinfo)(char * NodeName, char * ServName, Paddrinfo Hints, PPaddrinfo addrinfo);

typedef int __stdcall (*Tgetnameinfo)(Inwinsock2::PSockAddr sa, unsigned salen, char * host, unsigned hostlen, char * serv, unsigned servlen, int flags);

typedef void __stdcall (*Tfreeaddrinfo)(Paddrinfo ai);

//-- var, const, procedure ---------------------------------------------------
#define Wship6_dll "Wship6.dll"
#define iphlpapi_dll "iphlpapi.dll"
static const Shortint AI_PASSIVE = 0x1;
static const Shortint AI_CANONNAME = 0x2;
static const Shortint AI_NUMERICHOST = 0x4;
static const Shortint EAI_ADDRFAMILY = 0x1;
static const Shortint EAI_AGAIN = 0x2;
static const Shortint EAI_BADFLAGS = 0x3;
static const Shortint EAI_FAIL = 0x4;
static const Shortint EAI_FAMILY = 0x5;
static const Shortint EAI_MEMORY = 0x6;
static const Shortint EAI_NODATA = 0x7;
static const Shortint EAI_NONAME = 0x8;
static const Shortint EAI_SERVICE = 0x9;
static const Shortint EAI_SOCKTYPE = 0xa;
static const Shortint EAI_SYSTEM = 0xb;
static const Word NI_MAXHOST = 0x401;
static const Shortint NI_MAXSERV = 0x20;
static const Shortint NI_NOFQDN = 0x1;
static const Shortint NI_NUMERICHOST = 0x2;
static const Shortint NI_NAMEREQD = 0x4;
static const Shortint NI_NUMERICSERV = 0x8;
static const Shortint NI_DGRAM = 0x10;
static const Shortint AI_V4MAPPED = 0x1;
static const Shortint AI_ALL = 0x2;
static const Shortint AI_ADDRCONFIG = 0x4;
static const Shortint AI_DEFAULT = 0x5;
static const Shortint IPV6_MULTICAST_IF = 0x9;
static const Shortint IPV6_MULTICAST_HOPS = 0xa;
static const Shortint IPV6_MULTICAST_LOOP = 0xb;
static const Shortint IPV6_ADD_MEMBERSHIP = 0xc;
static const Shortint IPV6_DROP_MEMBERSHIP = 0xd;
static const Shortint IPV6_JOIN_GROUP = 0xc;
static const Shortint IPV6_LEAVE_GROUP = 0xd;
static const Shortint UDP_CHECKSUM_COVERAGE = 0x14;
extern PACKAGE Tgetaddrinfo getaddrinfo;
extern PACKAGE Tgetnameinfo getnameinfo;
extern PACKAGE Tfreeaddrinfo freeaddrinfo;
extern PACKAGE bool IdIPv6Available;
extern PACKAGE int __fastcall gaiErrorToWsaError(const int gaiError);

}	/* namespace Inwship6 */
using namespace Inwship6;
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// Inwship6
