| /* | 
 |  * 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 <stdarg.h> | 
 |  | 
 | #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); | 
 |  | 
 | /****************************************************************************** | 
 |  *          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 */  | 
 | } |