WSALookupServiceBegin stubs.

Rein Klazes rklazes at xs4all.nl
Sun Apr 4 13:13:15 CDT 2004


Hi,

Crash reported in the news group.

Changelog:
	dlls/winsock	: ws2_32.spec, socket.c
	include		: wtypes.h, winsock2.h
	
	Stub implementation for WSALookupServiceBeginA/W

Rein.
-- 
Rein Klazes
rklazes at xs4all.nl
-------------- next part --------------
--- wine/dlls/winsock/ws2_32.spec	2004-01-28 21:07:24.000000000 +0100
+++ mywine/dlls/winsock/ws2_32.spec	2004-04-03 13:19:24.000000000 +0200
@@ -60,8 +60,8 @@
 56  stdcall  getservbyport(long str) WS_getservbyport
 57  stdcall  gethostname(ptr long) WS_gethostname
 58  stdcall  WSAJoinLeaf(long ptr long ptr ptr ptr ptr long)
-59  stub     WSALookupServiceBeginA
-60  stub     WSALookupServiceBeginW
+59  stdcall  WSALookupServiceBeginA(ptr long ptr)
+60  stdcall  WSALookupServiceBeginW(ptr long ptr)
 61  stub     WSALookupServiceEnd
 62  stub     WSALookupServiceNextA
 63  stub     WSALookupServiceNextW
--- wine/dlls/winsock/socket.c	2004-03-01 22:32:02.000000000 +0100
+++ mywine/dlls/winsock/socket.c	2004-04-03 13:33:03.000000000 +0200
@@ -3470,3 +3470,29 @@
     FIXME("(%s, %x, %p, %p, %p) Stub!\n", AddressString, AddressFamily, lpProtocolInfo, lpAddress, lpAddressLength);
     return 0;
 }
+
+/***********************************************************************
+ *              WSALookupServiceBeginA                       (WS2_32.59)
+ */
+INT WINAPI WSALookupServiceBeginA( LPWSAQUERYSETA lpqsRestrictions,
+                                   DWORD dwControlFlags,
+                                   LPHANDLE lphLookup)
+{
+    FIXME("(%p 0x%08lx %p) Stub!\n", lpqsRestrictions, dwControlFlags,
+            lphLookup);
+    WSASetLastError(WSA_NOT_ENOUGH_MEMORY);
+    return SOCKET_ERROR;
+}
+
+/***********************************************************************
+ *              WSALookupServiceBeginW                       (WS2_32.60)
+ */
+INT WINAPI WSALookupServiceBeginW( LPWSAQUERYSETW lpqsRestrictions,
+                                   DWORD dwControlFlags,
+                                   LPHANDLE lphLookup)
+{
+    FIXME("(%p 0x%08lx %p) Stub!\n", lpqsRestrictions, dwControlFlags,
+            lphLookup);
+    WSASetLastError(WSA_NOT_ENOUGH_MEMORY);
+    return SOCKET_ERROR;
+}
--- wine/include/wtypes.h	2004-01-23 23:51:42.000000000 +0100
+++ mywine/include/wtypes.h	2004-04-03 16:26:05.000000000 +0200
@@ -691,10 +691,15 @@
     BYTE *pData;
 } BSTRBLOB, *LPBSTRBLOB;
 
+#ifndef _tagBLOB_DEFINED
+#define _tagBLOB_DEFINED
+#define _BLOB_DEFINED
+#define _LPBLOB_DEFINED
 typedef struct tagBLOB {
     ULONG cbSize;
     BYTE *pBlobData;
 } BLOB, *LPBLOB;
+#endif
 
 typedef struct tagCLIPDATA {
     ULONG cbSize;
--- wine/include/winsock2.h	2004-03-02 21:53:31.000000000 +0100
+++ mywine/include/winsock2.h	2004-04-03 16:16:38.000000000 +0200
@@ -317,7 +317,7 @@
        unsigned int      TokenBucketSize;
        unsigned int      PeakBandwidth;
        unsigned int      Latency;
-        unsigned int      DelayVariation;
+       unsigned int      DelayVariation;
        SERVICETYPE       ServiceType;
        unsigned int      MaxSduSize;
        unsigned int      MinimumPolicedSize;
@@ -349,6 +349,95 @@
     DWORD dwFlags
 );
 
