OSDN Git Service

Import w32api-3.17 source code on "legacy" branch.
[mingw/mingw-org-wsl.git] / w32api / include / nspapi.h
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 */