⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 winnetwk.pas

📁 详细Windows API大全有关知识以及相关问题
💻 PAS
📖 第 1 页 / 共 3 页
字号:

const
  NETINFO_DLL16      = $00000001; // Provider running as 16 bit Winnet Driver
  {$EXTERNALSYM NETINFO_DLL16}
  NETINFO_DISKRED    = $00000004; // Provider requires disk redirections to connect
  {$EXTERNALSYM NETINFO_DISKRED}
  NETINFO_PRINTERRED = $00000008; // Provider requires printer redirections to connect
  {$EXTERNALSYM NETINFO_PRINTERRED}

function WNetGetNetworkInformationA(lpProvider: LPCSTR;
  var lpNetInfoStruct: NETINFOSTRUCT): DWORD; stdcall;
{$EXTERNALSYM WNetGetNetworkInformationA}
function WNetGetNetworkInformationW(lpProvider: LPCWSTR;
  var lpNetInfoStruct: NETINFOSTRUCT): DWORD; stdcall;
{$EXTERNALSYM WNetGetNetworkInformationW}

{$IFDEF UNICODE}
function WNetGetNetworkInformation(lpProvider: LPCWSTR;
  var lpNetInfoStruct: NETINFOSTRUCT): DWORD; stdcall;
{$EXTERNALSYM WNetGetNetworkInformation}
{$ELSE}
function WNetGetNetworkInformation(lpProvider: LPCSTR;
  var lpNetInfoStruct: NETINFOSTRUCT): DWORD; stdcall;
{$EXTERNALSYM WNetGetNetworkInformation}
{$ENDIF}

//
//  User Profiles.
//

type
  PFNGETPROFILEPATHA = function (pszUsername: LPCSTR; pszBuffer: LPSTR;
    cbBuffer: UINT): UINT; stdcall;
  {$EXTERNALSYM PFNGETPROFILEPATHA}

  PFNGETPROFILEPATHW = function (pszUsername: LPCWSTR; pszBuffer: LPWSTR;
    cbBuffer: UINT): UINT; stdcall;
  {$EXTERNALSYM PFNGETPROFILEPATHW}

{$IFDEF UNICODE}
  PFNGETPROFILEPATH = PFNGETPROFILEPATHW;
  {$EXTERNALSYM PFNGETPROFILEPATH}
{$ELSE}
  PFNGETPROFILEPATH = PFNGETPROFILEPATHA;
  {$EXTERNALSYM PFNGETPROFILEPATH}
{$ENDIF}

  PFNRECONCILEPROFILEA = function (pszCentralFile, pszLocalFile: LPCSTR;
    dwFlags: DWORD): UINT; stdcall;
  {$EXTERNALSYM PFNRECONCILEPROFILEA}

  PFNRECONCILEPROFILEW = function (pszCentralFile, pszLocalFile: LPCWSTR;
    dwFlags: DWORD): UINT; stdcall;
  {$EXTERNALSYM PFNRECONCILEPROFILEW}


{$IFDEF UNICODE}
  PFNRECONCILEPROFILE = PFNRECONCILEPROFILEW;
  {$EXTERNALSYM PFNRECONCILEPROFILE}
{$ELSE}
  PFNRECONCILEPROFILE = PFNRECONCILEPROFILEA;
  {$EXTERNALSYM PFNRECONCILEPROFILE}  
{$ENDIF}

const
  RP_LOGON   = $01; // if set, do for logon, else for logoff
  {$EXTERNALSYM RP_LOGON}
  RP_INIFILE = $02; // if set, reconcile .INI file, else reg. hive
  {$EXTERNALSYM RP_INIFILE}

//
//  Policies.
//

type
  PFNPROCESSPOLICIESA = function (hwnd: HWND; pszPath, pszUsername,
    pszComputerName: LPCSTR; dwFlags: DWORD): BOOL; stdcall;
  {$EXTERNALSYM PFNPROCESSPOLICIESA}

  PFNPROCESSPOLICIESW = function (hwnd: HWND; pszPath, pszUsername,
    pszComputerName: LPCWSTR; dwFlags: DWORD): BOOL; stdcall;
  {$EXTERNALSYM PFNPROCESSPOLICIESW}

{$IFDEF UNICODE}
  PFNPROCESSPOLICIES = PFNPROCESSPOLICIESW;
  {$EXTERNALSYM PFNPROCESSPOLICIES}
{$ELSE}
  PFNPROCESSPOLICIES = PFNPROCESSPOLICIESA;
  {$EXTERNALSYM PFNPROCESSPOLICIES}  
{$ENDIF}

