Reactos
1#ifndef _NSPAPI_H
2#define _NSPAPI_H
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8#define NS_ALL 0
9
10#define NS_SAP 1
11#define NS_NDS 2
12#define NS_PEER_BROWSE 3
13
14#define NS_TCPIP_LOCAL 10
15#define NS_TCPIP_HOSTS 11
16#define NS_DNS 12
17#define NS_NETBT 13
18#define NS_WINS 14
19
20#define NS_NBP 20
21
22#define NS_MS 30
23#define NS_STDA 31
24#define NS_NTDS 32
25
26#define NS_X500 40
27#define NS_NIS 41
28#define NS_NISPLUS 42
29
30#define NS_WRQ 50
31
32#define SERVICE_REGISTER 1
33#define SERVICE_DEREGISTER 2
34#define SERVICE_FLUSH 3
35#define SERVICE_FLAG_HARD 0x00000002
36
37#ifndef RC_INVOKED
38
39#if defined (_WINSOCKAPI_) || defined (_WINSOCK2API_) /* needed for LPSOCKADDR */
40#ifndef __CSADDR_DEFINED__ /* also in winsock2.h, but not in winsock.h */
41#define __CSADDR_DEFINED__
42typedef struct _SOCKET_ADDRESS {
43 LPSOCKADDR lpSockaddr;
44 INT iSockaddrLength;
45} SOCKET_ADDRESS,*PSOCKET_ADDRESS,*LPSOCKET_ADDRESS;
46typedef struct _CSADDR_INFO {
47 SOCKET_ADDRESS LocalAddr;
48 SOCKET_ADDRESS RemoteAddr;
49 INT iSocketType;
50 INT iProtocol;
51} CSADDR_INFO,*PCSADDR_INFO,*LPCSADDR_INFO;
52#endif
53#endif
54
55#ifndef __BLOB_T_DEFINED /* also in wtypes.h and winsock2.h */
56#define __BLOB_T_DEFINED
57typedef struct _BLOB {
58 ULONG cbSize;
59 BYTE *pBlobData;
60} BLOB,*PBLOB,*LPBLOB;
61#endif
62
63typedef struct _SERVICE_ADDRESS {
64 DWORD dwAddressType;
65 DWORD dwAddressFlags;
66 DWORD dwAddressLength;
67 DWORD dwPrincipalLength;
68 BYTE *lpAddress;
69 BYTE *lpPrincipal;
70} SERVICE_ADDRESS;
71typedef struct _SERVICE_ADDRESSES {
72 DWORD dwAddressCount;
73 SERVICE_ADDRESS Addresses[1];
74} SERVICE_ADDRESSES, *PSERVICE_ADDRESSES, *LPSERVICE_ADDRESSES;
75typedef struct _SERVICE_INFOA {
76 LPGUID lpServiceType;
77 LPSTR lpServiceName;
78 LPSTR lpComment;
79 LPSTR lpLocale;
80 DWORD dwDisplayHint;
81 DWORD dwVersion;
82 DWORD dwTime;
83 LPSTR lpMachineName;
84 LPSERVICE_ADDRESSES lpServiceAddress;
85 BLOB ServiceSpecificInfo;
86} SERVICE_INFOA, *LPSERVICE_INFOA;
87typedef struct _SERVICE_INFOW {
88 LPGUID lpServiceType;
89 LPWSTR lpServiceName;
90 LPWSTR lpComment;
91 LPWSTR lpLocale;
92 DWORD dwDisplayHint;
93 DWORD dwVersion;
94 DWORD dwTime;
95 LPWSTR lpMachineName;
96 LPSERVICE_ADDRESSES lpServiceAddress;
97 BLOB ServiceSpecificInfo;
98} SERVICE_INFOW, *LPSERVICE_INFOW;
99
100typedef void *LPSERVICE_ASYNC_INFO;
101INT WINAPI SetServiceA(DWORD,DWORD,DWORD,LPSERVICE_INFOA,LPSERVICE_ASYNC_INFO,LPDWORD);
102INT WINAPI SetServiceW(DWORD,DWORD,DWORD,LPSERVICE_INFOW,LPSERVICE_ASYNC_INFO,LPDWORD);
103INT WINAPI GetAddressByNameA(DWORD,LPGUID,LPSTR,LPINT,DWORD,LPSERVICE_ASYNC_INFO,LPVOID,LPDWORD,LPSTR,LPDWORD);
104INT WINAPI GetAddressByNameW(DWORD,LPGUID,LPWSTR,LPINT,DWORD,LPSERVICE_ASYNC_INFO,LPVOID,LPDWORD,LPWSTR,LPDWORD);
105
106#ifdef UNICODE
107typedef SERVICE_INFOW SERVICE_INFO, *LPSERVICE_INFO;
108#define _SERVICE_INFO SERVICE_INFOW
109#define SetService SetServiceW
110#define GetAddressByName GetAddressByNameW
111#else
112typedef SERVICE_INFOA SERVICE_INFO, *LPSERVICE_INFO;
113#define _SERVICE_INFO SERVICE_INFOA
114#define SetService SetServiceA
115#define GetAddressByName GetAddressByNameA
116#endif
117
118#endif /* RC_INVOKED */
119
120#ifdef __cplusplus
121}
122#endif
123#endif /* _NSPAPI_H */