+#ifndef _tagBLOB_DEFINED
+#define _tagBLOB_DEFINED
+#define _BLOB_DEFINED
+#define _LPBLOB_DEFINED
+typedef struct _BLOB {
+        ULONG   cbSize ;
+    /* [size_is(cbSize)] */BYTE *pBlobData;
+} BLOB, *LPBLOB ;
+#endif
+
+#ifndef __CSADDR_DEFINED__
+#define __CSADDR_DEFINED__
+
+typedef struct _SOCKET_ADDRESS {
+        LPSOCKADDR      lpSockaddr;
+        INT             iSockaddrLength;
+} SOCKET_ADDRESS, *PSOCKET_ADDRESS, *LPSOCKET_ADDRESS;
+
+typedef struct _CSADDR_INFO {
+        SOCKET_ADDRESS  LocalAddr;
+        SOCKET_ADDRESS  RemoteAddr;
+        INT             iSocketType;
+        INT             iProtocol;
+} CSADDR_INFO, *PCSADDR_INFO, *LPCSADDR_INFO;
+#endif
+
+/*socket address list */
+typedef struct _SOCKET_ADDRESS_LIST {
+        INT             iAddressCount;
+        SOCKET_ADDRESS  Address[1];
+} SOCKET_ADDRESS_LIST, *LPSOCKET_ADDRESS_LIST;
+
+/*   addressfamily protocol pairs */
+typedef struct _AFPROTOCOLS {
+        INT     iAddressFamily;
+        INT     iProtocol;
+} AFPROTOCOLS, *PAFPROTOCOLS, *LPAFPROTOCOLS;
+
+/* client query definitions */
+typedef enum _WSAEcomparator {
+        COMP_EQUAL = 0,
+        COMP_NOTLESS
+} WSAECOMPARATOR, *PWSAECOMPARATOR, *LPWSAECOMPARATOR;
+
+typedef struct _WSAVersion {
+        DWORD           dwVersion;
+        WSAECOMPARATOR  ecHow;
+} WSAVERSION, *PWSAVERSION, *LPWSAVERSION;
+
+
+typedef struct _WSAQuerySetA {
+        DWORD           dwSize;
+        LPSTR           lpszServiceInstanceName;
+        LPGUID          lpServiceClassId;
+        LPWSAVERSION    lpVersion;
+        LPSTR           lpszComment;
+        DWORD           dwNameSpace;
+        LPGUID          lpNSProviderId;
+        LPSTR           lpszContext;
+        DWORD           dwNumberOfProtocols;
+        LPAFPROTOCOLS   lpafpProtocols;
+        LPSTR           lpszQueryString;
+        DWORD           dwNumberOfCsAddrs;
+        LPCSADDR_INFO   lpcsaBuffer;
+        DWORD           dwOutputFlags;
+        LPBLOB          lpBlob;
+} WSAQUERYSETA, *PWSAQUERYSETA, *LPWSAQUERYSETA;
+
+typedef struct _WSAQuerySetW {
+        DWORD           dwSize;
+        LPWSTR          lpszServiceInstanceName;
+        LPGUID          lpServiceClassId;
+        LPWSAVERSION    lpVersion;
+        LPWSTR          lpszComment;
+        DWORD           dwNameSpace;
+        LPGUID          lpNSProviderId;
+        LPWSTR          lpszContext;
+        DWORD           dwNumberOfProtocols;
+        LPAFPROTOCOLS   lpafpProtocols;
+        LPWSTR          lpszQueryString;
+        DWORD           dwNumberOfCsAddrs;
+        LPCSADDR_INFO   lpcsaBuffer;
+        DWORD           dwOutputFlags;
+        LPBLOB          lpBlob;
+} WSAQUERYSETW, *PWSAQUERYSETW, *LPWSAQUERYSETW;
+
+DECL_WINELIB_TYPE_AW(WSAQUERYSET)
+DECL_WINELIB_TYPE_AW(PWSAQUERYSET)
+DECL_WINELIB_TYPE_AW(LPWSAQUERYSET)
 
 
 /*
@@ -447,8 +536,8 @@
 #define WSAInstallServiceClass     WINELIB_NAME_AW(WSAInstallServiceClass)
 int WINAPI WSAIoctl(SOCKET,DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE);
 SOCKET WINAPI WSAJoinLeaf(SOCKET,const struct WS(sockaddr)*,int,LPWSABUF,LPWSABUF,LPQOS,LPQOS,DWORD);
-/* WSALookupServiceBeginA */
-/* WSALookupServiceBeginW */
+INT WINAPI WSALookupServiceBeginA( LPWSAQUERYSETA, DWORD, LPHANDLE);
+INT WINAPI WSALookupServiceBeginW( LPWSAQUERYSETW, DWORD, LPHANDLE);
 /* WSALookupServiceEnd */
 /* WSALookupServiceNextA */
 /* WSALookupServiceNextW */


More information about the wine-patches mailing list