const
  PP_DISPLAYERRORS = $01; // if set, display error messages, else fail silently if error
  {$EXTERNALSYM PP_DISPLAYERRORS}

//
//  Error handling.
//

function WNetGetLastErrorA(var lpError: DWORD; lpErrorBuf: LPSTR;
  nErrorBufSize: DWORD; lpNameBuf: LPSTR; nNameBufSize: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetGetLastErrorA}
function WNetGetLastErrorW(var lpError: DWORD; lpErrorBuf: LPWSTR;
  nErrorBufSize: DWORD; lpNameBuf: LPWSTR; nNameBufSize: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetGetLastErrorW}

{$IFDEF UNICODE}
function WNetGetLastError(var lpError: DWORD; lpErrorBuf: LPWSTR;
  nErrorBufSize: DWORD; lpNameBuf: LPWSTR; nNameBufSize: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetGetLastError}
{$ELSE}
function WNetGetLastError(var lpError: DWORD; lpErrorBuf: LPSTR;
  nErrorBufSize: DWORD; lpNameBuf: LPSTR; nNameBufSize: DWORD): DWORD; stdcall;
{$EXTERNALSYM WNetGetLastError}
{$ENDIF}

//
//  STATUS CODES
//

// General

const
  WN_SUCCESS          = NO_ERROR;
  {$EXTERNALSYM WN_SUCCESS}
  WN_NO_ERROR         = NO_ERROR;
  {$EXTERNALSYM WN_NO_ERROR}
  WN_NOT_SUPPORTED    = ERROR_NOT_SUPPORTED;
  {$EXTERNALSYM WN_NOT_SUPPORTED}
  WN_CANCEL           = ERROR_CANCELLED;
  {$EXTERNALSYM WN_CANCEL}
  WN_RETRY            = ERROR_RETRY;
  {$EXTERNALSYM WN_RETRY}
  WN_NET_ERROR        = ERROR_UNEXP_NET_ERR;
  {$EXTERNALSYM WN_NET_ERROR}
  WN_MORE_DATA        = ERROR_MORE_DATA;
  {$EXTERNALSYM WN_MORE_DATA}
  WN_BAD_POINTER      = ERROR_INVALID_ADDRESS;
  {$EXTERNALSYM WN_BAD_POINTER}
  WN_BAD_VALUE        = ERROR_INVALID_PARAMETER;
  {$EXTERNALSYM WN_BAD_VALUE}
  WN_BAD_USER         = ERROR_BAD_USERNAME;
  {$EXTERNALSYM WN_BAD_USER}
  WN_BAD_PASSWORD     = ERROR_INVALID_PASSWORD;
  {$EXTERNALSYM WN_BAD_PASSWORD}
  WN_ACCESS_DENIED    = ERROR_ACCESS_DENIED;
  {$EXTERNALSYM WN_ACCESS_DENIED}
  WN_FUNCTION_BUSY    = ERROR_BUSY;
  {$EXTERNALSYM WN_FUNCTION_BUSY}
  WN_WINDOWS_ERROR    = ERROR_UNEXP_NET_ERR;
  {$EXTERNALSYM WN_WINDOWS_ERROR}
  WN_OUT_OF_MEMORY    = ERROR_NOT_ENOUGH_MEMORY;
  {$EXTERNALSYM WN_OUT_OF_MEMORY}
  WN_NO_NETWORK       = ERROR_NO_NETWORK;
  {$EXTERNALSYM WN_NO_NETWORK}
  WN_EXTENDED_ERROR   = ERROR_EXTENDED_ERROR;
  {$EXTERNALSYM WN_EXTENDED_ERROR}
  WN_BAD_LEVEL        = ERROR_INVALID_LEVEL;
  {$EXTERNALSYM WN_BAD_LEVEL}
  WN_BAD_HANDLE       = ERROR_INVALID_HANDLE;
  {$EXTERNALSYM WN_BAD_HANDLE}
  WN_NOT_INITIALIZING = ERROR_ALREADY_INITIALIZED;
  {$EXTERNALSYM WN_NOT_INITIALIZING}
  WN_NO_MORE_DEVICES  = ERROR_NO_MORE_DEVICES;
  {$EXTERNALSYM WN_NO_MORE_DEVICES}

