xref: /reactos/sdk/include/psdk/nspapi.h (revision c2c66aff)
1 #ifndef _NSPAPI_H
2 #define _NSPAPI_H
3 
4 #ifdef __cplusplus
5 extern "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__
42 typedef struct _SOCKET_ADDRESS {
43 	LPSOCKADDR lpSockaddr;
44 	INT iSockaddrLength;
45 } SOCKET_ADDRESS,*PSOCKET_ADDRESS,*LPSOCKET_ADDRESS;
46 typedef 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
57 typedef struct _BLOB {
58 	ULONG	cbSize;
59 	BYTE	*pBlobData;
60 } BLOB,*PBLOB,*LPBLOB;
61 #endif
62 
63 typedef struct _SERVICE_ADDRESS {
64 	DWORD dwAddressType;
65 	DWORD dwAddressFlags;
66 	DWORD dwAddressLength;
67 	DWORD dwPrincipalLength;
68 	BYTE *lpAddress;
69 	BYTE *lpPrincipal;
70 } SERVICE_ADDRESS;
71 typedef struct _SERVICE_ADDRESSES {
72 	DWORD dwAddressCount;
73 	SERVICE_ADDRESS Addresses[1];
74 } SERVICE_ADDRESSES, *PSERVICE_ADDRESSES, *LPSERVICE_ADDRESSES;
75 typedef 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;
87 typedef 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 
100 typedef void *LPSERVICE_ASYNC_INFO;
101 INT WINAPI SetServiceA(DWORD,DWORD,DWORD,LPSERVICE_INFOA,LPSERVICE_ASYNC_INFO,LPDWORD);
102 INT WINAPI SetServiceW(DWORD,DWORD,DWORD,LPSERVICE_INFOW,LPSERVICE_ASYNC_INFO,LPDWORD);
103 INT WINAPI GetAddressByNameA(DWORD,LPGUID,LPSTR,LPINT,DWORD,LPSERVICE_ASYNC_INFO,LPVOID,LPDWORD,LPSTR,LPDWORD);
104 INT WINAPI GetAddressByNameW(DWORD,LPGUID,LPWSTR,LPINT,DWORD,LPSERVICE_ASYNC_INFO,LPVOID,LPDWORD,LPWSTR,LPDWORD);
105 
106 #ifdef UNICODE
107 typedef SERVICE_INFOW SERVICE_INFO, *LPSERVICE_INFO;
108 #define _SERVICE_INFO SERVICE_INFOW
109 #define SetService SetServiceW
110 #define GetAddressByName GetAddressByNameW
111 #else
112 typedef 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 */
124