Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1109 lines
28 KiB

/***************************************************************************
*
* File Name: ./inc/winnetwk.h
*
* Copyright (C) 1993-1996 Hewlett-Packard Company.
* All rights reserved.
*
* 11311 Chinden Blvd.
* Boise, Idaho 83714
*
* This is a part of the HP JetAdmin Printer Utility
*
* This source code is only intended as a supplement for support and
* localization of HP JetAdmin by 3rd party Operating System vendors.
* Modification of source code cannot be made without the express written
* consent of Hewlett-Packard.
*
*
* Description:
*
* Author: Name
*
*
* Modification history:
*
* date initials change description
*
* mm-dd-yy MJB
*
*
*
*
*
*
***************************************************************************/
/*++
Copyright (c) 1991-1995 Microsoft Corporation
Module Name:
winnetwk.h
Abstract:
Standard WINNET Header File for WIN32
Environment:
User Mode -Win32
Notes:
optional-notes
Revision History:
08-Oct-1991 danl
created from winnet 3.10.05 version.
10-Dec-1991 Johnl
Updated to conform to Win32 Net API Spec. vers 0.4
01-Apr-1992 JohnL
Changed CONNECTION_REMEMBERED flag to CONNECT_UPDATE_PROFILE
Updated WNetCancelConnection2 to match spec.
23-Apr-1992 Johnl
Added error code mappings. Changed byte counts to character counts.
27-May-1992 ChuckC
Made into .x file.
12-22-93 Danl
Added WNetAddConnection3
18-Aug-1993 LenS
Added Windows 95 Extensions
--*/
#ifndef _WINNETWK_
#define _WINNETWK_
#ifdef __cplusplus
extern "C" {
#endif
//
// Network types
//
#define WNNC_NET_MSNET 0x00010000
#define WNNC_NET_LANMAN 0x00020000
#define WNNC_NET_NETWARE 0x00030000
#define WNNC_NET_VINES 0x00040000
#define WNNC_NET_10NET 0x00050000
#define WNNC_NET_LOCUS 0x00060000
#define WNNC_NET_SUN_PC_NFS 0x00070000
#define WNNC_NET_LANSTEP 0x00080000
#define WNNC_NET_9TILES 0x00090000
#define WNNC_NET_LANTASTIC 0x000A0000
#define WNNC_NET_AS400 0x000B0000
#define WNNC_NET_FTP_NFS 0x000C0000
#define WNNC_NET_PATHWORKS 0x000D0000
#define WNNC_NET_LIFENET 0x000E0000
#define WNNC_NET_POWERLAN 0x000F0000
#define WNNC_NET_BWNFS 0x00100000
#define WNNC_NET_COGENT 0x00110000
#define WNNC_NET_FARALLON 0x00120000
#define WNNC_NET_APPLETALK 0x00130000
//
// Network Resources.
//
#define RESOURCE_CONNECTED 0x00000001
#define RESOURCE_GLOBALNET 0x00000002
#define RESOURCE_REMEMBERED 0x00000003
#if(WINVER >= 0x0400)
#define RESOURCE_RECENT 0x00000004
#define RESOURCE_CONTEXT 0x00000005
#endif /* WINVER >= 0x0400 */
#define RESOURCETYPE_ANY 0x00000000
#define RESOURCETYPE_DISK 0x00000001
#define RESOURCETYPE_PRINT 0x00000002
#if(WINVER >= 0x0400)
#define RESOURCETYPE_RESERVED 0x00000008
#endif /* WINVER >= 0x0400 */
#define RESOURCETYPE_UNKNOWN 0xFFFFFFFF
#define RESOURCEUSAGE_CONNECTABLE 0x00000001
#define RESOURCEUSAGE_CONTAINER 0x00000002
#if(WINVER >= 0x0400)
#define RESOURCEUSAGE_NOLOCALDEVICE 0x00000004
#define RESOURCEUSAGE_SIBLING 0x00000008
#define RESOURCEUSAGE_ALL (RESOURCEUSAGE_CONNECTABLE | RESOURCEUSAGE_CONTAINER)
#endif /* WINVER >= 0x0400 */
#define RESOURCEUSAGE_RESERVED 0x80000000
#define RESOURCEDISPLAYTYPE_GENERIC 0x00000000
#define RESOURCEDISPLAYTYPE_DOMAIN 0x00000001
#define RESOURCEDISPLAYTYPE_SERVER 0x00000002
#define RESOURCEDISPLAYTYPE_SHARE 0x00000003
#define RESOURCEDISPLAYTYPE_FILE 0x00000004
#define RESOURCEDISPLAYTYPE_GROUP 0x00000005
#if(WINVER >= 0x0400)
#define RESOURCEDISPLAYTYPE_NETWORK 0x00000006
#define RESOURCEDISPLAYTYPE_ROOT 0x00000007
#define RESOURCEDISPLAYTYPE_SHAREADMIN 0x00000008
#define RESOURCEDISPLAYTYPE_DIRECTORY 0x00000009
#endif /* WINVER >= 0x0400 */
#define RESOURCEDISPLAYTYPE_TREE 0x0000000A
typedef struct _NETRESOURCEA {
DWORD dwScope;
DWORD dwType;
DWORD dwDisplayType;
DWORD dwUsage;
LPSTR lpLocalName;
LPSTR lpRemoteName;
LPSTR lpComment ;
LPSTR lpProvider;
}NETRESOURCEA, *LPNETRESOURCEA;
typedef struct _NETRESOURCEW {
DWORD dwScope;
DWORD dwType;
DWORD dwDisplayType;
DWORD dwUsage;
LPWSTR lpLocalName;
LPWSTR lpRemoteName;
LPWSTR lpComment ;
LPWSTR lpProvider;
}NETRESOURCEW, *LPNETRESOURCEW;
#ifdef UNICODE
typedef NETRESOURCEW NETRESOURCE;
typedef LPNETRESOURCEW LPNETRESOURCE;
#else
typedef NETRESOURCEA NETRESOURCE;
typedef LPNETRESOURCEA LPNETRESOURCE;
#endif // UNICODE
//
// Network Connections.
//
#define NETPROPERTY_PERSISTENT 1
#define CONNECT_UPDATE_PROFILE 0x00000001
#define CONNECT_UPDATE_RECENT 0x00000002
#define CONNECT_TEMPORARY 0x00000004
#define CONNECT_INTERACTIVE 0x00000008
#define CONNECT_PROMPT 0x00000010
#define CONNECT_NEED_DRIVE 0x00000020
#if(WINVER >= 0x0400)
#define CONNECT_REFCOUNT 0x00000040
#define CONNECT_REDIRECT 0x00000080
#define CONNECT_LOCALDRIVE 0x00000100
#define CONNECT_CURRENT_MEDIA 0x00000200
#endif /* WINVER >= 0x0400 */
DWORD APIENTRY
WNetAddConnectionA(
LPCSTR lpRemoteName,
LPCSTR lpPassword,
LPCSTR lpLocalName
);
DWORD APIENTRY
WNetAddConnectionW(
LPCWSTR lpRemoteName,
LPCWSTR lpPassword,
LPCWSTR lpLocalName
);
#ifdef UNICODE
#define WNetAddConnection WNetAddConnectionW
#else
#define WNetAddConnection WNetAddConnectionA
#endif // !UNICODE
DWORD APIENTRY
WNetAddConnection2A(
LPNETRESOURCEA lpNetResource,
LPCSTR lpPassword,
LPCSTR lpUserName,
DWORD dwFlags
);
DWORD APIENTRY
WNetAddConnection2W(
LPNETRESOURCEW lpNetResource,
LPCWSTR lpPassword,
LPCWSTR lpUserName,
DWORD dwFlags
);
#ifdef UNICODE
#define WNetAddConnection2 WNetAddConnection2W
#else
#define WNetAddConnection2 WNetAddConnection2A
#endif // !UNICODE
DWORD APIENTRY
WNetAddConnection3A(
HWND hwndOwner,
LPNETRESOURCEA lpNetResource,
LPCSTR lpPassword,
LPCSTR lpUserName,
DWORD dwFlags
);
DWORD APIENTRY
WNetAddConnection3W(
HWND hwndOwner,
LPNETRESOURCEW lpNetResource,
LPCWSTR lpPassword,
LPCWSTR lpUserName,
DWORD dwFlags
);
#ifdef UNICODE
#define WNetAddConnection3 WNetAddConnection3W
#else
#define WNetAddConnection3 WNetAddConnection3A
#endif // !UNICODE
DWORD APIENTRY
WNetCancelConnectionA(
LPCSTR lpName,
BOOL fForce
);
DWORD APIENTRY
WNetCancelConnectionW(
LPCWSTR lpName,
BOOL fForce
);
#ifdef UNICODE
#define WNetCancelConnection WNetCancelConnectionW
#else
#define WNetCancelConnection WNetCancelConnectionA
#endif // !UNICODE
DWORD APIENTRY
WNetCancelConnection2A(
LPCSTR lpName,
DWORD dwFlags,
BOOL fForce
);
DWORD APIENTRY
WNetCancelConnection2W(
LPCWSTR lpName,
DWORD dwFlags,
BOOL fForce
);
#ifdef UNICODE
#define WNetCancelConnection2 WNetCancelConnection2W
#else
#define WNetCancelConnection2 WNetCancelConnection2A
#endif // !UNICODE
DWORD APIENTRY
WNetGetConnectionA(
LPCSTR lpLocalName,
LPSTR lpRemoteName,
LPDWORD lpnLength
);
DWORD APIENTRY
WNetGetConnectionW(
LPCWSTR lpLocalName,
LPWSTR lpRemoteName,
LPDWORD lpnLength
);
#ifdef UNICODE
#define WNetGetConnection WNetGetConnectionW
#else
#define WNetGetConnection WNetGetConnectionA
#endif // !UNICODE
DWORD APIENTRY
WNetRestoreConnectionA(
HWND hwndParent,
LPCSTR lpDevice
);
DWORD APIENTRY
WNetRestoreConnectionW(
HWND hwndParent,
LPCWSTR lpDevice
);
#ifdef UNICODE
#define WNetRestoreConnection WNetRestoreConnectionW
#else
#define WNetRestoreConnection WNetRestoreConnectionA
#endif // !UNICODE
#if(WINVER >= 0x0400)
DWORD APIENTRY
WNetUseConnectionA(
HWND hwndOwner,
LPNETRESOURCEA lpNetResource,
LPCSTR lpUserID,
LPCSTR lpPassword,
DWORD dwFlags,
LPSTR lpAccessName,
LPDWORD lpBufferSize,
LPDWORD lpResult
);
DWORD APIENTRY
WNetUseConnectionW(
HWND hwndOwner,
LPNETRESOURCEW lpNetResource,
LPCWSTR lpUserID,
LPCWSTR lpPassword,
DWORD dwFlags,
LPWSTR lpAccessName,
LPDWORD lpBufferSize,
LPDWORD lpResult
);
#ifdef UNICODE
#define WNetUseConnection WNetUseConnectionW
#else
#define WNetUseConnection WNetUseConnectionA
#endif // !UNICODE
DWORD APIENTRY
WNetSetConnectionA(
LPCSTR lpName,
DWORD dwProperties,
LPVOID pvValues
);
DWORD APIENTRY
WNetSetConnectionW(
LPCWSTR lpName,
DWORD dwProperties,
LPVOID pvValues
);
#ifdef UNICODE
#define WNetSetConnection WNetSetConnectionW
#else
#define WNetSetConnection WNetSetConnectionA
#endif // !UNICODE
#endif /* WINVER >= 0x0400 */
//
// Network Connection Dialogs.
//
DWORD APIENTRY
WNetConnectionDialog(
HWND hwnd,
DWORD dwType
);
DWORD APIENTRY
WNetDisconnectDialog(
HWND hwnd,
DWORD dwType
);
#if(WINVER >= 0x0400)
typedef struct _CONNECTDLGSTRUCTA{
DWORD cbStructure; /* size of this structure in bytes */
HWND hwndOwner; /* owner window for the dialog */
LPNETRESOURCEA lpConnRes;/* Requested Resource info */
DWORD dwFlags; /* flags (see below) */
DWORD dwDevNum; /* number of devices connected to */
} CONNECTDLGSTRUCTA, FAR *LPCONNECTDLGSTRUCTA;
typedef struct _CONNECTDLGSTRUCTW{
DWORD cbStructure; /* size of this structure in bytes */
HWND hwndOwner; /* owner window for the dialog */
LPNETRESOURCEW lpConnRes;/* Requested Resource info */
DWORD dwFlags; /* flags (see below) */
DWORD dwDevNum; /* number of devices connected to */
} CONNECTDLGSTRUCTW, FAR *LPCONNECTDLGSTRUCTW;
#ifdef UNICODE
typedef CONNECTDLGSTRUCTW CONNECTDLGSTRUCT;
typedef LPCONNECTDLGSTRUCTW LPCONNECTDLGSTRUCT;
#else
typedef CONNECTDLGSTRUCTA CONNECTDLGSTRUCT;
typedef LPCONNECTDLGSTRUCTA LPCONNECTDLGSTRUCT;
#endif // UNICODE
#define CONNDLG_RO_PATH 0x00000001 /* Resource path should be read-only */
#define CONNDLG_CONN_POINT 0x00000002 /* Netware -style movable connection point enabled */
#define CONNDLG_USE_MRU 0x00000004 /* Use MRU combobox */
#define CONNDLG_HIDE_BOX 0x00000008 /* Hide persistent connect checkbox */
/*
* NOTE: Set at most ONE of the below flags. If neither flag is set,
* then the persistence is set to whatever the user chose during
* a previous connection
*/
#define CONNDLG_PERSIST 0x00000010 /* Force persistent connection */
#define CONNDLG_NOT_PERSIST 0x00000020 /* Force connection NOT persistent */
DWORD APIENTRY
WNetConnectionDialog1A(
LPCONNECTDLGSTRUCTA lpConnDlgStruct
);
DWORD APIENTRY
WNetConnectionDialog1W(
LPCONNECTDLGSTRUCTW lpConnDlgStruct
);
#ifdef UNICODE
#define WNetConnectionDialog1 WNetConnectionDialog1W
#else
#define WNetConnectionDialog1 WNetConnectionDialog1A
#endif // !UNICODE
typedef struct _DISCDLGSTRUCTA{
DWORD cbStructure; /* size of this structure in bytes */
HWND hwndOwner; /* owner window for the dialog */
LPSTR lpLocalName; /* local device name */
LPSTR lpRemoteName; /* network resource name */
DWORD dwFlags; /* flags */
} DISCDLGSTRUCTA, FAR *LPDISCDLGSTRUCTA;
typedef struct _DISCDLGSTRUCTW{
DWORD cbStructure; /* size of this structure in bytes */
HWND hwndOwner; /* owner window for the dialog */
LPWSTR lpLocalName; /* local device name */
LPWSTR lpRemoteName; /* network resource name */
DWORD dwFlags; /* flags */
} DISCDLGSTRUCTW, FAR *LPDISCDLGSTRUCTW;
#ifdef UNICODE
typedef DISCDLGSTRUCTW DISCDLGSTRUCT;
typedef LPDISCDLGSTRUCTW LPDISCDLGSTRUCT;
#else
typedef DISCDLGSTRUCTA DISCDLGSTRUCT;
typedef LPDISCDLGSTRUCTA LPDISCDLGSTRUCT;
#endif // UNICODE
#define DISC_UPDATE_PROFILE 0x00000001
#define DISC_NO_FORCE 0x00000040
DWORD APIENTRY
WNetDisconnectDialog1A(
LPDISCDLGSTRUCTA lpConnDlgStruct
);
DWORD APIENTRY
WNetDisconnectDialog1W(
LPDISCDLGSTRUCTW lpConnDlgStruct
);
#ifdef UNICODE
#define WNetDisconnectDialog1 WNetDisconnectDialog1W
#else
#define WNetDisconnectDialog1 WNetDisconnectDialog1A
#endif // !UNICODE
#endif /* WINVER >= 0x0400 */
//
// Network Browsing.
//
DWORD APIENTRY
WNetOpenEnumA(
DWORD dwScope,
DWORD dwType,
DWORD dwUsage,
LPNETRESOURCEA lpNetResource,
LPHANDLE lphEnum
);
DWORD APIENTRY
WNetOpenEnumW(
DWORD dwScope,
DWORD dwType,
DWORD dwUsage,
LPNETRESOURCEW lpNetResource,
LPHANDLE lphEnum
);
#ifdef UNICODE
#define WNetOpenEnum WNetOpenEnumW
#else
#define WNetOpenEnum WNetOpenEnumA
#endif // !UNICODE
DWORD APIENTRY
WNetEnumResourceA(
HANDLE hEnum,
LPDWORD lpcCount,
LPVOID lpBuffer,
LPDWORD lpBufferSize
);
DWORD APIENTRY
WNetEnumResourceW(
HANDLE hEnum,
LPDWORD lpcCount,
LPVOID lpBuffer,
LPDWORD lpBufferSize
);
#ifdef UNICODE
#define WNetEnumResource WNetEnumResourceW
#else
#define WNetEnumResource WNetEnumResourceA
#endif // !UNICODE
DWORD APIENTRY
WNetCloseEnum(
HANDLE hEnum
);
#if(WINVER >= 0x0400)
DWORD APIENTRY
WNetGetResourceParentA(
LPNETRESOURCEA lpNetResource,
LPVOID lpBuffer,
LPDWORD cbBuffer
);
DWORD APIENTRY
WNetGetResourceParentW(
LPNETRESOURCEW lpNetResource,
LPVOID lpBuffer,
LPDWORD cbBuffer
);
#ifdef UNICODE
#define WNetGetResourceParent WNetGetResourceParentW
#else
#define WNetGetResourceParent WNetGetResourceParentA
#endif // !UNICODE
DWORD APIENTRY
WNetGetResourceInformationA(
LPNETRESOURCEA lpNetResource,
LPVOID lpBuffer,
LPDWORD cbBuffer,
LPSTR *lplpSystem
);
DWORD APIENTRY
WNetGetResourceInformationW(
LPNETRESOURCEW lpNetResource,
LPVOID lpBuffer,
LPDWORD cbBuffer,
LPWSTR *lplpSystem
);
#ifdef UNICODE
#define WNetGetResourceInformation WNetGetResourceInformationW
#else
#define WNetGetResourceInformation WNetGetResourceInformationA
#endif // !UNICODE
#endif /* WINVER >= 0x0400 */
//
// Universal Naming.
//
#define UNIVERSAL_NAME_INFO_LEVEL 0x00000001
#define REMOTE_NAME_INFO_LEVEL 0x00000002
typedef struct _UNIVERSAL_NAME_INFOA {
LPSTR lpUniversalName;
}UNIVERSAL_NAME_INFOA, *LPUNIVERSAL_NAME_INFOA;
typedef struct _UNIVERSAL_NAME_INFOW {
LPWSTR lpUniversalName;
}UNIVERSAL_NAME_INFOW, *LPUNIVERSAL_NAME_INFOW;
#ifdef UNICODE
typedef UNIVERSAL_NAME_INFOW UNIVERSAL_NAME_INFO;
typedef LPUNIVERSAL_NAME_INFOW LPUNIVERSAL_NAME_INFO;
#else
typedef UNIVERSAL_NAME_INFOA UNIVERSAL_NAME_INFO;
typedef LPUNIVERSAL_NAME_INFOA LPUNIVERSAL_NAME_INFO;
#endif // UNICODE
typedef struct _REMOTE_NAME_INFOA {
LPSTR lpUniversalName;
LPSTR lpConnectionName;
LPSTR lpRemainingPath;
}REMOTE_NAME_INFOA, *LPREMOTE_NAME_INFOA;
typedef struct _REMOTE_NAME_INFOW {
LPWSTR lpUniversalName;
LPWSTR lpConnectionName;
LPWSTR lpRemainingPath;
}REMOTE_NAME_INFOW, *LPREMOTE_NAME_INFOW;
#ifdef UNICODE
typedef REMOTE_NAME_INFOW REMOTE_NAME_INFO;
typedef LPREMOTE_NAME_INFOW LPREMOTE_NAME_INFO;
#else
typedef REMOTE_NAME_INFOA REMOTE_NAME_INFO;
typedef LPREMOTE_NAME_INFOA LPREMOTE_NAME_INFO;
#endif // UNICODE
DWORD APIENTRY
WNetGetUniversalNameA(
LPCSTR lpLocalPath,
DWORD dwInfoLevel,
LPVOID lpBuffer,
LPDWORD lpBufferSize
);
DWORD APIENTRY
WNetGetUniversalNameW(
LPCWSTR lpLocalPath,
DWORD dwInfoLevel,
LPVOID lpBuffer,
LPDWORD lpBufferSize
);
#ifdef UNICODE
#define WNetGetUniversalName WNetGetUniversalNameW
#else
#define WNetGetUniversalName WNetGetUniversalNameA
#endif // !UNICODE
#if(WINVER >= 0x0400)
//
// Password Cache.
//
#ifndef PCE_STRUCT_DEFINED
#define PCE_STRUCT_DEFINED /* for benefit of pcache.h */
struct PASSWORD_CACHE_ENTRY {
WORD cbEntry; /* size of this entry in bytes, incl. pad */
WORD cbResource; /* size of resource name in bytes */
WORD cbPassword; /* size of password in bytes */
BYTE iEntry; /* index number of this entry, for MRU */
BYTE nType; /* type of entry (see below) */
char abResource[1]; /* resource name (may not be ASCIIZ at all) */
};
#define PCE_MEMORYONLY 0x01 /* for flags field when adding */
/*
Typedef for the callback routine passed to the enumeration functions.
It will be called once for each entry that matches the criteria
requested. It returns TRUE if it wants the enumeration to
continue, FALSE to stop.
*/
typedef BOOL (FAR PASCAL *CACHECALLBACK)( struct PASSWORD_CACHE_ENTRY FAR *pce, DWORD dwRefData );
#endif /* PCE_STRUCT_DEFINED */
DWORD APIENTRY
WNetCachePassword(
LPSTR pbResource,
WORD cbResource,
LPSTR pbPassword,
WORD cbPassword,
BYTE nType,
UINT fnFlags
);
DWORD APIENTRY
WNetGetCachedPassword(
LPSTR pbResource,
WORD cbResource,
LPSTR pbPassword,
LPWORD pcbPassword,
BYTE nType
);
DWORD APIENTRY
WNetRemoveCachedPassword(
LPSTR pbResource,
WORD cbResource,
BYTE nType
);
DWORD APIENTRY
WNetEnumCachedPasswords(
LPSTR pbPrefix,
WORD cbPrefix,
BYTE nType,
CACHECALLBACK pfnCallback,
DWORD dwRefData
);
#endif /* WINVER >= 0x0400 */
//
// Authentication and Logon/Logoff.
//
DWORD APIENTRY
WNetGetUserA(
LPCSTR lpName,
LPSTR lpUserName,
LPDWORD lpnLength
);
DWORD APIENTRY
WNetGetUserW(
LPCWSTR lpName,
LPWSTR lpUserName,
LPDWORD lpnLength
);
#ifdef UNICODE
#define WNetGetUser WNetGetUserW
#else
#define WNetGetUser WNetGetUserA
#endif // !UNICODE
#if(WINVER >= 0x0400)
#define LOGON_DONE 0x00000001
#define LOGON_PRIMARY 0x00000002
#define LOGON_MUST_VALIDATE 0x00000004
#define LOGOFF_PENDING 1
#define LOGOFF_COMMIT 2
#define LOGOFF_CANCEL 3
DWORD APIENTRY
WNetLogonA(
LPCSTR lpProvider,
HWND hwndOwner
);
DWORD APIENTRY
WNetLogonW(
LPCWSTR lpProvider,
HWND hwndOwner
);
#ifdef UNICODE
#define WNetLogon WNetLogonW
#else
#define WNetLogon WNetLogonA
#endif // !UNICODE
DWORD APIENTRY
WNetLogoffA(
LPCSTR lpProvider,
HWND hwndOwner
);
DWORD APIENTRY
WNetLogoffW(
LPCWSTR lpProvider,
HWND hwndOwner
);
#ifdef UNICODE
#define WNetLogoff WNetLogoffW
#else
#define WNetLogoff WNetLogoffA
#endif // !UNICODE
DWORD APIENTRY
WNetVerifyPasswordA(
LPCSTR lpszPassword,
BOOL FAR *pfMatch
);
DWORD APIENTRY
WNetVerifyPasswordW(
LPCWSTR lpszPassword,
BOOL FAR *pfMatch
);
#ifdef UNICODE
#define WNetVerifyPassword WNetVerifyPasswordW
#else
#define WNetVerifyPassword WNetVerifyPasswordA
#endif // !UNICODE
DWORD APIENTRY
WNetGetHomeDirectoryA(
LPCSTR lpProviderName,
LPSTR lpDirectory,
LPDWORD lpBufferSize
);
DWORD APIENTRY
WNetGetHomeDirectoryW(
LPCWSTR lpProviderName,
LPWSTR lpDirectory,
LPDWORD lpBufferSize
);
#ifdef UNICODE
#define WNetGetHomeDirectory WNetGetHomeDirectoryW
#else
#define WNetGetHomeDirectory WNetGetHomeDirectoryA
#endif // !UNICODE
#endif /* WINVER >= 0x0400 */
//
// Other.
//
#define WNFMT_MULTILINE 0x01
#define WNFMT_ABBREVIATED 0x02
#define WNFMT_INENUM 0x10
DWORD APIENTRY
WNetFormatNetworkNameA(
LPCSTR lpProvider,
LPCSTR lpRemoteName,
LPSTR lpFormattedName,
LPDWORD lpnLength,
DWORD dwFlags,
DWORD dwAveCharPerLine
);
DWORD APIENTRY
WNetFormatNetworkNameW(
LPCWSTR lpProvider,
LPCWSTR lpRemoteName,
LPWSTR lpFormattedName,
LPDWORD lpnLength,
DWORD dwFlags,
DWORD dwAveCharPerLine
);
#ifdef UNICODE
#define WNetFormatNetworkName WNetFormatNetworkNameW
#else
#define WNetFormatNetworkName WNetFormatNetworkNameA
#endif // !UNICODE
#if(WINVER >= 0x0400)
DWORD APIENTRY
WNetGetProviderNameA(
DWORD dwNetType,
LPSTR lpProviderName,
LPDWORD lpBufferSize
);
DWORD APIENTRY
WNetGetProviderNameW(
DWORD dwNetType,
LPWSTR lpProviderName,
LPDWORD lpBufferSize
);
#ifdef UNICODE
#define WNetGetProviderName WNetGetProviderNameW
#else
#define WNetGetProviderName WNetGetProviderNameA
#endif // !UNICODE
typedef struct _NETINFOSTRUCT{
DWORD cbStructure;
DWORD dwProviderVersion;
DWORD dwStatus;
DWORD dwCharacteristics;
DWORD dwHandle;
WORD wNetType;
DWORD dwPrinters;
DWORD dwDrives;
} NETINFOSTRUCT, FAR *LPNETINFOSTRUCT;
#define NETINFO_DLL16 0x00000001 /* Provider running as 16 bit Winnet Driver */
#define NETINFO_DISKRED 0x00000004 /* Provider requires disk redirections to connect */
#define NETINFO_PRINTERRED 0x00000008 /* Provider requires printer redirections to connect */
DWORD APIENTRY
WNetGetNetworkInformationA(
LPCSTR lpProvider,
LPNETINFOSTRUCT lpNetInfoStruct
);
DWORD APIENTRY
WNetGetNetworkInformationW(
LPCWSTR lpProvider,
LPNETINFOSTRUCT lpNetInfoStruct
);
#ifdef UNICODE
#define WNetGetNetworkInformation WNetGetNetworkInformationW
#else
#define WNetGetNetworkInformation WNetGetNetworkInformationA
#endif // !UNICODE
#endif /* WINVER >= 0x0400 */
#if(WINVER >= 0x0400)
//
// User Profiles.
//
typedef UINT (FAR PASCAL *PFNGETPROFILEPATHA) (
LPCSTR pszUsername,
LPSTR pszBuffer,
UINT cbBuffer
);
typedef UINT (FAR PASCAL *PFNGETPROFILEPATHW) (
LPCWSTR pszUsername,
LPWSTR pszBuffer,
UINT cbBuffer
);
#ifdef UNICODE
#define PFNGETPROFILEPATH PFNGETPROFILEPATHW
#else
#define PFNGETPROFILEPATH PFNGETPROFILEPATHA
#endif // !UNICODE
typedef UINT (FAR PASCAL *PFNRECONCILEPROFILEA) (
LPCSTR pszCentralFile,
LPCSTR pszLocalFile,
DWORD dwFlags
);
typedef UINT (FAR PASCAL *PFNRECONCILEPROFILEW) (
LPCWSTR pszCentralFile,
LPCWSTR pszLocalFile,
DWORD dwFlags
);
#ifdef UNICODE
#define PFNRECONCILEPROFILE PFNRECONCILEPROFILEW
#else
#define PFNRECONCILEPROFILE PFNRECONCILEPROFILEA
#endif // !UNICODE
#define RP_LOGON 0x01 /* if set, do for logon, else for logoff */
#define RP_INIFILE 0x02 /* if set, reconcile .INI file, else reg. hive */
#endif /* WINVER >= 0x0400 */
#if(WINVER >= 0x0400)
//
// Policies.
//
typedef BOOL (FAR PASCAL *PFNPROCESSPOLICIESA) (
HWND hwnd,
LPCSTR pszPath,
LPCSTR pszUsername,
LPCSTR pszComputerName,
DWORD dwFlags
);
typedef BOOL (FAR PASCAL *PFNPROCESSPOLICIESW) (
HWND hwnd,
LPCWSTR pszPath,
LPCWSTR pszUsername,
LPCWSTR pszComputerName,
DWORD dwFlags
);
#ifdef UNICODE
#define PFNPROCESSPOLICIES PFNPROCESSPOLICIESW
#else
#define PFNPROCESSPOLICIES PFNPROCESSPOLICIESA
#endif // !UNICODE
#define PP_DISPLAYERRORS 0x01 /* if set, display error messages, else fail silently if error */
#endif /* WINVER >= 0x0400 */
//
// Error handling.
//
DWORD APIENTRY
WNetGetLastErrorA(
LPDWORD lpError,
LPSTR lpErrorBuf,
DWORD nErrorBufSize,
LPSTR lpNameBuf,
DWORD nNameBufSize
);
DWORD APIENTRY
WNetGetLastErrorW(
LPDWORD lpError,
LPWSTR lpErrorBuf,
DWORD nErrorBufSize,
LPWSTR lpNameBuf,
DWORD nNameBufSize
);
#ifdef UNICODE
#define WNetGetLastError WNetGetLastErrorW
#else
#define WNetGetLastError WNetGetLastErrorA
#endif // !UNICODE
//
// STATUS CODES
//
// General
#define WN_SUCCESS NO_ERROR
#define WN_NO_ERROR NO_ERROR
#define WN_NOT_SUPPORTED ERROR_NOT_SUPPORTED
#define WN_CANCEL ERROR_CANCELLED
#define WN_RETRY ERROR_RETRY
#define WN_NET_ERROR ERROR_UNEXP_NET_ERR
#define WN_MORE_DATA ERROR_MORE_DATA
#define WN_BAD_POINTER ERROR_INVALID_ADDRESS
#define WN_BAD_VALUE ERROR_INVALID_PARAMETER
#define WN_BAD_USER ERROR_BAD_USERNAME
#define WN_BAD_PASSWORD ERROR_INVALID_PASSWORD
#define WN_ACCESS_DENIED ERROR_ACCESS_DENIED
#define WN_FUNCTION_BUSY ERROR_BUSY
#define WN_WINDOWS_ERROR ERROR_UNEXP_NET_ERR
#define WN_OUT_OF_MEMORY ERROR_NOT_ENOUGH_MEMORY
#define WN_NO_NETWORK ERROR_NO_NETWORK
#define WN_EXTENDED_ERROR ERROR_EXTENDED_ERROR
#define WN_BAD_LEVEL ERROR_INVALID_LEVEL
#define WN_BAD_HANDLE ERROR_INVALID_HANDLE
#if(WINVER >= 0x0400)
#define WN_NOT_INITIALIZING ERROR_ALREADY_INITIALIZED
#define WN_NO_MORE_DEVICES ERROR_NO_MORE_DEVICES
#endif /* WINVER >= 0x0400 */
// Connection
#define WN_NOT_CONNECTED ERROR_NOT_CONNECTED
#define WN_OPEN_FILES ERROR_OPEN_FILES
#define WN_DEVICE_IN_USE ERROR_DEVICE_IN_USE
#define WN_BAD_NETNAME ERROR_BAD_NET_NAME
#define WN_BAD_LOCALNAME ERROR_BAD_DEVICE
#define WN_ALREADY_CONNECTED ERROR_ALREADY_ASSIGNED
#define WN_DEVICE_ERROR ERROR_GEN_FAILURE
#define WN_CONNECTION_CLOSED ERROR_CONNECTION_UNAVAIL
#define WN_NO_NET_OR_BAD_PATH ERROR_NO_NET_OR_BAD_PATH
#define WN_BAD_PROVIDER ERROR_BAD_PROVIDER
#define WN_CANNOT_OPEN_PROFILE ERROR_CANNOT_OPEN_PROFILE
#define WN_BAD_PROFILE ERROR_BAD_PROFILE
#define WN_BAD_DEV_TYPE ERROR_BAD_DEV_TYPE
// Enumeration
#define WN_NO_MORE_ENTRIES ERROR_NO_MORE_ITEMS
#define WN_NOT_CONTAINER ERROR_NOT_CONTAINER
#if(WINVER >= 0x0400)
// Authentication
#define WN_NOT_AUTHENTICATED ERROR_NOT_AUTHENTICATED
#define WN_NOT_LOGGED_ON ERROR_NOT_LOGGED_ON
#define WN_NOT_VALIDATED ERROR_NO_LOGON_SERVERS
#endif /* WINVER >= 0x0400 */
// // ;internal
// For Shell/System // ;internal
// // ;internal
DWORD APIENTRY // ;internal
WNetInitialize( // ;internal
void // ;internal
); // ;internal
typedef struct _NETCONNECTINFOSTRUCT{ // ;internal
DWORD cbStructure; // ;internal
DWORD dwFlags; // ;internal
DWORD dwSpeed; // ;internal
DWORD dwDelay; // ;internal
DWORD dwOptDataSize; // ;internal
} NETCONNECTINFOSTRUCT, *LPNETCONNECTINFOSTRUCT; // ;internal
#define WNCON_FORNETCARD 0x00000001 // ;internal
#define WNCON_NOTROUTED 0x00000002 // ;internal
#define WNCON_SLOWLINK 0x00000004 // ;internal
#define WNCON_DYNAMIC 0x00000008 // ;internal
DWORD APIENTRY // ;internal
MultinetGetConnectionPerformanceA( // ;internal
LPNETRESOURCEA lpNetResource, // ;internal
LPNETCONNECTINFOSTRUCT lpNetConnectInfoStruct // ;internal
); // ;internal
MultinetGetConnectionPerformanceW( // ;internal
LPNETRESOURCEW lpNetResource, // ;internal
LPNETCONNECTINFOSTRUCT lpNetConnectInfoStruct // ;internal
); // ;internal
#ifdef UNICODE // ;internal
#define MultinetGetConnectionPerformance MultinetGetConnectionPerformanceW // ;internal
#else // ;internal
#define MultinetGetConnectionPerformance MultinetGetConnectionPerformanceA // ;internal
#endif // !UNICODE // ;internal
DWORD APIENTRY // ;internal
MultinetGetErrorTextA( // ;internal
LPSTR lpErrorTextBuf, // ;internal
LPDWORD lpnErrorBufSize, // ;internal
LPSTR lpProviderNameBuf, // ;internal
LPDWORD lpnNameBufSize // ;internal
); // ;internal
MultinetGetErrorTextW( // ;internal
LPWSTR lpErrorTextBuf, // ;internal
LPDWORD lpnErrorBufSize, // ;internal
LPWSTR lpProviderNameBuf, // ;internal
LPDWORD lpnNameBufSize // ;internal
); // ;internal
#ifdef UNICODE // ;internal
#define MultinetGetErrorText MultinetGetErrorTextW // ;internal
#else // ;internal
#define MultinetGetErrorText MultinetGetErrorTextA // ;internal
#endif // !UNICODE // ;internal
#ifdef __cplusplus
}
#endif
#endif // _WINNETWK_