/*
 * mswsock.dll
 *
 * Copyright (c) TransGaming Technologies 2003
 * 
 */

#include "windef.h"
#include "winbase.h"
#include "winreg.h"
#include "wine/debug.h"
#include "winerror.h"
#include "winnt.h"

#include "winsock2.h"
#include "mswsock.h"

WINE_DEFAULT_DEBUG_CHANNEL(mswsock);

BOOL WINAPI MSWSOCK_Init(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
    TRACE("(0x%08x, %ld, %p)\n",hinstDLL,fdwReason,lpvReserved);

    if (fdwReason == DLL_PROCESS_ATTACH)
    {
        /* FIXME: Initialisation */
    }
    else if (fdwReason == DLL_PROCESS_DETACH)
    {
        /* FIXME: Cleanup */
    }

    return TRUE;
}


/******************************************************************
 *		AcceptEx (MSWSOCK.@)
 *
 *
 */
BOOL PASCAL MSWSOCK_AcceptEx(SOCKET sListenSocket,
                                 SOCKET sAcceptSocket,
                                 PVOID lpOutputBuffer,
                                 DWORD dwReceiveDataLength,
                                 DWORD dwLocalAddressLength,
                                 DWORD dwRemoteAddressLength,
                                 LPDWORD lpdwBytesReceived,
                                 LPOVERLAPPED lpOverlapped)
{
    FIXME(":stub\n");
    return 0;
}


/******************************************************************
 *		EnumProtocolsA (MSWSOCK.@)
 *
 *
 */
#if 0
__stdcall MSWSOCK_EnumProtocolsA()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		EnumProtocolsW (MSWSOCK.@)
 *
 *
 */
#if 0
__stdcall MSWSOCK_EnumProtocolsW()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		GetAcceptExSockaddrs (MSWSOCK.@)
 *
 *
 */
VOID PASCAL MSWSOCK_GetAcceptExSockaddrs(PVOID lpOutputBuffer,
                                             DWORD dwReceiveDataLength,
                                             DWORD dwLocalAddressLength,
                                             DWORD dwRemoteAddressLength,
                                             struct sockaddr ** LocalSockaddr,
                                             LPINT LocalSockaddrLength,
                                             struct sockaddr ** RemoteSockaddr,
                                             LPINT RemoteSockaddrLength)
{
    FIXME(":stub\n");
    return;
}


/******************************************************************
 *		GetAddressByNameA (MSWSOCK.@)
 *
 *
 */
#if 0
__stdcall MSWSOCK_GetAddressByNameA()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		GetAddressByNameW (MSWSOCK.@)
 *
 *
 */
#if 0
__stdcall MSWSOCK_GetAddressByNameW()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		GetNameByTypeA (MSWSOCK.@)
 *
 *
 */
#if 0
__stdcall MSWSOCK_GetNameByTypeA()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		GetNameByTypeW (MSWSOCK.@)
 *
 *
 */
#if 0
__stdcall MSWSOCK_GetNameByTypeW()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		GetServiceA (MSWSOCK.@)
 *
 *
 */
#if 0
__stdcall MSWSOCK_GetServiceA()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		GetServiceW (MSWSOCK.@)
 *
 *
 */
#if 0
__stdcall MSWSOCK_GetServiceW()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		GetTypeByNameA (MSWSOCK.@)
 *
 *
 */
#if 0
__stdcall MSWSOCK_GetTypeByNameA()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		GetTypeByNameW (MSWSOCK.@)
 *
 *
 */
#if 0
__stdcall MSWSOCK_GetTypeByNameW()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		MigrateWinsockConfiguration (MSWSOCK.@)
 *
 *
 */
#if 0
__stdcall MSWSOCK_MigrateWinsockConfiguration()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		NPLoadNameSpaces (MSWSOCK.@)
 *
 *
 */
#if 0
__stdcall MSWSOCK_NPLoadNameSpaces()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		SetServiceA (MSWSOCK.@)
 *
 *
 */
#if 0
__stdcall MSWSOCK_SetServiceA()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		SetServiceW (MSWSOCK.@)
 *
 *
 */
#if 0
__stdcall MSWSOCK_SetServiceW()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		TransmitFile (MSWSOCK.@)
 *
 *
 */
BOOL PASCAL MSWSOCK_TransmitFile(SOCKET hSocket,
                                     HANDLE hFile,
                                     DWORD nNumberOfBytesToWrite,
                                     DWORD nNumberOfBytesPerSend,
                                     LPOVERLAPPED lpOverlapped,
                                     LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers,
                                     DWORD dwReserved)
{
    FIXME(":stub\n");
    return 0;
}


/******************************************************************
 *		WSARecvEx (MSWSOCK.@)
 *
 *
 */
int PASCAL MSWSOCK_WSARecvEx(SOCKET s, char *buf, int len, int *flags)
{
    FIXME(":stub\n");
    return 0;
}


/******************************************************************
 *		dn_expand (MSWSOCK.@)
 *
 *
 */
#if 0
__stdcall MSWSOCK_dn_expand()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		getnetbyname (MSWSOCK.@)
 *
 *
 */
#if 0
__stdcall MSWSOCK_getnetbyname()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		inet_network (MSWSOCK.@)
 *
 *
 */
#if 0
__stdcall MSWSOCK_inet_network()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		rcmd (MSWSOCK.@)
 *
 *
 */
#if 0
__stdcall MSWSOCK_rcmd()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		rexec (MSWSOCK.@)
 *
 *
 */
#if 0
__stdcall MSWSOCK_rexec()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		rresvport (MSWSOCK.@)
 *
 *
 */
#if 0
__stdcall MSWSOCK_rresvport()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		s_perror (MSWSOCK.@)
 *
 *
 */
#if 0
__stdcall MSWSOCK_s_perror()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		sethostname (MSWSOCK.@)
 *
 *
 */
#if 0
__stdcall MSWSOCK_sethostname()
{
    /* @stub in .spec */
}
#endif


