3 * Copyright 2012, 2013 MinGW.org project
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
12 * The above copyright notice and this permission notice (including the next
13 * paragraph) shall be included in all copies or substantial portions of the
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
26 #pragma GCC system_header
37 #define NS_PEER_BROWSE 3
39 #define NS_TCPIP_LOCAL 10
40 #define NS_TCPIP_HOSTS 11
57 #define SERVICE_REGISTER 1
58 #define SERVICE_DEREGISTER 2
59 #define SERVICE_FLUSH 3
60 #define SERVICE_FLAG_HARD 0x00000002
64 #if defined (_WINSOCK_H) || defined (_WINSOCK2_H) /* needed for LPSOCKADDR */
65 #ifndef __CSADDR_T_DEFINED /* also in winsock2.h, but not in winsock.h */
66 #define __CSADDR_T_DEFINED
67 typedef struct _SOCKET_ADDRESS {
68 LPSOCKADDR lpSockaddr;
70 } SOCKET_ADDRESS,*PSOCKET_ADDRESS,*LPSOCKET_ADDRESS;
71 typedef struct _CSADDR_INFO {
72 SOCKET_ADDRESS LocalAddr;
73 SOCKET_ADDRESS RemoteAddr;
76 } CSADDR_INFO,*PCSADDR_INFO,*LPCSADDR_INFO;
80 #ifndef __BLOB_T_DEFINED /* also in wtypes.h and winsock2.h */
81 #define __BLOB_T_DEFINED
82 typedef struct _BLOB {
85 } BLOB,*PBLOB,*LPBLOB;
88 typedef struct _SERVICE_ADDRESS {
91 DWORD dwAddressLength;
92 DWORD dwPrincipalLength;
96 typedef struct _SERVICE_ADDRESSES {
98 SERVICE_ADDRESS Addresses[1];
99 } SERVICE_ADDRESSES, *PSERVICE_ADDRESSES, *LPSERVICE_ADDRESSES;
100 typedef struct _SERVICE_INFOA {
101 LPGUID lpServiceType;
109 LPSERVICE_ADDRESSES lpServiceAddress;
110 BLOB ServiceSpecificInfo;
111 } SERVICE_INFOA, *LPSERVICE_INFOA;
112 typedef struct _SERVICE_INFOW {
113 LPGUID lpServiceType;
114 LPWSTR lpServiceName;
120 LPWSTR lpMachineName;
121 LPSERVICE_ADDRESSES lpServiceAddress;
122 BLOB ServiceSpecificInfo;
123 } SERVICE_INFOW, *LPSERVICE_INFOW;
125 typedef void *LPSERVICE_ASYNC_INFO;
126 INT WINAPI SetServiceA(DWORD,DWORD,DWORD,LPSERVICE_INFOA,LPSERVICE_ASYNC_INFO,LPDWORD);
127 INT WINAPI SetServiceW(DWORD,DWORD,DWORD,LPSERVICE_INFOW,LPSERVICE_ASYNC_INFO,LPDWORD);
128 INT WINAPI GetAddressByNameA(DWORD,LPGUID,LPSTR,LPINT,DWORD,LPSERVICE_ASYNC_INFO,LPVOID,LPDWORD,LPSTR,LPDWORD);
129 INT WINAPI GetAddressByNameW(DWORD,LPGUID,LPWSTR,LPINT,DWORD,LPSERVICE_ASYNC_INFO,LPVOID,LPDWORD,LPWSTR,LPDWORD);
131 typedef __AW(SERVICE_INFO) SERVICE_INFO, *LPSERVICE_INFO;
132 #define _SERVICE_INFO __AW(SERVICE_INFO)
133 #define SetService __AW(SetService)
134 #define GetAddressByName __AW(GetAddressByName)
136 #endif /* RC_INVOKED */
142 #endif /* _NSPAPI_H */