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