From 947a74f40d1924da9b40fd0976a69e8536730158 Mon Sep 17 00:00:00 2001 From: Mike McCormack Date: Wed, 13 Nov 2002 19:42:23 +0000 Subject: [PATCH] Add stubs and declarations for WSAInstallServiceClassA/W. --- dlls/winsock/socket.c | 18 ++++++++++++++ dlls/winsock/ws2_32.spec | 4 ++-- include/winsock2.h | 52 ++++++++++++++++++++++++++++++++++++---- 3 files changed, 68 insertions(+), 6 deletions(-) diff --git a/dlls/winsock/socket.c b/dlls/winsock/socket.c index 81049f00231..5ac6f13611f 100644 --- a/dlls/winsock/socket.c +++ b/dlls/winsock/socket.c @@ -4207,3 +4207,21 @@ int WINAPI WSADuplicateSocketA( SOCKET s, DWORD dwProcessId, LPWSAPROTOCOL_INFOA lpProtocolInfo->dwServiceFlags4 = 0xff00ff00; /* magic */ return 0; } + +/*********************************************************************** + * WSAInstallServiceClassA (WS2_32.48) + */ +int WINAPI WSAInstallServiceClassA(LPWSASERVICECLASSINFOA info) +{ + FIXME("Request to install service %s\n",debugstr_a(info->lpszServiceClassName)); + return WSAEACCES; +} + +/*********************************************************************** + * WSAInstallServiceClassW (WS2_32.49) + */ +int WINAPI WSAInstallServiceClassW(LPWSASERVICECLASSINFOW info) +{ + FIXME("Request to install service %s\n",debugstr_w(info->lpszServiceClassName)); + return WSAEACCES; +} diff --git a/dlls/winsock/ws2_32.spec b/dlls/winsock/ws2_32.spec index c3017c08295..ad755852920 100644 --- a/dlls/winsock/ws2_32.spec +++ b/dlls/winsock/ws2_32.spec @@ -49,8 +49,8 @@ 45 stub WSAGetServiceClassNameByClassIdW 46 stub WSAHtonl 47 stub WSAHtons -48 stub WSAInstallServiceClassA -49 stub WSAInstallServiceClassW +48 stdcall WSAInstallServiceClassA(ptr) WSAInstallServiceClassA +49 stdcall WSAInstallServiceClassW(ptr) WSAInstallServiceClassW 50 stdcall WSAIoctl(long long ptr long ptr long ptr ptr ptr) WSAIoctl 51 stdcall gethostbyaddr(ptr long long) WS_gethostbyaddr 52 stdcall gethostbyname(str) WS_gethostbyname diff --git a/include/winsock2.h b/include/winsock2.h index 89dc4c638a1..53798c96cc4 100644 --- a/include/winsock2.h +++ b/include/winsock2.h @@ -213,6 +213,49 @@ typedef struct _WSANETWORKEVENTS int iErrorCode[FD_MAX_EVENTS]; } WSANETWORKEVENTS, *LPWSANETWORKEVENTS; +typedef struct _WSANSClassInfoA +{ + LPSTR lpszName; + DWORD dwNameSpace; + DWORD dwValueType; + DWORD dwValueSize; + LPVOID lpValue; +} WSANSCLASSINFOA, *PWSANSCLASSINFOA, *LPWSANSCLASSINFOA; + +typedef struct _WSANSClassInfoW +{ + LPSTR lpszName; + DWORD dwNameSpace; + DWORD dwValueType; + DWORD dwValueSize; + LPVOID lpValue; +} WSANSCLASSINFOW, *PWSANSCLASSINFOW, *LPWSANSCLASSINFOW; + +DECL_WINELIB_TYPE_AW(WSANSCLASSINFO) +DECL_WINELIB_TYPE_AW(PWSANSCLASSINFO) +DECL_WINELIB_TYPE_AW(LPWSANSCLASSINFO) + +typedef struct _WSAServiceClassInfoA +{ + LPGUID lpServiceClassId; + LPSTR lpszServiceClassName; + DWORD dwCount; + LPWSANSCLASSINFOA lpClassInfos; +} WSASERVICECLASSINFOA, *PWSASERVICECLASSINFOA, *LPWSASERVICECLASSINFOA; + +typedef struct _WSAServiceClassInfoW +{ + LPGUID lpServiceClassId; + LPWSTR lpszServiceClassName; + DWORD dwCount; + LPWSANSCLASSINFOW lpClassInfos; +} WSASERVICECLASSINFOW, *PWSASERVICECLASSINFOW, *LPWSASERVICECLASSINFOW; + + +DECL_WINELIB_TYPE_AW(WSASERVICECLASSINFO) +DECL_WINELIB_TYPE_AW(PWSASERVICECLASSINFO) +DECL_WINELIB_TYPE_AW(LPWSASERVICECLASSINFO) + typedef struct _WSABUF { ULONG len; @@ -379,8 +422,9 @@ BOOL WINAPI WSAGetOverlappedResult(SOCKET,LPWSAOVERLAPPED,LPDWORD,BOOL,LPDWORD); /* WSAGetServiceClassNameByClassIdW */ int WINAPI WSAHtonl(SOCKET,u_long,u_long*); int WINAPI WSAHtons(SOCKET,u_short,u_short*); -/* WSAInstallServiceClassA */ -/* WSAInstallServiceClassW */ +int WINAPI WSAInstallServiceClassA(LPWSASERVICECLASSINFOA); +int WINAPI WSAInstallServiceClassW(LPWSASERVICECLASSINFOW); +#define WSAInstallServiceClass WINELIB_NAME_AW(WSAInstallServiceClass) int WINAPI WSAIoctl(SOCKET,DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE); /* WSAJoinLeaf */ /* WSALookupServiceBeginA */ @@ -444,8 +488,8 @@ typedef BOOL (WINAPI *LPFN_WSAGETOVERLAPPEDRESULT)(SOCKET,LPWSAOVERLAPPED,LPDWOR /* WSAGetServiceClassNameByClassIdW */ typedef int (WINAPI *LPFN_WSAHTONL)(SOCKET,u_long,u_long*); typedef int (WINAPI *LPFN_WSAHTONS)(SOCKET,u_short,u_short*); -/* WSAInstallServiceClassA */ -/* WSAInstallServiceClassW */ +typedef int (WINAPI LPFN_WSAINSTALLSERVICECLASSA)(LPWSASERVICECLASSINFOA); +typedef int (WINAPI LPFN_WSAINSTALLSERVICECLASSW)(LPWSASERVICECLASSINFOW); typedef int (WINAPI *LPFN_WSAIOCTL)(SOCKET,DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE); /* WSAJoinLeaf */ /* WSALookupServiceBeginA */