? patch-ntdll
? patch-commdlg
? patch-commdlg2
? colordlg-patch
? patch-wsock32
? dlls/ntdll/warnings
? dlls/wsock32/service.c
? tools/missing
Index: dlls/wsock32/Makefile.in
===================================================================
RCS file: /home/wine/wine/dlls/wsock32/Makefile.in,v
retrieving revision 1.8
diff -u -3 -p -u -r1.8 Makefile.in
--- dlls/wsock32/Makefile.in	17 May 2002 03:37:15 -0000	1.8
+++ dlls/wsock32/Makefile.in	24 Nov 2002 22:04:23 -0000
@@ -10,7 +10,8 @@ SYMBOLFILE = $(MODULE).tmp.o
 
 C_SRCS = \
 	protocol.c \
-	socket.c
+	socket.c \
+	service.c
 
 @MAKE_DLL_RULES@
 
Index: dlls/wsock32/wsock32.spec
===================================================================
RCS file: /home/wine/wine/dlls/wsock32/wsock32.spec,v
retrieving revision 1.11
diff -u -3 -p -u -r1.11 wsock32.spec
--- dlls/wsock32/wsock32.spec	21 Jun 2002 19:15:51 -0000	1.11
+++ dlls/wsock32/wsock32.spec	24 Nov 2002 22:04:23 -0000
@@ -64,12 +64,12 @@
 1110 stub GetAddressByNameW
 1111 stdcall EnumProtocolsA(ptr ptr ptr) EnumProtocolsA
 1112 stdcall EnumProtocolsW(ptr ptr ptr) EnumProtocolsW
-#1113 stub GetTypeByNameA
-#1114 stub GetTypeByNameW
+1113 stdcall GetTypeByNameA(str ptr) GetTypeByNameA
+1114 stdcall GetTypeByNameW(wstr ptr) GetTypeByNameW
 #1115 stub GetNameByTypeA
 #1116 stub GetNameByTypeW
-#1117 stub SetServiceA
-#1118 stub SetServiceW
+1117 stdcall SetServiceA(long long long ptr ptr ptr) SetServiceA
+1118 stdcall SetServiceW(long long long ptr ptr ptr) SetServiceW
 #1119 stub GetServiceA
 #1120 stub GetServiceW
 #1130 stub NPLoadNameSpaces
Index: include/nspapi.h
===================================================================
RCS file: /home/wine/wine/include/nspapi.h,v
retrieving revision 1.3
diff -u -3 -p -u -r1.3 nspapi.h
--- include/nspapi.h	31 May 2002 23:06:48 -0000	1.3
+++ include/nspapi.h	24 Nov 2002 22:04:24 -0000
@@ -22,6 +22,7 @@
 #define _WINE_NSPAPI_
 
 #include "windef.h"
+#include "wtypes.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -71,12 +72,103 @@ typedef  struct _PROTOCOL_INFOW
          LPWSTR  lpProtocol;
 } PROTOCOL_INFOW;
 
