📄 winnetwk.pas
字号:
//
// Network Connection Dialogs.
//
function WNetConnectionDialog(hwnd: HWND; dwType: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetConnectionDialog}
function WNetDisconnectDialog(hwnd: HWND; dwType: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetDisconnectDialog}
type
LPCONNECTDLGSTRUCTA = ^CONNECTDLGSTRUCTA;
{$EXTERNALSYM LPCONNECTDLGSTRUCTA}
_CONNECTDLGSTRUCTA = record
cbStructure: DWORD; // size of this structure in bytes
hwndOwner: HWND; // owner window for the dialog
lpConnRes: LPNETRESOURCEA; // Requested Resource info
dwFlags: DWORD; // flags (see below)
dwDevNum: DWORD; // number of devices connected to
end;
{$EXTERNALSYM _CONNECTDLGSTRUCTA}
CONNECTDLGSTRUCTA = _CONNECTDLGSTRUCTA;
{$EXTERNALSYM CONNECTDLGSTRUCTA}
TConnectDlgStructA = CONNECTDLGSTRUCTA;
PConnectDlgStructA = LPCONNECTDLGSTRUCTA;
LPCONNECTDLGSTRUCTW = ^CONNECTDLGSTRUCTW;
{$EXTERNALSYM LPCONNECTDLGSTRUCTW}
_CONNECTDLGSTRUCTW = record
cbStructure: DWORD; // size of this structure in bytes
hwndOwner: HWND; // owner window for the dialog
lpConnRes: LPNETRESOURCEW; // Requested Resource info
dwFlags: DWORD; // flags (see below)
dwDevNum: DWORD; // number of devices connected to
end;
{$EXTERNALSYM _CONNECTDLGSTRUCTW}
CONNECTDLGSTRUCTW = _CONNECTDLGSTRUCTW;
{$EXTERNALSYM CONNECTDLGSTRUCTW}
TConnectDlgStructW = CONNECTDLGSTRUCTW;
PConnectDlgStructW = LPCONNECTDLGSTRUCTW;
{$IFDEF UNICODE}
CONNECTDLGSTRUCT = CONNECTDLGSTRUCTW;
{$EXTERNALSYM CONNECTDLGSTRUCT}
LPCONNECTDLGSTRUCT = LPCONNECTDLGSTRUCTW;
{$EXTERNALSYM LPCONNECTDLGSTRUCT}
TConnectDlgStruct = TConnectDlgStructW;
PConnectDlgStruct = PConnectDlgStructW;
{$ELSE}
CONNECTDLGSTRUCT = CONNECTDLGSTRUCTA;
{$EXTERNALSYM CONNECTDLGSTRUCT}
LPCONNECTDLGSTRUCT = LPCONNECTDLGSTRUCTA;
{$EXTERNALSYM LPCONNECTDLGSTRUCT}
TConnectDlgStruct = TConnectDlgStructA;
PConnectDlgStruct = PConnectDlgStructA;
{$ENDIF}
const
CONNDLG_RO_PATH = $00000001; // Resource path should be read-only
{$EXTERNALSYM CONNDLG_RO_PATH}
CONNDLG_CONN_POINT = $00000002; // Netware -style movable connection point enabled
{$EXTERNALSYM CONNDLG_CONN_POINT}
CONNDLG_USE_MRU = $00000004; // Use MRU combobox
{$EXTERNALSYM CONNDLG_USE_MRU}
CONNDLG_HIDE_BOX = $00000008; // Hide persistent connect checkbox
{$EXTERNALSYM CONNDLG_HIDE_BOX}
//
// 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
//
CONNDLG_PERSIST = $00000010; // Force persistent connection
{$EXTERNALSYM CONNDLG_PERSIST}
CONNDLG_NOT_PERSIST = $00000020; // Force connection NOT persistent
{$EXTERNALSYM CONNDLG_NOT_PERSIST}
function WNetConnectionDialog1A(var lpConnDlgStruct: CONNECTDLGSTRUCTA): DWORD; stdcall;
{$EXTERNALSYM WNetConnectionDialog1A}
function WNetConnectionDialog1W(var lpConnDlgStruct: CONNECTDLGSTRUCTW): DWORD; stdcall;
{$EXTERNALSYM WNetConnectionDialog1W}
{$IFDEF UNICODE}
function WNetConnectionDialog1(var lpConnDlgStruct: CONNECTDLGSTRUCTW): DWORD; stdcall;
{$EXTERNALSYM WNetConnectionDialog1}
{$ELSE}
function WNetConnectionDialog1(var lpConnDlgStruct: CONNECTDLGSTRUCTA): DWORD; stdcall;
{$EXTERNALSYM WNetConnectionDialog1}
{$ENDIF}
type
LPDISCDLGSTRUCTA = ^DISCDLGSTRUCTA;
{$EXTERNALSYM LPDISCDLGSTRUCTA}
_DISCDLGSTRUCTA = record
cbStructure: DWORD; // size of this structure in bytes
hwndOwner: HWND; // owner window for the dialog
lpLocalName: LPSTR; // local device name
lpRemoteName: LPSTR; // network resource name
dwFlags: DWORD; // flags
end;
{$EXTERNALSYM _DISCDLGSTRUCTA}
DISCDLGSTRUCTA = _DISCDLGSTRUCTA;
{$EXTERNALSYM DISCDLGSTRUCTA}
TDiscDlgStructA = DISCDLGSTRUCTA;
PDiscDlgStructA = LPDISCDLGSTRUCTA;
LPDISCDLGSTRUCTW = ^DISCDLGSTRUCTW;
{$EXTERNALSYM LPDISCDLGSTRUCTW}
_DISCDLGSTRUCTW = record
cbStructure: DWORD; // size of this structure in bytes
hwndOwner: HWND; // owner window for the dialog
lpLocalName: LPWSTR; // local device name
lpRemoteName: LPWSTR; // network resource name
dwFlags: DWORD; // flags
end;
{$EXTERNALSYM _DISCDLGSTRUCTW}
DISCDLGSTRUCTW = _DISCDLGSTRUCTW;
{$EXTERNALSYM DISCDLGSTRUCTW}
TDiscDlgStructW = DISCDLGSTRUCTW;
PDiscDlgStructW = LPDISCDLGSTRUCTW;
{$IFDEF UNICODE}
DISCDLGSTRUCT = DISCDLGSTRUCTW;
{$EXTERNALSYM DISCDLGSTRUCT}
LPDISCDLGSTRUCT = LPDISCDLGSTRUCTW;
{$EXTERNALSYM LPDISCDLGSTRUCT}
TDiscDlgStruct = TDiscDlgStructW;
PDiscDlgStruct = PDiscDlgStructW;
{$ELSE}
DISCDLGSTRUCT = DISCDLGSTRUCTA;
{$EXTERNALSYM DISCDLGSTRUCT}
LPDISCDLGSTRUCT = LPDISCDLGSTRUCTA;
{$EXTERNALSYM LPDISCDLGSTRUCT}
TDiscDlgStruct = TDiscDlgStructA;
PDiscDlgStruct = PDiscDlgStructA;
{$ENDIF}
const
DISC_UPDATE_PROFILE = $00000001;
{$EXTERNALSYM DISC_UPDATE_PROFILE}
DISC_NO_FORCE = $00000040;
{$EXTERNALSYM DISC_NO_FORCE}
function WNetDisconnectDialog1A(const lpConnDlgStruct: DISCDLGSTRUCTA): DWORD; stdcall;
{$EXTERNALSYM WNetDisconnectDialog1A}
function WNetDisconnectDialog1W(const lpConnDlgStruct: DISCDLGSTRUCTW): DWORD; stdcall;
{$EXTERNALSYM WNetDisconnectDialog1W}
{$IFDEF UNICODE}
function WNetDisconnectDialog1(const lpConnDlgStruct: DISCDLGSTRUCTW): DWORD; stdcall;
{$EXTERNALSYM WNetDisconnectDialog1}
{$ELSE}
function WNetDisconnectDialog1(const lpConnDlgStruct: DISCDLGSTRUCTA): DWORD; stdcall;
{$EXTERNALSYM WNetDisconnectDialog1}
{$ENDIF}
//
// Network Browsing.
//
function WNetOpenEnumA(dwScope, dwType, dwUsage: DWORD; lpNetResource: LPNETRESOURCEA;
var lphEnum: LPHANDLE): DWORD; stdcall;
{$EXTERNALSYM WNetOpenEnumA}
function WNetOpenEnumW(dwScope, dwType, dwUsage: DWORD; lpNetResource: LPNETRESOURCEW;
var lphEnum: LPHANDLE): DWORD; stdcall;
{$EXTERNALSYM WNetOpenEnumW}
{$IFDEF UNICODE}
function WNetOpenEnum(dwScope, dwType, dwUsage: DWORD; lpNetResource: LPNETRESOURCEW;
var lphEnum: LPHANDLE): DWORD; stdcall;
{$EXTERNALSYM WNetOpenEnum}
{$ELSE}
function WNetOpenEnum(dwScope, dwType, dwUsage: DWORD; lpNetResource: LPNETRESOURCEA;
var lphEnum: LPHANDLE): DWORD; stdcall;
{$EXTERNALSYM WNetOpenEnum}
{$ENDIF}
function WNetEnumResourceA(hEnum: HANDLE; var lpcCount: DWORD; lpBuffer: LPVOID;
var lpBufferSize: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetEnumResourceA}
function WNetEnumResourceW(hEnum: HANDLE; var lpcCount: DWORD; lpBuffer: LPVOID;
var lpBufferSize: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetEnumResourceW}
{$IFDEF UNICODE}
function WNetEnumResource(hEnum: HANDLE; var lpcCount: DWORD; lpBuffer: LPVOID;
var lpBufferSize: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetEnumResource}
{$ELSE}
function WNetEnumResource(hEnum: HANDLE; var lpcCount: DWORD; lpBuffer: LPVOID;
var lpBufferSize: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetEnumResource}
{$ENDIF}
function WNetCloseEnum(hEnum: HANDLE): DWORD; stdcall;
{$EXTERNALSYM WNetCloseEnum}
function WNetGetResourceParentA(const lpNetResource: NETRESOURCEA;
lpBuffer: LPVOID; var lpcbBuffer: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetGetResourceParentA}
function WNetGetResourceParentW(const lpNetResource: NETRESOURCEW;
lpBuffer: LPVOID; var lpcbBuffer: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetGetResourceParentW}
{$IFDEF UNICODE}
function WNetGetResourceParent(const lpNetResource: NETRESOURCEW;
lpBuffer: LPVOID; var lpcbBuffer: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetGetResourceParent}
{$ELSE}
function WNetGetResourceParent(const lpNetResource: NETRESOURCEA;
lpBuffer: LPVOID; var lpcbBuffer: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetGetResourceParent}
{$ENDIF}
function WNetGetResourceInformationA(const lpNetResource: NETRESOURCEA;
lpBuffer: LPVOID; var lpcbBuffer: DWORD; var lplpSystem: LPSTR): DWORD; stdcall;
{$EXTERNALSYM WNetGetResourceInformationA}
function WNetGetResourceInformationW(const lpNetResource: NETRESOURCEW;
lpBuffer: LPVOID; var lpcbBuffer: DWORD; var lplpSystem: LPWSTR): DWORD; stdcall;
{$EXTERNALSYM WNetGetResourceInformationW}
{$IFDEF UNICODE}
function WNetGetResourceInformation(const lpNetResource: NETRESOURCEW;
lpBuffer: LPVOID; var lpcbBuffer: DWORD; var lplpSystem: LPWSTR): DWORD; stdcall;
{$EXTERNALSYM WNetGetResourceInformation}
{$ELSE}
function WNetGetResourceInformation(const lpNetResource: NETRESOURCEA;
lpBuffer: LPVOID; var lpcbBuffer: DWORD; var lplpSystem: LPSTR): DWORD; stdcall;
{$EXTERNALSYM WNetGetResourceInformation}
{$ENDIF}
//
// Universal Naming.
//
const
UNIVERSAL_NAME_INFO_LEVEL = $00000001;
{$EXTERNALSYM UNIVERSAL_NAME_INFO_LEVEL}
REMOTE_NAME_INFO_LEVEL = $00000002;
{$EXTERNALSYM REMOTE_NAME_INFO_LEVEL}
type
LPUNIVERSAL_NAME_INFOA = ^UNIVERSAL_NAME_INFOA;
{$EXTERNALSYM LPUNIVERSAL_NAME_INFOA}
_UNIVERSAL_NAME_INFOA = record
lpUniversalName: LPSTR;
end;
{$EXTERNALSYM _UNIVERSAL_NAME_INFOA}
UNIVERSAL_NAME_INFOA = _UNIVERSAL_NAME_INFOA;
{$EXTERNALSYM UNIVERSAL_NAME_INFOA}
TUniversalNameInfoA = UNIVERSAL_NAME_INFOA;
PUniversalNameInfoA = LPUNIVERSAL_NAME_INFOA;
LPUNIVERSAL_NAME_INFOW = ^UNIVERSAL_NAME_INFOW;
{$EXTERNALSYM LPUNIVERSAL_NAME_INFOW}
_UNIVERSAL_NAME_INFOW = record
lpUniversalName: LPWSTR;
end;
{$EXTERNALSYM _UNIVERSAL_NAME_INFOW}
UNIVERSAL_NAME_INFOW = _UNIVERSAL_NAME_INFOW;
{$EXTERNALSYM UNIVERSAL_NAME_INFOW}
TUniversalNameInfoW = UNIVERSAL_NAME_INFOW;
PUniversalNameInfoW = LPUNIVERSAL_NAME_INFOW;
{$IFDEF UNICODE}
UNIVERSAL_NAME_INFO = UNIVERSAL_NAME_INFOW;
{$EXTERNALSYM UNIVERSAL_NAME_INFO}
LPUNIVERSAL_NAME_INFO = LPUNIVERSAL_NAME_INFOW;
{$EXTERNALSYM LPUNIVERSAL_NAME_INFO}
TUniversalNameInfo = TUniversalNameInfoW;
PUniversalNameInfo = PUniversalNameInfoW;
{$ELSE}
UNIVERSAL_NAME_INFO = UNIVERSAL_NAME_INFOA;
{$EXTERNALSYM UNIVERSAL_NAME_INFO}
LPUNIVERSAL_NAME_INFO = LPUNIVERSAL_NAME_INFOA;
{$EXTERNALSYM LPUNIVERSAL_NAME_INFO}
TUniversalNameInfo = TUniversalNameInfoA;
PUniversalNameInfo = PUniversalNameInfoA;
{$ENDIF}
LPREMOTE_NAME_INFOA = ^REMOTE_NAME_INFOA;
{$EXTERNALSYM LPREMOTE_NAME_INFOA}
_REMOTE_NAME_INFOA = record
lpUniversalName: LPSTR;
lpConnectionName: LPSTR;
lpRemainingPath: LPSTR;
end;
{$EXTERNALSYM _REMOTE_NAME_INFOA}
REMOTE_NAME_INFOA = _REMOTE_NAME_INFOA;
{$EXTERNALSYM REMOTE_NAME_INFOA}
TRemoteNameInfoA = REMOTE_NAME_INFOA;
PRemoteNameInfoA = LPREMOTE_NAME_INFOA;
LPREMOTE_NAME_INFOW = ^REMOTE_NAME_INFOW;
{$EXTERNALSYM LPREMOTE_NAME_INFOW}
_REMOTE_NAME_INFOW = record
lpUniversalName: LPWSTR;
lpConnectionName: LPWSTR;
lpRemainingPath: LPWSTR;
end;
{$EXTERNALSYM _REMOTE_NAME_INFOW}
REMOTE_NAME_INFOW = _REMOTE_NAME_INFOW;
{$EXTERNALSYM REMOTE_NAME_INFOW}
TRemoteNameInfoW = REMOTE_NAME_INFOW;
PRemoteNameInfoW = LPREMOTE_NAME_INFOW;
{$IFDEF UNICODE}
REMOTE_NAME_INFO = REMOTE_NAME_INFOW;
{$EXTERNALSYM REMOTE_NAME_INFO}
LPREMOTE_NAME_INFO = LPREMOTE_NAME_INFOW;
{$EXTERNALSYM LPREMOTE_NAME_INFO}
TRemoteNameInfo = TRemoteNameInfoW;
PRemoteNameInfo = PRemoteNameInfoW;
{$ELSE}
REMOTE_NAME_INFO = REMOTE_NAME_INFOA;
{$EXTERNALSYM REMOTE_NAME_INFO}
LPREMOTE_NAME_INFO = LPREMOTE_NAME_INFOA;
{$EXTERNALSYM LPREMOTE_NAME_INFO}
TRemoteNameInfo = TRemoteNameInfoA;
PRemoteNameInfo = PRemoteNameInfoA;
{$ENDIF}
function WNetGetUniversalNameA(lpLocalPath: LPCSTR; dwInfoLevel: DWORD;
lpBuffer: LPVOID; var lpBufferSize: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetGetUniversalNameA}
function WNetGetUniversalNameW(lpLocalPath: LPCWSTR; dwInfoLevel: DWORD;
lpBuffer: LPVOID; var lpBufferSize: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetGetUniversalNameW}
{$IFDEF UNICODE}
function WNetGetUniversalName(lpLocalPath: LPCWSTR; dwInfoLevel: DWORD;
lpBuffer: LPVOID; var lpBufferSize: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetGetUniversalName}
{$ELSE}
function WNetGetUniversalName(lpLocalPath: LPCSTR; dwInfoLevel: DWORD;
lpBuffer: LPVOID; var lpBufferSize: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetGetUniversalName}
{$ENDIF}
//
// Authentication and Logon/Logoff.
//
function WNetGetUserA(lpName: LPCSTR; lpUserName: LPSTR; var lpnLength: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetGetUserA}
function WNetGetUserW(lpName: LPCWSTR; lpUserName: LPWSTR; var lpnLength: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetGetUserW}
{$IFDEF UNICODE}
function WNetGetUser(lpName: LPCWSTR; lpUserName: LPWSTR; var lpnLength: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetGetUser}
{$ELSE}
function WNetGetUser(lpName: LPCSTR; lpUserName: LPSTR; var lpnLength: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetGetUser}
{$ENDIF}
//
// Other.
//
const
WNFMT_MULTILINE = $01;
{$EXTERNALSYM WNFMT_MULTILINE}
WNFMT_ABBREVIATED = $02;
{$EXTERNALSYM WNFMT_ABBREVIATED}
WNFMT_INENUM = $10;
{$EXTERNALSYM WNFMT_INENUM}
WNFMT_CONNECTION = $20;
{$EXTERNALSYM WNFMT_CONNECTION}
function WNetGetProviderNameA(dwNetType: DWORD; lpProviderName: LPSTR;
var lpBufferSize: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetGetProviderNameA}
function WNetGetProviderNameW(dwNetType: DWORD; lpProviderName: LPWSTR;
var lpBufferSize: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetGetProviderNameW}
{$IFDEF UNICODE}
function WNetGetProviderName(dwNetType: DWORD; lpProviderName: LPWSTR;
var lpBufferSize: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetGetProviderName}
{$ELSE}
function WNetGetProviderName(dwNetType: DWORD; lpProviderName: LPSTR;
var lpBufferSize: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetGetProviderName}
{$ENDIF}
type
LPNETINFOSTRUCT = ^NETINFOSTRUCT;
{$EXTERNALSYM LPNETINFOSTRUCT}
_NETINFOSTRUCT = record
cbStructure: DWORD;
dwProviderVersion: DWORD;
dwStatus: DWORD;
dwCharacteristics: DWORD;
dwHandle: ULONG_PTR;
wNetType: WORD;
dwPrinters: DWORD;
dwDrives: DWORD;
end;
{$EXTERNALSYM _NETINFOSTRUCT}
NETINFOSTRUCT = _NETINFOSTRUCT;
{$EXTERNALSYM NETINFOSTRUCT}
TNetInfoStruct = NETINFOSTRUCT;
PNetInfoStruct = LPNETINFOSTRUCT;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -