oleaut32: Load string constants correctly from SLTG typelibs.
[wine] / dlls / mswsock / mswsock.c
1 /*
2  * MSWSOCK specific functions
3  *
4  * Copyright (C) 2003 AndrĂ© Johansen
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19  */
20
21 #include "config.h"
22
23 #include <stdarg.h>
24
25 #include "windef.h"
26 #include "winbase.h"
27 #include "winsock2.h"
28 #include "mswsock.h"
29
30 #include "wine/debug.h"
31
32 WINE_DEFAULT_DEBUG_CHANNEL(mswsock);
33
34 /***********************************************************************
35  *              AcceptEx (MSWSOCK.@)
36  *
37  * This function is used to accept a new connection, get the local and remote
38  * address, and receive the initial block of data sent by the client.
39  *
40  * TODO
41  *  This function is currently implemented as a stub.
42  */
43
44 BOOL WINAPI AcceptEx(
45         SOCKET sListenSocket, /* [in] Descriptor identifying a socket that 
46                                  has already been called with the listen
47                                  function */
48         SOCKET sAcceptSocket, /* [in] Descriptor identifying a socket on 
49                                  which to accept an incoming connection */
50         PVOID lpOutputBuffer, /* [in]  Pointer to a buffer */
51         DWORD dwReceiveDataLength, /* [in] Number of bytes in lpOutputBuffer
52                                       that will be used for actual receive data
53                                       at the beginning of the buffer */
54         DWORD dwLocalAddressLength, /* [in] Number of bytes reserved for the
55                                        local address information */
56         DWORD dwRemoteAddressLength, /* [in] Number of bytes reserved for the
57                                         remote address information */
58         LPDWORD lpdwBytesReceived, /* [out] Pointer to a DWORD that receives
59                                       the count of bytes received */
60         LPOVERLAPPED lpOverlapped) /* [in] Specify in order to achieve an 
61                                       overlapped (asynchronous) I/O 
62                                       operation */
63 {
64     FIXME("(listen=%ld, accept=%ld, %p, %d, %d, %d, %p, %p), not implemented\n",
65         sListenSocket,sAcceptSocket,lpOutputBuffer,dwReceiveDataLength,
66         dwLocalAddressLength,dwRemoteAddressLength,lpdwBytesReceived,lpOverlapped
67     );
68     return FALSE;
69 }
70
71 /***********************************************************************
72  *              GetAcceptExSockaddrs (MSWSOCK.@)
73  */
74 VOID WINAPI GetAcceptExSockaddrs(
75         PVOID lpOutputBuffer, /* [in] Pointer to a buffer */
76         DWORD dwReceiveDataLength, /* [in] Number of bytes in the buffer used
77                                       for receiving the first data */
78         DWORD dwLocalAddressLength, /* [in] Number of bytes reserved for the
79                                        local address information */
80         DWORD dwRemoteAddressLength, /* [in] Number of bytes reserved for the
81                                         remote address information */
82         struct sockaddr **LocalSockaddr, /* [out] Pointer to the sockaddr
83                                             structure that receives the local
84                                             address of the connection  */
85         LPINT LocalSockaddrLength, /* [out] Size in bytes of the local
86                                       address */
87         struct sockaddr **RemoteSockaddr, /* [out] Pointer to the sockaddr
88                                              structure that receives the remote
89                                              address of the connection */
90         LPINT RemoteSockaddrLength) /* [out] Size in bytes of the remote address */
91 {
92     FIXME("not implemented\n");
93 }
94
95 /***********************************************************************
96  *              TransmitFile (MSWSOCK.@)
97  *
98  * This function is used to transmit a file over socket.
99  *
100  * TODO
101  *  This function is currently implemented as a stub.
102  */
103
104 BOOL WINAPI TransmitFile(
105         SOCKET hSocket, /* [in] Handle to a connected socket */
106         HANDLE hFile,   /* [in] Handle to the open file that should be
107                            transmitted */
108         DWORD nNumberOfBytesToWrite, /* [in] Number of file bytes to 
109                                         transmit */
110         DWORD nNumberOfBytesPerSend, /* [in] Size in bytes of each block of
111                                          data sent in each send operation */
112         LPOVERLAPPED lpOverlapped, /* [in] Specify in order to achieve an 
113                                       overlapped (asynchronous) I/O 
114                                       operation */
115         LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers, 
116                 /* [in] Contains pointers to data to send before and after
117                    the file data is sent */
118         DWORD dwFlags) /* [in] Flags */
119 {
120     FIXME("not implemented\n");
121
122     return FALSE;
123 }
124
125 /***********************************************************************
126  *              WSARecvEx (MSWSOCK.@)
127  */
128 INT WINAPI WSARecvEx(
129         SOCKET s,   /* [in] Descriptor identifying a connected socket */
130         char *buf,  /* [out] Buffer for the incoming data */
131         INT len,    /* [in] Length of buf, in bytes */
132         INT *flags) /* [in/out] Indicator specifying whether the message is
133                        fully or partially received for datagram sockets */
134 {
135     FIXME("not implemented\n");
136     
137     return SOCKET_ERROR;
138 }