|  | /* | 
|  | * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | 
|  | */ | 
|  |  | 
|  | #include "config.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); | 
|  |  | 
|  | /****************************************************************************** | 
|  | *          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 */ | 
|  | } |