+typedef struct _SERVICE_ADDRESS 
+{
+        DWORD   dwAddressType;
+        DWORD   dwAddressFlags;
+        DWORD   dwAddressLength;
+        DWORD   dwPrincipalLength;
+        BYTE*   lpAddress;
+        BYTE*   lpPrincipal;
+} SERVICE_ADDRESS;
+
+typedef struct _SERVICE_ADDRESSES
+{
+        DWORD           dwAddressCount;
+        SERVICE_ADDRESS Addresses[1];
+} SERVICE_ADDRESSES, *LPSERVICE_ADDRESSES;
+
+typedef struct _SERVICE_INFOA
+{
+        LPGUID              lpServiceType;
+        LPSTR               lpServiceName;
+        LPSTR               lpComment;
+        LPSTR               lpLocale;
+        DWORD               dwDisplayHint;
+        DWORD               dwVersion;
+        DWORD               dwTime;
+        LPSTR               lpMachineName;
+        LPSERVICE_ADDRESSES lpServiceAddress;
+        BLOB                ServiceSpecificInfo;
+} SERVICE_INFOA, *LPSERVICE_INFOA;
+
+typedef struct _SERVICE_INFOW
+{
+        LPGUID              lpServiceType;
+        LPWSTR              lpServiceName;
+        LPWSTR              lpComment;
+        LPWSTR              lpLocale;
+        DWORD               dwDisplayHint;
+        DWORD               dwVersion;
+        DWORD               dwTime;
+        LPSTR               lpMachineName;
+        LPSERVICE_ADDRESSES lpServiceAddress;
+        BLOB                ServiceSpecificInfo; /* May point to SERVICE_TYPE_INFO_ABS */
+} SERVICE_INFOW, *LPSERVICE_INFOW;
+
+DECL_WINELIB_TYPE_AW(SERVICE_INFO);
+
+typedef struct _SERVICE_TYPE_VALUE_ABSA
+{
+        DWORD   dwNameSpace; /* Name space or set of name spaces */
+        DWORD   dwValueType; /* Type of the value data */
+        DWORD   dwValueSize; /* Size of the value data */
+        LPSTR   lpValueName; /* Name of the value */
+        PVOID   lpValue;     /* Pointer to the value data */
+} SERVICE_TYPE_VALUE_ABSA;
+
+typedef struct _SERVICE_TYPE_VALUE_ABSW
+{
+        DWORD   dwNameSpace; /* Name space or set of name spaces */
+        DWORD   dwValueType; /* Type of the value data */
+        DWORD   dwValueSize; /* Size of the value data */
+        LPWSTR  lpValueName; /* Name of the value */
+        PVOID   lpValue;     /* Pointer to the value data */
+} SERVICE_TYPE_VALUE_ABSW;
+
+DECL_WINELIB_TYPE_AW(SERVICE_TYPE_VALUE_ABS);
+
+typedef struct _SERVICE_TYPE_INFO_ABSA
+{
+        LPSTR                   lpTypeName;     /* Name of the network service type */
+        DWORD                   dwValueCount;   /* Number of SERVICE_TYPE_VALUE_ABS structures */
+        SERVICE_TYPE_VALUE_ABSA Values[1];      /* Array of SERVICE_TYPE_VALUE_ABS structures */
+} SERVICE_TYPE_INFO_ABSA;
+
+typedef struct _SERVICE_TYPE_INFO_ABSW
+{
+        LPWSTR                  lpTypeName;     /* Name of the network service type */
+        DWORD                   dwValueCount;   /* Number of SERVICE_TYPE_VALUE_ABS structures */
+        SERVICE_TYPE_VALUE_ABSW Values[1];      /* Array of SERVICE_TYPE_VALUE_ABS structures */
+} SERVICE_TYPE_INFO_ABSW;
+
+DECL_WINELIB_TYPE_AW(SERVICE_TYPE_INFO_ABS);
+
+typedef struct _SERVICE_ASYNC_INFO
+{
+} SERVICE_ASYNC_INFO, *LPSERVICE_ASYNC_INFO;    /* Reserved for future use.  Pointer must be set to NULL. */
 
 /*
  * function prototypes
  */
-
-
+INT WINAPI GetTypeByNameA(LPSTR lpServiceName, LPGUID lpServiceType);
+INT WINAPI GetTypeByNameW(LPWSTR lpServiceName, LPGUID lpServiceType);
+#define GetTypeByName WINELIB_NAME_AW(GetTypeByName)
+INT WINAPI SetServiceA(DWORD dwNameSpace, DWORD dwOperation, DWORD dwFlags, LPSERVICE_INFOA lpServiceInfo,
+                       LPSERVICE_ASYNC_INFO lpServiceAsyncInfo, LPDWORD lpdwStatusFlags);
+INT WINAPI SetServiceW(DWORD dwNameSpace, DWORD dwOperation, DWORD dwFlags, LPSERVICE_INFOW lpServiceInfo,
+                       LPSERVICE_ASYNC_INFO lpServiceAsyncInfo, LPDWORD lpdwStatusFlags);
+#define SetService WINELIB_NAME_AW(SetService)
 
 #ifdef __cplusplus
 }      /* extern "C" */