// Connection

  WN_NOT_CONNECTED             = ERROR_NOT_CONNECTED;
  {$EXTERNALSYM WN_NOT_CONNECTED}
  WN_OPEN_FILES                = ERROR_OPEN_FILES;
  {$EXTERNALSYM WN_OPEN_FILES}
  WN_DEVICE_IN_USE             = ERROR_DEVICE_IN_USE;
  {$EXTERNALSYM WN_DEVICE_IN_USE}
  WN_BAD_NETNAME               = ERROR_BAD_NET_NAME;
  {$EXTERNALSYM WN_BAD_NETNAME}
  WN_BAD_LOCALNAME             = ERROR_BAD_DEVICE;
  {$EXTERNALSYM WN_BAD_LOCALNAME}
  WN_ALREADY_CONNECTED         = ERROR_ALREADY_ASSIGNED;
  {$EXTERNALSYM WN_ALREADY_CONNECTED}
  WN_DEVICE_ERROR              = ERROR_GEN_FAILURE;
  {$EXTERNALSYM WN_DEVICE_ERROR}
  WN_CONNECTION_CLOSED         = ERROR_CONNECTION_UNAVAIL;
  {$EXTERNALSYM WN_CONNECTION_CLOSED}
  WN_NO_NET_OR_BAD_PATH        = ERROR_NO_NET_OR_BAD_PATH;
  {$EXTERNALSYM WN_NO_NET_OR_BAD_PATH}
  WN_BAD_PROVIDER              = ERROR_BAD_PROVIDER;
  {$EXTERNALSYM WN_BAD_PROVIDER}
  WN_CANNOT_OPEN_PROFILE       = ERROR_CANNOT_OPEN_PROFILE;
  {$EXTERNALSYM WN_CANNOT_OPEN_PROFILE}
  WN_BAD_PROFILE               = ERROR_BAD_PROFILE;
  {$EXTERNALSYM WN_BAD_PROFILE}
  WN_BAD_DEV_TYPE              = ERROR_BAD_DEV_TYPE;
  {$EXTERNALSYM WN_BAD_DEV_TYPE}
  WN_DEVICE_ALREADY_REMEMBERED = ERROR_DEVICE_ALREADY_REMEMBERED;
  {$EXTERNALSYM WN_DEVICE_ALREADY_REMEMBERED}
  WN_CONNECTED_OTHER_PASSWORD  = ERROR_CONNECTED_OTHER_PASSWORD;
  {$EXTERNALSYM WN_CONNECTED_OTHER_PASSWORD}

// Enumeration

  WN_NO_MORE_ENTRIES = ERROR_NO_MORE_ITEMS;
  {$EXTERNALSYM WN_NO_MORE_ENTRIES}
  WN_NOT_CONTAINER   = ERROR_NOT_CONTAINER;
  {$EXTERNALSYM WN_NOT_CONTAINER}

// Authentication

  WN_NOT_AUTHENTICATED = ERROR_NOT_AUTHENTICATED;
  {$EXTERNALSYM WN_NOT_AUTHENTICATED}
  WN_NOT_LOGGED_ON     = ERROR_NOT_LOGGED_ON;
  {$EXTERNALSYM WN_NOT_LOGGED_ON}
  WN_NOT_VALIDATED     = ERROR_NO_LOGON_SERVERS;
  {$EXTERNALSYM WN_NOT_VALIDATED}

//
//  For Shell
//

type
  LPNETCONNECTINFOSTRUCT = ^NETCONNECTINFOSTRUCT;
  {$EXTERNALSYM LPNETCONNECTINFOSTRUCT}
  _NETCONNECTINFOSTRUCT = record
    cbStructure: DWORD;
    dwFlags: DWORD;
    dwSpeed: DWORD;
    dwDelay: DWORD;
    dwOptDataSize: DWORD;
  end;
  {$EXTERNALSYM _NETCONNECTINFOSTRUCT}
  NETCONNECTINFOSTRUCT = _NETCONNECTINFOSTRUCT;
  {$EXTERNALSYM NETCONNECTINFOSTRUCT}
  TNetConnectInfoStruct = NETCONNECTINFOSTRUCT;
  PNetConnectInfoStruct = LPNETCONNECTINFOSTRUCT;

const
  WNCON_FORNETCARD = $00000001;
  {$EXTERNALSYM WNCON_FORNETCARD}
  WNCON_NOTROUTED  = $00000002;
  {$EXTERNALSYM WNCON_NOTROUTED}
  WNCON_SLOWLINK   = $00000004;
  {$EXTERNALSYM WNCON_SLOWLINK}
  WNCON_DYNAMIC    = $00000008;
  {$EXTERNALSYM WNCON_DYNAMIC}

