| /** | |
| * This file has no copyright assigned and is placed in the Public Domain. | |
| * This file is part of the w64 mingw-runtime package. | |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. | |
| */ | |
| #ifndef _NSPAPI_INCLUDED | |
| #define _NSPAPI_INCLUDED | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| #ifndef _tagBLOB_DEFINED | |
| #define _tagBLOB_DEFINED | |
| #define _BLOB_DEFINED | |
| #define _LPBLOB_DEFINED | |
| typedef struct _BLOB { | |
| ULONG cbSize; | |
| BYTE *pBlobData; | |
| } BLOB,*LPBLOB; | |
| #endif | |
| #ifndef GUID_DEFINED | |
| #define GUID_DEFINED | |
| typedef struct _GUID { | |
| unsigned long Data1; | |
| unsigned short Data2; | |
| unsigned short Data3; | |
| unsigned char Data4[8]; | |
| } GUID; | |
| #endif | |
| #ifndef __LPGUID_DEFINED__ | |
| #define __LPGUID_DEFINED__ | |
| typedef GUID *LPGUID; | |
| #endif | |
| #define SERVICE_RESOURCE (0x00000001) | |
| #define SERVICE_SERVICE (0x00000002) | |
| #define SERVICE_LOCAL (0x00000004) | |
| #define SERVICE_REGISTER (0x00000001) | |
| #define SERVICE_DEREGISTER (0x00000002) | |
| #define SERVICE_FLUSH (0x00000003) | |
| #define SERVICE_ADD_TYPE (0x00000004) | |
| #define SERVICE_DELETE_TYPE (0x00000005) | |
| #define SERVICE_FLAG_DEFER (0x00000001) | |
| #define SERVICE_FLAG_HARD (0x00000002) | |
| #define PROP_COMMENT (0x00000001) | |
| #define PROP_LOCALE (0x00000002) | |
| #define PROP_DISPLAY_HINT (0x00000004) | |
| #define PROP_VERSION (0x00000008) | |
| #define PROP_START_TIME (0x00000010) | |
| #define PROP_MACHINE (0x00000020) | |
| #define PROP_ADDRESSES (0x00000100) | |
| #define PROP_SD (0x00000200) | |
| #define PROP_ALL (0x80000000) | |
| #define SERVICE_ADDRESS_FLAG_RPC_CN (0x00000001) | |
| #define SERVICE_ADDRESS_FLAG_RPC_DG (0x00000002) | |
| #define SERVICE_ADDRESS_FLAG_RPC_NB (0x00000004) | |
| #define NS_DEFAULT (0) | |
| #define NS_SAP (1) | |
| #define NS_NDS (2) | |
| #define NS_PEER_BROWSE (3) | |
| #define NS_TCPIP_LOCAL (10) | |
| #define NS_TCPIP_HOSTS (11) | |
| #define NS_DNS (12) | |
| #define NS_NETBT (13) | |
| #define NS_WINS (14) | |
| #define NS_NBP (20) | |
| #define NS_MS (30) | |
| #define NS_STDA (31) | |
| #define NS_NTDS (32) | |
| #define NS_X500 (40) | |
| #define NS_NIS (41) | |
| #define NS_VNS (50) | |
| #define NSTYPE_HIERARCHICAL (0x00000001) | |
| #define NSTYPE_DYNAMIC (0x00000002) | |
| #define NSTYPE_ENUMERABLE (0x00000004) | |
| #define NSTYPE_WORKGROUP (0x00000008) | |
| #define XP_CONNECTIONLESS (0x00000001) | |
| #define XP_GUARANTEED_DELIVERY (0x00000002) | |
| #define XP_GUARANTEED_ORDER (0x00000004) | |
| #define XP_MESSAGE_ORIENTED (0x00000008) | |
| #define XP_PSEUDO_STREAM (0x00000010) | |
| #define XP_GRACEFUL_CLOSE (0x00000020) | |
| #define XP_EXPEDITED_DATA (0x00000040) | |
| #define XP_CONNECT_DATA (0x00000080) | |
| #define XP_DISCONNECT_DATA (0x00000100) | |
| #define XP_SUPPORTS_BROADCAST (0x00000200) | |
| #define XP_SUPPORTS_MULTICAST (0x00000400) | |
| #define XP_BANDWIDTH_ALLOCATION (0x00000800) | |
| #define XP_FRAGMENTATION (0x00001000) | |
| #define XP_ENCRYPTS (0x00002000) | |
| #define RES_SOFT_SEARCH (0x00000001) | |
| #define RES_FIND_MULTIPLE (0x00000002) | |
| #define RES_SERVICE (0x00000004) | |
| #define SERVICE_TYPE_VALUE_SAPIDA "SapId" | |
| #define SERVICE_TYPE_VALUE_SAPIDW L"SapId" | |
| #define SERVICE_TYPE_VALUE_CONNA "ConnectionOriented" | |
| #define SERVICE_TYPE_VALUE_CONNW L"ConnectionOriented" | |
| #define SERVICE_TYPE_VALUE_TCPPORTA "TcpPort" | |
| #define SERVICE_TYPE_VALUE_TCPPORTW L"TcpPort" | |
| #define SERVICE_TYPE_VALUE_UDPPORTA "UdpPort" | |
| #define SERVICE_TYPE_VALUE_UDPPORTW L"UdpPort" | |
| #ifdef UNICODE | |
| #define SERVICE_TYPE_VALUE_SAPID SERVICE_TYPE_VALUE_SAPIDW | |
| #define SERVICE_TYPE_VALUE_CONN SERVICE_TYPE_VALUE_CONNW | |
| #define SERVICE_TYPE_VALUE_TCPPORT SERVICE_TYPE_VALUE_TCPPORTW | |
| #define SERVICE_TYPE_VALUE_UDPPORT SERVICE_TYPE_VALUE_UDPPORTW | |
| #else | |
| #define SERVICE_TYPE_VALUE_SAPID SERVICE_TYPE_VALUE_SAPIDA | |
| #define SERVICE_TYPE_VALUE_CONN SERVICE_TYPE_VALUE_CONNA | |
| #define SERVICE_TYPE_VALUE_TCPPORT SERVICE_TYPE_VALUE_TCPPORTA | |
| #define SERVICE_TYPE_VALUE_UDPPORT SERVICE_TYPE_VALUE_UDPPORTA | |
| #endif | |
| #define SET_SERVICE_PARTIAL_SUCCESS (0x00000001) | |
| typedef struct _NS_INFOA { | |
| DWORD dwNameSpace; | |
| DWORD dwNameSpaceFlags; | |
| LPSTR lpNameSpace; | |
| } NS_INFOA,*PNS_INFOA,*LPNS_INFOA; | |
| typedef struct _NS_INFOW { | |
| DWORD dwNameSpace; | |
| DWORD dwNameSpaceFlags; | |
| LPWSTR lpNameSpace; | |
| } NS_INFOW,*PNS_INFOW,*LPNS_INFOW; | |
| #ifdef UNICODE | |
| typedef NS_INFOW NS_INFO; | |
| typedef PNS_INFOW PNS_INFO; | |
| typedef LPNS_INFOW LPNS_INFO; | |
| #else | |
| typedef NS_INFOA NS_INFO; | |
| typedef PNS_INFOA PNS_INFO; | |
| typedef LPNS_INFOA LPNS_INFO; | |
| #endif | |
| typedef struct _SERVICE_TYPE_VALUE { | |
| DWORD dwNameSpace; | |
| DWORD dwValueType; | |
| DWORD dwValueSize; | |
| DWORD dwValueNameOffset; | |
| DWORD dwValueOffset; | |
| } SERVICE_TYPE_VALUE,*PSERVICE_TYPE_VALUE,*LPSERVICE_TYPE_VALUE; | |
| typedef struct _SERVICE_TYPE_VALUE_ABSA { | |
| DWORD dwNameSpace; | |
| DWORD dwValueType; | |
| DWORD dwValueSize; | |
| LPSTR lpValueName; | |
| PVOID lpValue; | |
| } SERVICE_TYPE_VALUE_ABSA,*PSERVICE_TYPE_VALUE_ABSA,*LPSERVICE_TYPE_VALUE_ABSA; | |
| typedef struct _SERVICE_TYPE_VALUE_ABSW { | |
| DWORD dwNameSpace; | |
| DWORD dwValueType; | |
| DWORD dwValueSize; | |
| LPWSTR lpValueName; | |
| PVOID lpValue; | |
| } SERVICE_TYPE_VALUE_ABSW,*PSERVICE_TYPE_VALUE_ABSW,*LPSERVICE_TYPE_VALUE_ABSW; | |
| #ifdef UNICODE | |
| typedef SERVICE_TYPE_VALUE_ABSW SERVICE_TYPE_VALUE_ABS; | |
| typedef PSERVICE_TYPE_VALUE_ABSW PSERVICE_TYPE_VALUE_ABS; | |
| typedef LPSERVICE_TYPE_VALUE_ABSW LPSERVICE_TYPE_VALUE_ABS; | |
| #else | |
| typedef SERVICE_TYPE_VALUE_ABSA SERVICE_TYPE_VALUE_ABS; | |
| typedef PSERVICE_TYPE_VALUE_ABSA PSERVICE_TYPE_VALUE_ABS; | |
| typedef LPSERVICE_TYPE_VALUE_ABSA LPSERVICE_TYPE_VALUE_ABS; | |
| #endif | |
| typedef struct _SERVICE_TYPE_INFO { | |
| DWORD dwTypeNameOffset; | |
| DWORD dwValueCount; | |
| SERVICE_TYPE_VALUE Values[1]; | |
| } SERVICE_TYPE_INFO,*PSERVICE_TYPE_INFO,*LPSERVICE_TYPE_INFO; | |
| typedef struct _SERVICE_TYPE_INFO_ABSA { | |
| LPSTR lpTypeName; | |
| DWORD dwValueCount; | |
| SERVICE_TYPE_VALUE_ABSA Values[1]; | |
| } SERVICE_TYPE_INFO_ABSA,*PSERVICE_TYPE_INFO_ABSA,*LPSERVICE_TYPE_INFO_ABSA; | |
| typedef struct _SERVICE_TYPE_INFO_ABSW { | |
| LPWSTR lpTypeName; | |
| DWORD dwValueCount; | |
| SERVICE_TYPE_VALUE_ABSW Values[1]; | |
| } SERVICE_TYPE_INFO_ABSW,*PSERVICE_TYPE_INFO_ABSW,*LPSERVICE_TYPE_INFO_ABSW; | |
| #ifdef UNICODE | |
| typedef SERVICE_TYPE_INFO_ABSW SERVICE_TYPE_INFO_ABS; | |
| typedef PSERVICE_TYPE_INFO_ABSW PSERVICE_TYPE_INFO_ABS; | |
| typedef LPSERVICE_TYPE_INFO_ABSW LPSERVICE_TYPE_INFO_ABS; | |
| #else | |
| typedef SERVICE_TYPE_INFO_ABSA SERVICE_TYPE_INFO_ABS; | |
| typedef PSERVICE_TYPE_INFO_ABSA PSERVICE_TYPE_INFO_ABS; | |
| typedef LPSERVICE_TYPE_INFO_ABSA LPSERVICE_TYPE_INFO_ABS; | |
| #endif | |
| typedef struct _SERVICE_ADDRESS { | |
| DWORD dwAddressType; | |
| DWORD dwAddressFlags; | |
| DWORD dwAddressLength; | |
| DWORD dwPrincipalLength; | |
| BYTE *lpAddress; | |
| BYTE *lpPrincipal; | |
| } SERVICE_ADDRESS,*PSERVICE_ADDRESS,*LPSERVICE_ADDRESS; | |
| typedef struct _SERVICE_ADDRESSES { | |
| DWORD dwAddressCount; | |
| SERVICE_ADDRESS Addresses[1]; | |
| } SERVICE_ADDRESSES,*PSERVICE_ADDRESSES,*LPSERVICE_ADDRESSES; | |
| typedef struct _SERVICE_INFOA { | |
| LPGUID lpServiceType; | |
| LPSTR lpServiceName; | |
| LPSTR lpComment; | |
| LPSTR lpLocale; | |
| DWORD dwDisplayHint; | |
| DWORD dwVersion; | |
| DWORD dwTime; | |
| LPSTR lpMachineName; | |
| LPSERVICE_ADDRESSES lpServiceAddress; | |
| BLOB ServiceSpecificInfo; | |
| } SERVICE_INFOA,*PSERVICE_INFOA,*LPSERVICE_INFOA; | |
| typedef struct _SERVICE_INFOW { | |
| LPGUID lpServiceType; | |
| LPWSTR lpServiceName; | |
| LPWSTR lpComment; | |
| LPWSTR lpLocale; | |
| DWORD dwDisplayHint; | |
| DWORD dwVersion; | |
| DWORD dwTime; | |
| LPWSTR lpMachineName; | |
| LPSERVICE_ADDRESSES lpServiceAddress; | |
| BLOB ServiceSpecificInfo; | |
| } SERVICE_INFOW,*PSERVICE_INFOW,*LPSERVICE_INFOW; | |
| #ifdef UNICODE | |
| typedef SERVICE_INFOW SERVICE_INFO; | |
| typedef PSERVICE_INFOW PSERVICE_INFO; | |
| typedef LPSERVICE_INFOW LPSERVICE_INFO; | |
| #else | |
| typedef SERVICE_INFOA SERVICE_INFO; | |
| typedef PSERVICE_INFOA PSERVICE_INFO; | |
| typedef LPSERVICE_INFOA LPSERVICE_INFO; | |
| #endif | |
| typedef struct _NS_SERVICE_INFOA { | |
| DWORD dwNameSpace; | |
| SERVICE_INFOA ServiceInfo; | |
| } NS_SERVICE_INFOA,*PNS_SERVICE_INFOA,*LPNS_SERVICE_INFOA; | |
| typedef struct _NS_SERVICE_INFOW { | |
| DWORD dwNameSpace; | |
| SERVICE_INFOW ServiceInfo; | |
| } NS_SERVICE_INFOW,*PNS_SERVICE_INFOW,*LPNS_SERVICE_INFOW; | |
| #ifdef UNICODE | |
| typedef NS_SERVICE_INFOW NS_SERVICE_INFO; | |
| typedef PNS_SERVICE_INFOW PNS_SERVICE_INFO; | |
| typedef LPNS_SERVICE_INFOW LPNS_SERVICE_INFO; | |
| #else | |
| typedef NS_SERVICE_INFOA NS_SERVICE_INFO; | |
| typedef PNS_SERVICE_INFOA PNS_SERVICE_INFO; | |
| typedef LPNS_SERVICE_INFOA LPNS_SERVICE_INFO; | |
| #endif | |
| #ifndef __CSADDR_DEFINED__ | |
| #define __CSADDR_DEFINED__ | |
| typedef struct _SOCKET_ADDRESS { | |
| LPSOCKADDR lpSockaddr; | |
| INT iSockaddrLength; | |
| } SOCKET_ADDRESS,*PSOCKET_ADDRESS,*LPSOCKET_ADDRESS; | |
| typedef struct _CSADDR_INFO { | |
| SOCKET_ADDRESS LocalAddr; | |
| SOCKET_ADDRESS RemoteAddr; | |
| INT iSocketType; | |
| INT iProtocol; | |
| } CSADDR_INFO,*PCSADDR_INFO,*LPCSADDR_INFO; | |
| #endif | |
| typedef struct _PROTOCOL_INFOA { | |
| DWORD dwServiceFlags; | |
| INT iAddressFamily; | |
| INT iMaxSockAddr; | |
| INT iMinSockAddr; | |
| INT iSocketType; | |
| INT iProtocol; | |
| DWORD dwMessageSize; | |
| LPSTR lpProtocol; | |
| } PROTOCOL_INFOA,*PPROTOCOL_INFOA,*LPPROTOCOL_INFOA; | |
| typedef struct _PROTOCOL_INFOW { | |
| DWORD dwServiceFlags; | |
| INT iAddressFamily; | |
| INT iMaxSockAddr; | |
| INT iMinSockAddr; | |
| INT iSocketType; | |
| INT iProtocol; | |
| DWORD dwMessageSize; | |
| LPWSTR lpProtocol; | |
| } PROTOCOL_INFOW,*PPROTOCOL_INFOW,*LPPROTOCOL_INFOW; | |
| #ifdef UNICODE | |
| typedef PROTOCOL_INFOW PROTOCOL_INFO; | |
| typedef PPROTOCOL_INFOW PPROTOCOL_INFO; | |
| typedef LPPROTOCOL_INFOW LPPROTOCOL_INFO; | |
| #else | |
| typedef PROTOCOL_INFOA PROTOCOL_INFO; | |
| typedef PPROTOCOL_INFOA PPROTOCOL_INFO; | |
| typedef LPPROTOCOL_INFOA LPPROTOCOL_INFO; | |
| #endif | |
| typedef struct _NETRESOURCE2A { | |
| DWORD dwScope; | |
| DWORD dwType; | |
| DWORD dwUsage; | |
| DWORD dwDisplayType; | |
| LPSTR lpLocalName; | |
| LPSTR lpRemoteName; | |
| LPSTR lpComment; | |
| NS_INFO ns_info; | |
| GUID ServiceType; | |
| DWORD dwProtocols; | |
| LPINT lpiProtocols; | |
| } NETRESOURCE2A,*PNETRESOURCE2A,*LPNETRESOURCE2A; | |
| typedef struct _NETRESOURCE2W { | |
| DWORD dwScope; | |
| DWORD dwType; | |
| DWORD dwUsage; | |
| DWORD dwDisplayType; | |
| LPWSTR lpLocalName; | |
| LPWSTR lpRemoteName; | |
| LPWSTR lpComment; | |
| NS_INFO ns_info; | |
| GUID ServiceType; | |
| DWORD dwProtocols; | |
| LPINT lpiProtocols; | |
| } NETRESOURCE2W,*PNETRESOURCE2W,*LPNETRESOURCE2W; | |
| #ifdef UNICODE | |
| typedef NETRESOURCE2W NETRESOURCE2; | |
| typedef PNETRESOURCE2W PNETRESOURCE2; | |
| typedef LPNETRESOURCE2W LPNETRESOURCE2; | |
| #else | |
| typedef NETRESOURCE2A NETRESOURCE2; | |
| typedef PNETRESOURCE2A PNETRESOURCE2; | |
| typedef LPNETRESOURCE2A LPNETRESOURCE2; | |
| #endif | |
| typedef DWORD (*LPFN_NSPAPI)(VOID); | |
| typedef VOID (*LPSERVICE_CALLBACK_PROC)(LPARAM lParam,HANDLE hAsyncTaskHandle); | |
| typedef struct _SERVICE_ASYNC_INFO { | |
| LPSERVICE_CALLBACK_PROC lpServiceCallbackProc; | |
| LPARAM lParam; | |
| HANDLE hAsyncTaskHandle; | |
| } SERVICE_ASYNC_INFO,*PSERVICE_ASYNC_INFO,*LPSERVICE_ASYNC_INFO; | |
| #ifdef UNICODE | |
| #define EnumProtocols EnumProtocolsW | |
| #define GetAddressByName GetAddressByNameW | |
| #define GetTypeByName GetTypeByNameW | |
| #define GetNameByType GetNameByTypeW | |
| #define SetService SetServiceW | |
| #define GetService GetServiceW | |
| #else | |
| #define EnumProtocols EnumProtocolsA | |
| #define GetAddressByName GetAddressByNameA | |
| #define GetTypeByName GetTypeByNameA | |
| #define GetNameByType GetNameByTypeA | |
| #define SetService SetServiceA | |
| #define GetService GetServiceA | |
| #endif | |
| INT WINAPI EnumProtocolsA(LPINT lpiProtocols,LPVOID lpProtocolBuffer,LPDWORD lpdwBufferLength); | |
| INT WINAPI EnumProtocolsW(LPINT lpiProtocols,LPVOID lpProtocolBuffer,LPDWORD lpdwBufferLength); | |
| INT WINAPI GetAddressByNameA(DWORD dwNameSpace,LPGUID lpServiceType,LPSTR lpServiceName,LPINT lpiProtocols,DWORD dwResolution,LPSERVICE_ASYNC_INFO lpServiceAsyncInfo,LPVOID lpCsaddrBuffer,LPDWORD lpdwBufferLength,LPSTR lpAliasBuffer,LPDWORD lpdwAliasBufferLength); | |
| INT WINAPI GetAddressByNameW(DWORD dwNameSpace,LPGUID lpServiceType,LPWSTR lpServiceName,LPINT lpiProtocols,DWORD dwResolution,LPSERVICE_ASYNC_INFO lpServiceAsyncInfo,LPVOID lpCsaddrBuffer,LPDWORD lpdwBufferLength,LPWSTR lpAliasBuffer,LPDWORD lpdwAliasBufferLength); | |
| INT WINAPI GetTypeByNameA(LPSTR lpServiceName,LPGUID lpServiceType); | |
| INT WINAPI GetTypeByNameW(LPWSTR lpServiceName,LPGUID lpServiceType); | |
| INT WINAPI GetNameByTypeA(LPGUID lpServiceType,LPSTR lpServiceName,DWORD dwNameLength); | |
| INT WINAPI GetNameByTypeW(LPGUID lpServiceType,LPWSTR lpServiceName,DWORD dwNameLength); | |
| INT WINAPI SetServiceA(DWORD dwNameSpace,DWORD dwOperation,DWORD dwFlags,LPSERVICE_INFOA lpServiceInfo,LPSERVICE_ASYNC_INFO lpServiceAsyncInfo,LPDWORD lpdwStatusFlags); | |
| INT WINAPI SetServiceW(DWORD dwNameSpace,DWORD dwOperation,DWORD dwFlags,LPSERVICE_INFOW lpServiceInfo,LPSERVICE_ASYNC_INFO lpServiceAsyncInfo,LPDWORD lpdwStatusFlags); | |
| INT WINAPI GetServiceA(DWORD dwNameSpace,LPGUID lpGuid,LPSTR lpServiceName,DWORD dwProperties,LPVOID lpBuffer,LPDWORD lpdwBufferSize,LPSERVICE_ASYNC_INFO lpServiceAsyncInfo); | |
| INT WINAPI GetServiceW(DWORD dwNameSpace,LPGUID lpGuid,LPWSTR lpServiceName,DWORD dwProperties,LPVOID lpBuffer,LPDWORD lpdwBufferSize,LPSERVICE_ASYNC_INFO lpServiceAsyncInfo); | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif |