/* * WSOCK32 specific functions * * Copyright (C) 2002 Andrew Hughes * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ #include "config.h" #include #include "windef.h" #include "winbase.h" #include "winerror.h" #include "winsock2.h" #include "wtypes.h" #include "nspapi.h" #include "wine/debug.h" WINE_DEFAULT_DEBUG_CHANNEL(winsock); INT WINAPI GetAddressByNameA(DWORD dwNameSpace, LPGUID lpServiceType, LPSTR lpServiceName, LPINT lpiProtocols, DWORD dwResolution, LPSERVICE_ASYNC_INFO lpServiceAsyncInfo, LPVOID lpCsaddrBuffer, LPDWORD lpdwBufferLength, LPSTR lpAliasBuffer, LPDWORD lpdwAliasBufferLength) { FIXME("(0x%08lx, %s, %s, %p, 0x%08lx, %p, %p, %p, %p, %p) stub\n", dwNameSpace, debugstr_guid(lpServiceType), debugstr_a(lpServiceName), lpiProtocols, dwResolution, lpServiceAsyncInfo, lpCsaddrBuffer, lpdwBufferLength, lpAliasBuffer, lpdwAliasBufferLength); SetLastError(ERROR_CALL_NOT_IMPLEMENTED); return SOCKET_ERROR; } INT WINAPI GetAddressByNameW(DWORD dwNameSpace, LPGUID lpServiceType, LPWSTR lpServiceName, LPINT lpiProtocols, DWORD dwResolution, LPSERVICE_ASYNC_INFO lpServiceAsyncInfo, LPVOID lpCsaddrBuffer, LPDWORD lpdwBufferLength, LPWSTR lpAliasBuffer, LPDWORD lpdwAliasBufferLength) { FIXME("(0x%08lx, %s, %s, %p, 0x%08lx, %p, %p, %p, %p, %p) stub\n", dwNameSpace, debugstr_guid(lpServiceType), debugstr_w(lpServiceName), lpiProtocols, dwResolution, lpServiceAsyncInfo, lpCsaddrBuffer, lpdwBufferLength, lpAliasBuffer, lpdwAliasBufferLength); SetLastError(ERROR_CALL_NOT_IMPLEMENTED); return SOCKET_ERROR; } /****************************************************************************** * GetTypeByNameA [WSOCK32.1113] * * Retrieve a service type GUID for a network service specified by name. * * PARAMETERS * lpServiceName [I] NUL-terminated ASCII string that uniquely represents the name of the service * lpServiceType [O] Destination for the service type GUID * * RETURNS * Success: 0. lpServiceType contains the requested GUID * Failure: SOCKET_ERROR. GetLastError() can return ERROR_SERVICE_DOES_NOT_EXIST * * NOTES * Obsolete Microsoft-specific extension to Winsock 1.1. * Protocol-independent name resolution provides equivalent functionality in Winsock 2. * * BUGS * Unimplemented */ INT WINAPI GetTypeByNameA(LPSTR lpServiceName, LPGUID lpServiceType) { /* tell the user they've got a substandard implementation */ FIXME("wsock32: GetTypeByNameA(%p, %p): stub\n", lpServiceName, lpServiceType); /* some programs may be able to compensate if they know what happened */ SetLastError(ERROR_CALL_NOT_IMPLEMENTED); return SOCKET_ERROR; /* error value */ } /****************************************************************************** * GetTypeByNameW [WSOCK32.1114] * * See GetTypeByNameA. */ INT WINAPI GetTypeByNameW(LPWSTR lpServiceName, LPGUID lpServiceType) { /* tell the user they've got a substandard implementation */ FIXME("wsock32: GetTypeByNameW(%p, %p): stub\n", lpServiceName, lpServiceType); /* some programs may be able to compensate if they know what happened */ SetLastError(ERROR_CALL_NOT_IMPLEMENTED); return SOCKET_ERROR; /* error value */ } /****************************************************************************** * SetServiceA [WSOCK32.1117] * * Register or unregister a network service with one or more namespaces. * * PARAMETERS * dwNameSpace [I] Name space or set of name spaces within which the function will operate * dwOperation [I] Operation to perform * dwFlags [I] Flags to modify the function's operation * lpServiceInfo [I] Pointer to a ASCII SERVICE_INFO structure * lpServiceAsyncInfo [I] Reserved for future use. Must be NULL. * lpdwStatusFlags [O] Destination for function status information * * RETURNS * Success: 0. * Failure: SOCKET_ERROR. GetLastError() can return ERROR_ALREADY_REGISTERED * * NOTES * Obsolete Microsoft-specific extension to Winsock 1.1, * Protocol-independent name resolution provides equivalent functionality in Winsock 2. * * BUGS * Unimplemented. */ INT WINAPI SetServiceA(DWORD dwNameSpace, DWORD dwOperation, DWORD dwFlags, LPSERVICE_INFOA lpServiceInfo, LPSERVICE_ASYNC_INFO lpServiceAsyncInfo, LPDWORD lpdwStatusFlags) { /* tell the user they've got a substandard implementation */ FIXME("wsock32: SetServiceA(%lu, %lu, %lu, %p, %p, %p): stub\n", dwNameSpace, dwOperation, dwFlags, lpServiceInfo, lpServiceAsyncInfo, lpdwStatusFlags); /* some programs may be able to compensate if they know what happened */ SetLastError(ERROR_CALL_NOT_IMPLEMENTED); return SOCKET_ERROR; /* error value */ } /****************************************************************************** * SetServiceW [WSOCK32.1118] * * See SetServiceA. */ INT WINAPI SetServiceW(DWORD dwNameSpace, DWORD dwOperation, DWORD dwFlags, LPSERVICE_INFOW lpServiceInfo, LPSERVICE_ASYNC_INFO lpServiceAsyncInfo, LPDWORD lpdwStatusFlags) { /* tell the user they've got a substandard implementation */ FIXME("wsock32: SetServiceW(%lu, %lu, %lu, %p, %p, %p): stub\n", dwNameSpace, dwOperation, dwFlags, lpServiceInfo, lpServiceAsyncInfo, lpdwStatusFlags); /* some programs may be able to compensate if they know what happened */ SetLastError(ERROR_CALL_NOT_IMPLEMENTED); return SOCKET_ERROR; /* error value */ }