function MultinetGetConnectionPerformanceA(const lpNetResource: NETRESOURCEA;
  var lpNetConnectInfoStruct: NETCONNECTINFOSTRUCT): DWORD; stdcall;
{$EXTERNALSYM MultinetGetConnectionPerformanceA}
function MultinetGetConnectionPerformanceW(const lpNetResource: NETRESOURCEW;
  var lpNetConnectInfoStruct: NETCONNECTINFOSTRUCT): DWORD; stdcall;
{$EXTERNALSYM MultinetGetConnectionPerformanceW}

{$IFDEF UNICODE}
function MultinetGetConnectionPerformance(const lpNetResource: NETRESOURCEW;
  var lpNetConnectInfoStruct: NETCONNECTINFOSTRUCT): DWORD; stdcall;
{$EXTERNALSYM MultinetGetConnectionPerformance}
{$ELSE}
function MultinetGetConnectionPerformance(const lpNetResource: NETRESOURCEA;
  var lpNetConnectInfoStruct: NETCONNECTINFOSTRUCT): DWORD; stdcall;
{$EXTERNALSYM MultinetGetConnectionPerformance}
{$ENDIF}

implementation

const
  mpr = 'mpr.dll';

function WNetAddConnectionA; external mpr name 'WNetAddConnectionA';
function WNetAddConnectionW; external mpr name 'WNetAddConnectionW';
{$IFDEF UNICODE}
function WNetAddConnection; external mpr name 'WNetAddConnectionW';
{$ELSE}
function WNetAddConnection; external mpr name 'WNetAddConnectionA';
{$ENDIF}
function WNetAddConnection2A; external mpr name 'WNetAddConnection2A';
function WNetAddConnection2W; external mpr name 'WNetAddConnection2W';
{$IFDEF UNICODE}
function WNetAddConnection2; external mpr name 'WNetAddConnection2W';
{$ELSE}
function WNetAddConnection2; external mpr name 'WNetAddConnection2A';
{$ENDIF}
function WNetAddConnection3A; external mpr name 'WNetAddConnection3A';
function WNetAddConnection3W; external mpr name 'WNetAddConnection3W';
{$IFDEF UNICODE}
function WNetAddConnection3; external mpr name 'WNetAddConnection3W';
{$ELSE}
function WNetAddConnection3; external mpr name 'WNetAddConnection3A';
{$ENDIF}
function WNetCancelConnectionA; external mpr name 'WNetCancelConnectionA';
function WNetCancelConnectionW; external mpr name 'WNetCancelConnectionW';
{$IFDEF UNICODE}
function WNetCancelConnection; external mpr name 'WNetCancelConnectionW';
{$ELSE}
function WNetCancelConnection; external mpr name 'WNetCancelConnectionA';
{$ENDIF}
function WNetCancelConnection2A; external mpr name 'WNetCancelConnection2A';
function WNetCancelConnection2W; external mpr name 'WNetCancelConnection2W';
{$IFDEF UNICODE}
function WNetCancelConnection2; external mpr name 'WNetCancelConnection2W';
{$ELSE}
function WNetCancelConnection2; external mpr name 'WNetCancelConnection2A';
{$ENDIF}
function WNetGetConnectionA; external mpr name 'WNetGetConnectionA';
function WNetGetConnectionW; external mpr name 'WNetGetConnectionW';
{$IFDEF UNICODE}
function WNetGetConnection; external mpr name 'WNetGetConnectionW';
{$ELSE}
function WNetGetConnection; external mpr name 'WNetGetConnectionA';
{$ENDIF}
function WNetUseConnectionA; external mpr name 'WNetUseConnectionA';
function WNetUseConnectionW; external mpr name 'WNetUseConnectionW';
{$IFDEF UNICODE}
function WNetUseConnection; external mpr name 'WNetUseConnectionW';
{$ELSE}
function WNetUseConnection; external mpr name 'WNetUseConnectionA';
{$ENDIF}
function WNetConnectionDialog; external mpr name 'WNetConnectionDialog';
function WNetDisconnectDialog; external mpr name 'WNetDisconnectDialog';
function WNetConnectionDialog1A; external mpr name 'WNetConnectionDialog1A';
function WNetConnectionDialog1W; external mpr name 'WNetConnectionDialog1W';
{$IFDEF UNICODE}
function WNetConnectionDialog1; external mpr name 'WNetConnectionDialog1W';
{$ELSE}
function WNetConnectionDialog1; external mpr name 'WNetConnectionDialog1A';
{$ENDIF}
function WNetDisconnectDialog1A; external mpr name 'WNetDisconnectDialog1A';
function WNetDisconnectDialog1W; external mpr name 'WNetDisconnectDialog1W';
{$IFDEF UNICODE}
function WNetDisconnectDialog1; external mpr name 'WNetDisconnectDialog1W';
{$ELSE}
function WNetDisconnectDialog1; external mpr name 'WNetDisconnectDialog1A';
{$ENDIF}
function WNetOpenEnumA; external mpr name 'WNetOpenEnumA';
function WNetOpenEnumW; external mpr name 'WNetOpenEnumW';
{$IFDEF UNICODE}
function WNetOpenEnum; external mpr name 'WNetOpenEnumW';
{$ELSE}
function WNetOpenEnum; external mpr name 'WNetOpenEnumA';
{$ENDIF}
function WNetEnumResourceA; external mpr name 'WNetEnumResourceA';
function WNetEnumResourceW; external mpr name 'WNetEnumResourceW';
{$IFDEF UNICODE}
function WNetEnumResource; external mpr name 'WNetEnumResourceW';
{$ELSE}
function WNetEnumResource; external mpr name 'WNetEnumResourceA';
{$ENDIF}
function WNetCloseEnum; external mpr name 'WNetCloseEnum';
function WNetGetResourceParentA; external mpr name 'WNetGetResourceParentA';
function WNetGetResourceParentW; external mpr name 'WNetGetResourceParentW';
{$IFDEF UNICODE}
function WNetGetResourceParent; external mpr name 'WNetGetResourceParentW';
{$ELSE}
function WNetGetResourceParent; external mpr name 'WNetGetResourceParentA';
{$ENDIF}
function WNetGetResourceInformationA; external mpr name 'WNetGetResourceInformationA';
function WNetGetResourceInformationW; external mpr name 'WNetGetResourceInformationW';
{$IFDEF UNICODE}
function WNetGetResourceInformation; external mpr name 'WNetGetResourceInformationW';
{$ELSE}
function WNetGetResourceInformation; external mpr name 'WNetGetResourceInformationA';
{$ENDIF}
function WNetGetUniversalNameA; external mpr name 'WNetGetUniversalNameA';
function WNetGetUniversalNameW; external mpr name 'WNetGetUniversalNameW';
{$IFDEF UNICODE}
function WNetGetUniversalName; external mpr name 'WNetGetUniversalNameW';
{$ELSE}
function WNetGetUniversalName; external mpr name 'WNetGetUniversalNameA';
{$ENDIF}
function WNetGetUserA; external mpr name 'WNetGetUserA';
function WNetGetUserW; external mpr name 'WNetGetUserW';
{$IFDEF UNICODE}
function WNetGetUser; external mpr name 'WNetGetUserW';
{$ELSE}
function WNetGetUser; external mpr name 'WNetGetUserA';
{$ENDIF}
function WNetGetProviderNameA; external mpr name 'WNetGetProviderNameA';
function WNetGetProviderNameW; external mpr name 'WNetGetProviderNameW';
{$IFDEF UNICODE}
function WNetGetProviderName; external mpr name 'WNetGetProviderNameW';
{$ELSE}
function WNetGetProviderName; external mpr name 'WNetGetProviderNameA';
{$ENDIF}
function WNetGetNetworkInformationA; external mpr name 'WNetGetNetworkInformationA';
function WNetGetNetworkInformationW; external mpr name 'WNetGetNetworkInformationW';
{$IFDEF UNICODE}
function WNetGetNetworkInformation; external mpr name 'WNetGetNetworkInformationW';
{$ELSE}
function WNetGetNetworkInformation; external mpr name 'WNetGetNetworkInformationA';
{$ENDIF}
function WNetGetLastErrorA; external mpr name 'WNetGetLastErrorA';
function WNetGetLastErrorW; external mpr name 'WNetGetLastErrorW';
{$IFDEF UNICODE}
function WNetGetLastError; external mpr name 'WNetGetLastErrorW';
{$ELSE}
function WNetGetLastError; external mpr name 'WNetGetLastErrorA';
{$ENDIF}
function MultinetGetConnectionPerformanceA; external mpr name 'MultinetGetConnectionPerformanceA';
function MultinetGetConnectionPerformanceW; external mpr name 'MultinetGetConnectionPerformanceW';
{$IFDEF UNICODE}
function MultinetGetConnectionPerformance; external mpr name 'MultinetGetConnectionPerformanceW';
{$ELSE}
function MultinetGetConnectionPerformance; external mpr name 'MultinetGetConnectionPerformanceA';
{$ENDIF}

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -