| /* NSPAPI.H -- winsock 1.1 | |
| * not supported on win95 | |
| * | |
| * Copyright (C) 2001 Stefan Leichter | |
| * | |
| * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | |
| * | |
| * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| */ | |
| #ifndef _WINE_NSPAPI_ | |
| #define _WINE_NSPAPI_ | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif /* defined(__cplusplus) */ | |
| /* | |
| * constants | |
| */ | |
| #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_BANDWITH_ALLOCATION 0x00000800 | |
| #define XP_FRAGMENTATION 0x00001000 | |
| #define XP_ENCRYPTS 0x00002000 | |
| /* | |
| * structures | |
| */ | |
| 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; | |
| DECL_WINELIB_TYPE_AW(PROTOCOL_INFO) | |
| DECL_WINELIB_TYPE_AW(PPROTOCOL_INFO) | |
| DECL_WINELIB_TYPE_AW(LPPROTOCOL_INFO) | |
| 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; | |
| LPSTR lpMachineName; | |
| LPSERVICE_ADDRESSES lpServiceAddress; | |
| BLOB ServiceSpecificInfo; /* May point to SERVICE_TYPE_INFO_ABS */ | |
| } SERVICE_INFOW, *PSERVICE_INFOW, *LPSERVICE_INFOW; | |
| DECL_WINELIB_TYPE_AW(SERVICE_INFO) | |
| DECL_WINELIB_TYPE_AW(PSERVICE_INFO) | |
| DECL_WINELIB_TYPE_AW(LPSERVICE_INFO) | |
| typedef struct _SERVICE_TYPE_VALUE_ABSA | |
| { | |
| DWORD dwNameSpace; /* Name space or set of name spaces */ | |
| DWORD dwValueType; /* Type of the value data */ | |
| DWORD dwValueSize; /* Size of the value data */ | |
| LPSTR lpValueName; /* Name of the value */ | |
| PVOID lpValue; /* Pointer to the value data */ | |
| } SERVICE_TYPE_VALUE_ABSA, *PSERVICE_TYPE_VALUE_ABSA, *LPSERVICE_TYPE_VALUE_ABSA; | |
| typedef struct _SERVICE_TYPE_VALUE_ABSW | |
| { | |
| DWORD dwNameSpace; /* Name space or set of name spaces */ | |
| DWORD dwValueType; /* Type of the value data */ | |
| DWORD dwValueSize; /* Size of the value data */ | |
| LPWSTR lpValueName; /* Name of the value */ | |
| PVOID lpValue; /* Pointer to the value data */ | |
| } SERVICE_TYPE_VALUE_ABSW, *PSERVICE_TYPE_VALUE_ABSW, *LPSERVICE_TYPE_VALUE_ABSW; | |
| DECL_WINELIB_TYPE_AW(SERVICE_TYPE_VALUE_ABS) | |
| DECL_WINELIB_TYPE_AW(PSERVICE_TYPE_VALUE_ABS) | |
| DECL_WINELIB_TYPE_AW(LPSERVICE_TYPE_VALUE_ABS) | |
| typedef struct _SERVICE_TYPE_INFO_ABSA | |
| { | |
| LPSTR lpTypeName; /* Name of the network service type */ | |
| DWORD dwValueCount; /* Number of SERVICE_TYPE_VALUE_ABS structures */ | |
| SERVICE_TYPE_VALUE_ABSA Values[1]; /* Array of SERVICE_TYPE_VALUE_ABS structures */ | |
| } SERVICE_TYPE_INFO_ABSA, *PSERVICE_TYPE_INFO_ABSA, *LPSERVICE_TYPE_INFO_ABSA; | |
| typedef struct _SERVICE_TYPE_INFO_ABSW | |
| { | |
| LPWSTR lpTypeName; /* Name of the network service type */ | |
| DWORD dwValueCount; /* Number of SERVICE_TYPE_VALUE_ABS structures */ | |
| SERVICE_TYPE_VALUE_ABSW Values[1]; /* Array of SERVICE_TYPE_VALUE_ABS structures */ | |
| } SERVICE_TYPE_INFO_ABSW, *PSERVICE_TYPE_INFO_ABSW, *LPSERVICE_TYPE_INFO_ABSW; | |
| DECL_WINELIB_TYPE_AW(SERVICE_TYPE_INFO_ABS) | |
| DECL_WINELIB_TYPE_AW(PSERVICE_TYPE_INFO_ABS) | |
| DECL_WINELIB_TYPE_AW(LPSERVICE_TYPE_INFO_ABS) | |
| 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; | |
| /* | |
| * function prototypes | |
| */ | |
| INT WINAPI GetTypeByNameA(LPSTR lpServiceName, LPGUID lpServiceType); | |
| INT WINAPI GetTypeByNameW(LPWSTR lpServiceName, LPGUID lpServiceType); | |
| #define GetTypeByName WINELIB_NAME_AW(GetTypeByName) | |
| 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); | |
| #define SetService WINELIB_NAME_AW(SetService) | |
| #ifdef __cplusplus | |
| } /* extern "C" */ | |
| #endif /* defined(__cplusplus) */ | |
| #endif /* _WINE_NSPAPI_ */ |