blob: 7601279005fa8570893279ada769aaa68f53c775 [file] [log] [blame]
/**
* Windows API header module
*
* Translated from MinGW Windows headers
*
* Authors: Stewart Gordon
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
* Source: $(DRUNTIMESRC src/core/sys/windows/_winnetwk.d)
*/
module core.sys.windows.winnetwk;
version (Windows):
@system:
version (ANSI) {} else version = Unicode;
pragma(lib, "mpr");
import core.sys.windows.winbase, core.sys.windows.winerror, core.sys.windows.winnt;
enum : DWORD {
WNNC_NET_MSNET = 0x00010000,
WNNC_NET_LANMAN = 0x00020000,
WNNC_NET_NETWARE = 0x00030000,
WNNC_NET_VINES = 0x00040000,
WNNC_NET_10NET = 0x00050000,
WNNC_NET_LOCUS = 0x00060000,
WNNC_NET_SUN_PC_NFS = 0x00070000,
WNNC_NET_LANSTEP = 0x00080000,
WNNC_NET_9TILES = 0x00090000,
WNNC_NET_LANTASTIC = 0x000A0000,
WNNC_NET_AS400 = 0x000B0000,
WNNC_NET_FTP_NFS = 0x000C0000,
WNNC_NET_PATHWORKS = 0x000D0000,
WNNC_NET_LIFENET = 0x000E0000,
WNNC_NET_POWERLAN = 0x000F0000,
WNNC_NET_BWNFS = 0x00100000,
WNNC_NET_COGENT = 0x00110000,
WNNC_NET_FARALLON = 0x00120000,
WNNC_NET_APPLETALK = 0x00130000,
WNNC_NET_INTERGRAPH = 0x00140000,
WNNC_NET_SYMFONET = 0x00150000,
WNNC_NET_CLEARCASE = 0x00160000,
WNNC_NET_FRONTIER = 0x00170000,
WNNC_NET_BMC = 0x00180000,
WNNC_NET_DCE = 0x00190000,
WNNC_NET_AVID = 0x001A0000,
WNNC_NET_DOCUSPACE = 0x001B0000,
WNNC_NET_MANGOSOFT = 0x001C0000,
WNNC_NET_SERNET = 0x001D0000,
WNNC_NET_DECORB = 0x00200000,
WNNC_NET_PROTSTOR = 0x00210000,
WNNC_NET_FJ_REDIR = 0x00220000,
WNNC_NET_DISTINCT = 0x00230000,
WNNC_NET_TWINS = 0x00240000,
WNNC_NET_RDR2SAMPLE = 0x00250000,
WNNC_NET_CSC = 0x00260000,
WNNC_NET_3IN1 = 0x00270000,
WNNC_NET_EXTENDNET = 0x00290000,
WNNC_NET_OBJECT_DIRE = 0x00300000,
WNNC_NET_MASFAX = 0x00310000,
WNNC_NET_HOB_NFS = 0x00320000,
WNNC_NET_SHIVA = 0x00330000,
WNNC_NET_IBMAL = 0x00340000,
WNNC_CRED_MANAGER = 0xFFFF0000
}
enum : DWORD {
RESOURCE_CONNECTED = 1,
RESOURCE_GLOBALNET = 2,
RESOURCE_REMEMBERED = 3,
RESOURCE_RECENT = 4,
RESOURCE_CONTEXT = 5
}
enum DWORD
RESOURCETYPE_ANY = 0,
RESOURCETYPE_DISK = 1,
RESOURCETYPE_PRINT = 2,
RESOURCETYPE_RESERVED = 8,
RESOURCETYPE_UNKNOWN = 0xFFFFFFFF;
enum DWORD
RESOURCEUSAGE_CONNECTABLE = 0x00000001,
RESOURCEUSAGE_CONTAINER = 0x00000002,
RESOURCEUSAGE_NOLOCALDEVICE = 0x00000004,
RESOURCEUSAGE_SIBLING = 0x00000008,
RESOURCEUSAGE_ATTACHED = 0x00000010,
RESOURCEUSAGE_ALL = (RESOURCEUSAGE_CONNECTABLE
| RESOURCEUSAGE_CONTAINER
| RESOURCEUSAGE_ATTACHED),
RESOURCEUSAGE_RESERVED = 0x80000000;
enum : DWORD {
RESOURCEDISPLAYTYPE_GENERIC,
RESOURCEDISPLAYTYPE_DOMAIN,
RESOURCEDISPLAYTYPE_SERVER,
RESOURCEDISPLAYTYPE_SHARE,
RESOURCEDISPLAYTYPE_FILE,
RESOURCEDISPLAYTYPE_GROUP,
RESOURCEDISPLAYTYPE_NETWORK,
RESOURCEDISPLAYTYPE_ROOT,
RESOURCEDISPLAYTYPE_SHAREADMIN,
RESOURCEDISPLAYTYPE_DIRECTORY,
RESOURCEDISPLAYTYPE_TREE // = 10
}
enum NETPROPERTY_PERSISTENT = 1;
enum DWORD
CONNECT_UPDATE_PROFILE = 1,
CONNECT_UPDATE_RECENT = 2,
CONNECT_TEMPORARY = 4,
CONNECT_INTERACTIVE = 8,
CONNECT_PROMPT = 16,
CONNECT_NEED_DRIVE = 32,
CONNECT_REFCOUNT = 64,
CONNECT_REDIRECT = 128,
CONNECT_LOCALDRIVE = 256,
CONNECT_CURRENT_MEDIA = 512;
enum DWORD
CONNDLG_RO_PATH = 1,
CONNDLG_CONN_POINT = 2,
CONNDLG_USE_MRU = 4,
CONNDLG_HIDE_BOX = 8,
CONNDLG_PERSIST = 16,
CONNDLG_NOT_PERSIST = 32;
enum DWORD
DISC_UPDATE_PROFILE = 1,
DISC_NO_FORCE = 64;
enum DWORD
WNFMT_MULTILINE = 1,
WNFMT_ABBREVIATED = 2,
WNFMT_INENUM = 16,
WNFMT_CONNECTION = 32;
enum : DWORD {
WN_SUCCESS = NO_ERROR,
WN_NO_ERROR = NO_ERROR,
WN_NOT_SUPPORTED = ERROR_NOT_SUPPORTED,
WN_CANCEL = ERROR_CANCELLED,
WN_RETRY = ERROR_RETRY,
WN_NET_ERROR = ERROR_UNEXP_NET_ERR,
WN_MORE_DATA = ERROR_MORE_DATA,
WN_BAD_POINTER = ERROR_INVALID_ADDRESS,
WN_BAD_VALUE = ERROR_INVALID_PARAMETER,
WN_BAD_USER = ERROR_BAD_USERNAME,
WN_BAD_PASSWORD = ERROR_INVALID_PASSWORD,
WN_ACCESS_DENIED = ERROR_ACCESS_DENIED,
WN_FUNCTION_BUSY = ERROR_BUSY,
WN_WINDOWS_ERROR = ERROR_UNEXP_NET_ERR,
WN_OUT_OF_MEMORY = ERROR_NOT_ENOUGH_MEMORY,
WN_NO_NETWORK = ERROR_NO_NETWORK,
WN_EXTENDED_ERROR = ERROR_EXTENDED_ERROR,
WN_BAD_LEVEL = ERROR_INVALID_LEVEL,
WN_BAD_HANDLE = ERROR_INVALID_HANDLE,
WN_NOT_INITIALIZING = ERROR_ALREADY_INITIALIZED,
WN_NO_MORE_DEVICES = ERROR_NO_MORE_DEVICES,
WN_NOT_CONNECTED = ERROR_NOT_CONNECTED,
WN_OPEN_FILES = ERROR_OPEN_FILES,
WN_DEVICE_IN_USE = ERROR_DEVICE_IN_USE,
WN_BAD_NETNAME = ERROR_BAD_NET_NAME,
WN_BAD_LOCALNAME = ERROR_BAD_DEVICE,
WN_ALREADY_CONNECTED = ERROR_ALREADY_ASSIGNED,
WN_DEVICE_ERROR = ERROR_GEN_FAILURE,
WN_CONNECTION_CLOSED = ERROR_CONNECTION_UNAVAIL,
WN_NO_NET_OR_BAD_PATH = ERROR_NO_NET_OR_BAD_PATH,
WN_BAD_PROVIDER = ERROR_BAD_PROVIDER,
WN_CANNOT_OPEN_PROFILE = ERROR_CANNOT_OPEN_PROFILE,
WN_BAD_PROFILE = ERROR_BAD_PROFILE,
WN_BAD_DEV_TYPE = ERROR_BAD_DEV_TYPE,
WN_DEVICE_ALREADY_REMEMBERED = ERROR_DEVICE_ALREADY_REMEMBERED,
WN_NO_MORE_ENTRIES = ERROR_NO_MORE_ITEMS,
WN_NOT_CONTAINER = ERROR_NOT_CONTAINER,
WN_NOT_AUTHENTICATED = ERROR_NOT_AUTHENTICATED,
WN_NOT_LOGGED_ON = ERROR_NOT_LOGGED_ON,
WN_NOT_VALIDATED = ERROR_NO_LOGON_SERVERS
}
enum : DWORD {
UNIVERSAL_NAME_INFO_LEVEL = 1,
REMOTE_NAME_INFO_LEVEL
}
enum DWORD
NETINFO_DLL16 = 1,
NETINFO_DISKRED = 4,
NETINFO_PRINTERRED = 8;
enum DWORD
RP_LOGON = 1,
RP_INIFILE = 2;
enum DWORD PP_DISPLAYERRORS = 1;
enum DWORD
WNCON_FORNETCARD = 1,
WNCON_NOTROUTED = 2,
WNCON_SLOWLINK = 4,
WNCON_DYNAMIC = 8;
struct NETRESOURCEA {
DWORD dwScope;
DWORD dwType;
DWORD dwDisplayType;
DWORD dwUsage;
LPSTR lpLocalName;
LPSTR lpRemoteName;
LPSTR lpComment;
LPSTR lpProvider;
}
alias NETRESOURCEA* LPNETRESOURCEA;
struct NETRESOURCEW {
DWORD dwScope;
DWORD dwType;
DWORD dwDisplayType;
DWORD dwUsage;
LPWSTR lpLocalName;
LPWSTR lpRemoteName;
LPWSTR lpComment ;
LPWSTR lpProvider;
}
alias NETRESOURCEW* LPNETRESOURCEW;
struct CONNECTDLGSTRUCTA {
DWORD cbStructure;
HWND hwndOwner;
LPNETRESOURCEA lpConnRes;
DWORD dwFlags;
DWORD dwDevNum;
}
alias CONNECTDLGSTRUCTA* LPCONNECTDLGSTRUCTA;
struct CONNECTDLGSTRUCTW {
DWORD cbStructure;
HWND hwndOwner;
LPNETRESOURCEW lpConnRes;
DWORD dwFlags;
DWORD dwDevNum;
}
alias CONNECTDLGSTRUCTW* LPCONNECTDLGSTRUCTW;
struct DISCDLGSTRUCTA {
DWORD cbStructure;
HWND hwndOwner;
LPSTR lpLocalName;
LPSTR lpRemoteName;
DWORD dwFlags;
}
alias DISCDLGSTRUCTA* LPDISCDLGSTRUCTA;
struct DISCDLGSTRUCTW {
DWORD cbStructure;
HWND hwndOwner;
LPWSTR lpLocalName;
LPWSTR lpRemoteName;
DWORD dwFlags;
}
alias DISCDLGSTRUCTW* LPDISCDLGSTRUCTW;
struct UNIVERSAL_NAME_INFOA {
LPSTR lpUniversalName;
}
alias UNIVERSAL_NAME_INFOA* LPUNIVERSAL_NAME_INFOA;
struct UNIVERSAL_NAME_INFOW {
LPWSTR lpUniversalName;
}
alias UNIVERSAL_NAME_INFOW* LPUNIVERSAL_NAME_INFOW;
struct REMOTE_NAME_INFOA {
LPSTR lpUniversalName;
LPSTR lpConnectionName;
LPSTR lpRemainingPath;
}
alias REMOTE_NAME_INFOA* LPREMOTE_NAME_INFOA;
struct REMOTE_NAME_INFOW {
LPWSTR lpUniversalName;
LPWSTR lpConnectionName;
LPWSTR lpRemainingPath;
}
alias REMOTE_NAME_INFOW* LPREMOTE_NAME_INFOW;
struct NETINFOSTRUCT {
DWORD cbStructure;
DWORD dwProviderVersion;
DWORD dwStatus;
DWORD dwCharacteristics;
ULONG_PTR dwHandle;
WORD wNetType;
DWORD dwPrinters;
DWORD dwDrives;
}
alias NETINFOSTRUCT* LPNETINFOSTRUCT;
extern (Windows) {
alias UINT function(LPCSTR, LPSTR, UINT) PFNGETPROFILEPATHA;
alias UINT function(LPCWSTR, LPWSTR, UINT) PFNGETPROFILEPATHW;
alias UINT function(LPCSTR, LPCSTR, DWORD) PFNRECONCILEPROFILEA;
alias UINT function(LPCWSTR, LPCWSTR, DWORD) PFNRECONCILEPROFILEW;
alias BOOL function(HWND, LPCSTR, LPCSTR, LPCSTR, DWORD)
PFNPROCESSPOLICIESA;
alias BOOL function(HWND, LPCWSTR, LPCWSTR, LPCWSTR, DWORD)
PFNPROCESSPOLICIESW;
}
struct NETCONNECTINFOSTRUCT {
DWORD cbStructure;
DWORD dwFlags;
DWORD dwSpeed;
DWORD dwDelay;
DWORD dwOptDataSize;
}
alias NETCONNECTINFOSTRUCT* LPNETCONNECTINFOSTRUCT;
extern (Windows) {
DWORD WNetAddConnection2A(LPNETRESOURCEA, LPCSTR, LPCSTR, DWORD);
DWORD WNetAddConnection2W(LPNETRESOURCEW, LPCWSTR, LPCWSTR, DWORD);
DWORD WNetAddConnection3A(HWND, LPNETRESOURCEA, LPCSTR, LPCSTR, DWORD);
DWORD WNetAddConnection3W(HWND, LPNETRESOURCEW, LPCWSTR, LPCWSTR, DWORD);
DWORD WNetCancelConnection2A(LPCSTR, DWORD, BOOL);
DWORD WNetCancelConnection2W(LPCWSTR, DWORD, BOOL);
DWORD WNetGetConnectionA(LPCSTR, LPSTR, PDWORD);
DWORD WNetGetConnectionW(LPCWSTR, LPWSTR, PDWORD);
DWORD WNetUseConnectionA(HWND, LPNETRESOURCEA, LPCSTR, LPCSTR, DWORD,
LPSTR, PDWORD, PDWORD);
DWORD WNetUseConnectionW(HWND, LPNETRESOURCEW, LPCWSTR, LPCWSTR, DWORD,
LPWSTR, PDWORD, PDWORD);
DWORD WNetSetConnectionA(LPCSTR, DWORD, PVOID);
DWORD WNetSetConnectionW(LPCWSTR, DWORD, PVOID);
DWORD WNetConnectionDialog(HWND, DWORD);
DWORD WNetDisconnectDialog(HWND, DWORD);
DWORD WNetConnectionDialog1A(LPCONNECTDLGSTRUCTA);
DWORD WNetConnectionDialog1W(LPCONNECTDLGSTRUCTW);
DWORD WNetDisconnectDialog1A(LPDISCDLGSTRUCTA);
DWORD WNetDisconnectDialog1W(LPDISCDLGSTRUCTW);
DWORD WNetOpenEnumA(DWORD, DWORD, DWORD, LPNETRESOURCEA, LPHANDLE);
DWORD WNetOpenEnumW(DWORD, DWORD, DWORD, LPNETRESOURCEW, LPHANDLE);
DWORD WNetEnumResourceA(HANDLE, PDWORD, PVOID, PDWORD);
DWORD WNetEnumResourceW(HANDLE, PDWORD, PVOID, PDWORD);
DWORD WNetCloseEnum(HANDLE);
DWORD WNetGetUniversalNameA(LPCSTR, DWORD, PVOID, PDWORD);
DWORD WNetGetUniversalNameW(LPCWSTR, DWORD, PVOID, PDWORD);
DWORD WNetGetUserA(LPCSTR, LPSTR, PDWORD);
DWORD WNetGetUserW(LPCWSTR, LPWSTR, PDWORD);
DWORD WNetGetProviderNameA(DWORD, LPSTR, PDWORD);
DWORD WNetGetProviderNameW(DWORD, LPWSTR, PDWORD);
DWORD WNetGetNetworkInformationA(LPCSTR, LPNETINFOSTRUCT);
DWORD WNetGetNetworkInformationW(LPCWSTR, LPNETINFOSTRUCT);
DWORD WNetGetResourceInformationA(LPNETRESOURCEA, LPVOID, LPDWORD,
LPSTR*);
DWORD WNetGetResourceInformationW(LPNETRESOURCEA, LPVOID, LPDWORD,
LPWSTR*);
DWORD WNetGetResourceParentA(LPNETRESOURCEA, LPVOID, LPDWORD);
DWORD WNetGetResourceParentW(LPNETRESOURCEW, LPVOID, LPDWORD);
DWORD WNetGetLastErrorA(PDWORD, LPSTR, DWORD, LPSTR, DWORD);
DWORD WNetGetLastErrorW(PDWORD, LPWSTR, DWORD, LPWSTR, DWORD);
DWORD MultinetGetConnectionPerformanceA(LPNETRESOURCEA,
LPNETCONNECTINFOSTRUCT);
DWORD MultinetGetConnectionPerformanceW(LPNETRESOURCEW,
LPNETCONNECTINFOSTRUCT);
deprecated {
DWORD WNetAddConnectionA(LPCSTR, LPCSTR, LPCSTR);
DWORD WNetAddConnectionW(LPCWSTR, LPCWSTR, LPCWSTR);
DWORD WNetCancelConnectionA(LPCSTR, BOOL);
DWORD WNetCancelConnectionW(LPCWSTR, BOOL);
}
}
version (Unicode) {
alias PFNGETPROFILEPATHW PFNGETPROFILEPATH;
alias PFNRECONCILEPROFILEW PFNRECONCILEPROFILE;
alias PFNPROCESSPOLICIESW PFNPROCESSPOLICIES;
alias NETRESOURCEW NETRESOURCE;
alias CONNECTDLGSTRUCTW CONNECTDLGSTRUCT;
alias DISCDLGSTRUCTW DISCDLGSTRUCT;
alias REMOTE_NAME_INFOW REMOTE_NAME_INFO;
alias UNIVERSAL_NAME_INFOW UNIVERSAL_NAME_INFO;
alias WNetAddConnection2W WNetAddConnection2;
alias WNetAddConnection3W WNetAddConnection3;
alias WNetCancelConnection2W WNetCancelConnection2;
alias WNetGetConnectionW WNetGetConnection;
alias WNetUseConnectionW WNetUseConnection;
alias WNetSetConnectionW WNetSetConnection;
alias WNetConnectionDialog1W WNetConnectionDialog1;
alias WNetDisconnectDialog1W WNetDisconnectDialog1;
alias WNetOpenEnumW WNetOpenEnum;
alias WNetEnumResourceW WNetEnumResource;
alias WNetGetUniversalNameW WNetGetUniversalName;
alias WNetGetUserW WNetGetUser;
alias WNetGetProviderNameW WNetGetProviderName;
alias WNetGetNetworkInformationW WNetGetNetworkInformation;
alias WNetGetResourceInformationW WNetGetResourceInformation;
alias WNetGetResourceParentW WNetGetResourceParent;
alias WNetGetLastErrorW WNetGetLastError;
alias MultinetGetConnectionPerformanceW MultinetGetConnectionPerformance;
deprecated {
alias WNetAddConnectionW WNetAddConnection;
alias WNetCancelConnectionW WNetCancelConnection;
}
} else {
alias PFNGETPROFILEPATHA PFNGETPROFILEPATH;
alias PFNRECONCILEPROFILEA PFNRECONCILEPROFILE;
alias PFNPROCESSPOLICIESA PFNPROCESSPOLICIES;
alias NETRESOURCEA NETRESOURCE;
alias CONNECTDLGSTRUCTA CONNECTDLGSTRUCT;
alias DISCDLGSTRUCTA DISCDLGSTRUCT;
alias REMOTE_NAME_INFOA REMOTE_NAME_INFO;
alias UNIVERSAL_NAME_INFOA UNIVERSAL_NAME_INFO;
alias WNetAddConnection2A WNetAddConnection2;
alias WNetAddConnection3A WNetAddConnection3;
alias WNetCancelConnection2A WNetCancelConnection2;
alias WNetGetConnectionA WNetGetConnection;
alias WNetUseConnectionA WNetUseConnection;
alias WNetSetConnectionA WNetSetConnection;
alias WNetConnectionDialog1A WNetConnectionDialog1;
alias WNetDisconnectDialog1A WNetDisconnectDialog1;
alias WNetOpenEnumA WNetOpenEnum;
alias WNetEnumResourceA WNetEnumResource;
alias WNetGetUniversalNameA WNetGetUniversalName;
alias WNetGetUserA WNetGetUser;
alias WNetGetProviderNameA WNetGetProviderName;
alias WNetGetNetworkInformationA WNetGetNetworkInformation;
alias WNetGetResourceInformationA WNetGetResourceInformation;
alias WNetGetResourceParentA WNetGetResourceParent;
alias WNetGetLastErrorA WNetGetLastError;
alias MultinetGetConnectionPerformanceA MultinetGetConnectionPerformance;
deprecated {
alias WNetAddConnectionA WNetAddConnection;
alias WNetCancelConnectionA WNetCancelConnection;
}
}
alias NETRESOURCE* LPNETRESOURCE;
alias CONNECTDLGSTRUCT* LPCONNECTDLGSTRUCT;
alias DISCDLGSTRUCT* LPDISCDLGSTRUCT;
alias REMOTE_NAME_INFO* LPREMOTE_NAME_INFO;
alias UNIVERSAL_NAME_INFO* LPUNIVERSAL_NAME_INFO;