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

📄 jwanspapi.pas

📁 比较全面的win32api开发包
💻 PAS
📖 第 1 页 / 共 3 页
字号:
  {$EXTERNALSYM _SERVICE_TYPE_INFO_ABSW}
  SERVICE_TYPE_INFO_ABSW = _SERVICE_TYPE_INFO_ABSW;
  {$EXTERNALSYM SERVICE_TYPE_INFO_ABSW}
  TServiceTypeInfoAbsW = SERVICE_TYPE_INFO_ABSW;
  PServiceTypeInfoAbsW = LPSERVICE_TYPE_INFO_ABSW;

{$IFDEF UNICODE}
  SERVICE_TYPE_INFO_ABS = SERVICE_TYPE_INFO_ABSW;
  {$EXTERNALSYM SERVICE_TYPE_INFO_ABS}
  PSERVICE_TYPE_INFO_ABS = PSERVICE_TYPE_INFO_ABSW;
  {$EXTERNALSYM PSERVICE_TYPE_INFO_ABS}
  LPSERVICE_TYPE_INFO_ABS = LPSERVICE_TYPE_INFO_ABSW;
  {$EXTERNALSYM LPSERVICE_TYPE_INFO_ABS}
  TServiceTypeInfoAbs = TServiceTypeInfoAbsW;
  PServiceTypeInfoAbs = PServiceTypeInfoAbsW;
{$ELSE}
  SERVICE_TYPE_INFO_ABS = SERVICE_TYPE_INFO_ABSA;
  {$EXTERNALSYM SERVICE_TYPE_INFO_ABS}
  PSERVICE_TYPE_INFO_ABS = PSERVICE_TYPE_INFO_ABSA;
  {$EXTERNALSYM PSERVICE_TYPE_INFO_ABS}
  LPSERVICE_TYPE_INFO_ABS = LPSERVICE_TYPE_INFO_ABSA;
  {$EXTERNALSYM LPSERVICE_TYPE_INFO_ABS}
  TServiceTypeInfoAbs = TServiceTypeInfoAbsA;
  PServiceTypeInfoAbs = PServiceTypeInfoAbsA;
{$ENDIF}

//
// A Single Address definition.
//

  LPSERVICE_ADDRESS = ^SERVICE_ADDRESS;
  {$EXTERNALSYM LPSERVICE_ADDRESS}
  PSERVICE_ADDRESS = ^SERVICE_ADDRESS;
  {$EXTERNALSYM PSERVICE_ADDRESS}
  _SERVICE_ADDRESS = record
    dwAddressType: DWORD;
    dwAddressFlags: DWORD;
    dwAddressLength: DWORD;
    dwPrincipalLength: DWORD;
    lpAddress: LPBYTE;
    lpPrincipal: LPBYTE;
  end;
  {$EXTERNALSYM _SERVICE_ADDRESS}
  SERVICE_ADDRESS = _SERVICE_ADDRESS;
  {$EXTERNALSYM SERVICE_ADDRESS}
  TServiceAddress = SERVICE_ADDRESS;
  PServiceAddress = LPSERVICE_ADDRESS;

//
// Addresses used by the service. Contains array of SERVICE_ADDRESS.
//

  LPSERVICE_ADDRESSES = ^SERVICE_ADDRESSES;
  {$EXTERNALSYM LPSERVICE_ADDRESSES}
  PSERVICE_ADDRESSES = ^SERVICE_ADDRESSES;
  {$EXTERNALSYM PSERVICE_ADDRESSES}
  _SERVICE_ADDRESSES = record
    dwAddressCount: DWORD;
    Addresses: array [0..0] of SERVICE_ADDRESS;
  end;
  {$EXTERNALSYM _SERVICE_ADDRESSES}
  SERVICE_ADDRESSES = _SERVICE_ADDRESSES;
  {$EXTERNALSYM SERVICE_ADDRESSES}
  TServiceAddresses = SERVICE_ADDRESSES;
  PServiceAddresses = PSERVICE_ADDRESSES;

//
// Service Information.
//

  LPSERVICE_INFOA = ^SERVICE_INFOA;
  {$EXTERNALSYM LPSERVICE_INFOA}
  PSERVICE_INFOA = ^SERVICE_INFOA;
  {$EXTERNALSYM PSERVICE_INFOA}
  _SERVICE_INFOA = record
    lpServiceType: PGUID;
    lpServiceName: LPSTR;
    lpComment: LPSTR;
    lpLocale: LPSTR;
    dwDisplayHint: DWORD;
    dwVersion: DWORD;
    dwTime: DWORD;
    lpMachineName: LPSTR;
    lpServiceAddress: LPSERVICE_ADDRESSES;
    ServiceSpecificInfo: BLOB;
  end;
  {$EXTERNALSYM _SERVICE_INFOA}
  SERVICE_INFOA = _SERVICE_INFOA;
  {$EXTERNALSYM SERVICE_INFOA}
  TServiceInfoA = SERVICE_INFOA;
  PServiceInfoA = PSERVICE_INFOA;

//
// Service Information.
//

  LPSERVICE_INFOW = ^SERVICE_INFOW;
  {$EXTERNALSYM LPSERVICE_INFOW}
  PSERVICE_INFOW = ^SERVICE_INFOW;
  {$EXTERNALSYM PSERVICE_INFOW}
  _SERVICE_INFOW = record
    lpServiceType: PGUID;
    lpServiceName: LPWSTR;
    lpComment: LPWSTR;
    lpLocale: LPWSTR;
    dwDisplayHint: DWORD;
    dwVersion: DWORD;
    dwTime: DWORD;
    lpMachineName: LPWSTR;
    lpServiceAddress: LPSERVICE_ADDRESSES;
    ServiceSpecificInfo: BLOB;
  end;
  {$EXTERNALSYM _SERVICE_INFOW}
  SERVICE_INFOW = _SERVICE_INFOW;
  {$EXTERNALSYM SERVICE_INFOW}
  TServiceInfoW = SERVICE_INFOW;
  PServiceInfoW = PSERVICE_INFOW;

{$IFDEF UNICODE}
  SERVICE_INFO = SERVICE_INFOW;
  {$EXTERNALSYM SERVICE_INFO}
  PSERVICE_INFO = PSERVICE_INFOW;
  {$EXTERNALSYM PSERVICE_INFO}
  LPSERVICE_INFO = LPSERVICE_INFOW;
  {$EXTERNALSYM LPSERVICE_INFO}
  TServiceInfo = TServiceInfoW;
  PServiceInfo = PServiceInfoW;
{$ELSE}
  SERVICE_INFO = SERVICE_INFOA;
  {$EXTERNALSYM SERVICE_INFO}
  PSERVICE_INFO = PSERVICE_INFOA;
  {$EXTERNALSYM PSERVICE_INFO}
  LPSERVICE_INFO = LPSERVICE_INFOA;
  {$EXTERNALSYM LPSERVICE_INFO}
  TServiceInfo = TServiceInfoA;
  PServiceInfo = PServiceInfoA;
{$ENDIF}

//
// Name Space & Service Information
//

  LPNS_SERVICE_INFOA = ^NS_SERVICE_INFOA;
  {$EXTERNALSYM LPNS_SERVICE_INFOA}
  PNS_SERVICE_INFOA = ^NS_SERVICE_INFOA;
  {$EXTERNALSYM PNS_SERVICE_INFOA}
  _NS_SERVICE_INFOA = record
    dwNameSpace: DWORD;
    ServiceInfo: SERVICE_INFOA;
  end;
  {$EXTERNALSYM _NS_SERVICE_INFOA}
  NS_SERVICE_INFOA = _NS_SERVICE_INFOA;
  {$EXTERNALSYM NS_SERVICE_INFOA}
  TNsServiceInfoA = NS_SERVICE_INFOA;
  PNsServiceInfoA = LPNS_SERVICE_INFOA;

//
// Name Space & Service Information
//

  LPNS_SERVICE_INFOW = ^NS_SERVICE_INFOW;
  {$EXTERNALSYM LPNS_SERVICE_INFOW}
  PNS_SERVICE_INFOW = ^NS_SERVICE_INFOW;
  {$EXTERNALSYM PNS_SERVICE_INFOW}
  _NS_SERVICE_INFOW = record
    dwNameSpace: DWORD;
    ServiceInfo: SERVICE_INFOW;
  end;
  {$EXTERNALSYM _NS_SERVICE_INFOW}
  NS_SERVICE_INFOW = _NS_SERVICE_INFOW;
  {$EXTERNALSYM NS_SERVICE_INFOW}
  TNsServiceInfoW = NS_SERVICE_INFOW;
  PNsServiceInfoW = LPNS_SERVICE_INFOW;

{$IFDEF UNICODE}
  NS_SERVICE_INFO = NS_SERVICE_INFOW;
  {$EXTERNALSYM NS_SERVICE_INFO}
  PNS_SERVICE_INFO = PNS_SERVICE_INFOW;
  {$EXTERNALSYM PNS_SERVICE_INFO}
  LPNS_SERVICE_INFO = LPNS_SERVICE_INFOW;
  {$EXTERNALSYM LPNS_SERVICE_INFO}
  TNsServiceInfo = TNsServiceInfoW;
  PNsServiceInfo = PNsServiceInfoW;
{$ELSE}
  NS_SERVICE_INFO = NS_SERVICE_INFOA;
  {$EXTERNALSYM NS_SERVICE_INFO}
  PNS_SERVICE_INFO = PNS_SERVICE_INFOA;
  {$EXTERNALSYM PNS_SERVICE_INFO}
  LPNS_SERVICE_INFO = LPNS_SERVICE_INFOA;
  {$EXTERNALSYM LPNS_SERVICE_INFO}
  TNsServiceInfo = TNsServiceInfoA;
  PNsServiceInfo = PNsServiceInfoA;
{$ENDIF}

//
// SockAddr Information
//

  LPSOCKET_ADDRESS = ^SOCKET_ADDRESS;
  {$EXTERNALSYM LPSOCKET_ADDRESS}
  PSOCKET_ADDRESS = ^SOCKET_ADDRESS;
  {$EXTERNALSYM PSOCKET_ADDRESS}
  _SOCKET_ADDRESS = record
    lpSockaddr: LPSOCKADDR;
    iSockaddrLength: Integer;
  end;
  {$EXTERNALSYM _SOCKET_ADDRESS}
  SOCKET_ADDRESS = _SOCKET_ADDRESS;
  {$EXTERNALSYM SOCKET_ADDRESS}
  TSocketAddress = SOCKET_ADDRESS;
  PSocketAddress = PSOCKET_ADDRESS;

//
// CSAddr Information
//

  LPCSADDR_INFO = ^CSADDR_INFO;
  {$EXTERNALSYM LPCSADDR_INFO}
  PCSADDR_INFO = ^CSADDR_INFO;
  {$EXTERNALSYM PCSADDR_INFO}
  _CSADDR_INFO = record
    LocalAddr: SOCKET_ADDRESS;
    RemoteAddr: SOCKET_ADDRESS;
    iSocketType: Integer;
    iProtocol: Integer;
  end;
  {$EXTERNALSYM _CSADDR_INFO}
  CSADDR_INFO = _CSADDR_INFO;
  {$EXTERNALSYM CSADDR_INFO}
  TCsAddrInfo = CSADDR_INFO;
  PCsAddrInfo = LPCSADDR_INFO;

//
// Protocol Information
//

  LPPROTOCOL_INFOA = ^PROTOCOL_INFOA;
  {$EXTERNALSYM LPPROTOCOL_INFOA}
  PPROTOCOL_INFOA = ^PROTOCOL_INFOA;
  {$EXTERNALSYM PPROTOCOL_INFOA}
  _PROTOCOL_INFOA = record
    dwServiceFlags: DWORD;
    iAddressFamily: Integer;
    iMaxSockAddr: Integer;
    iMinSockAddr: Integer;
    iSocketType: Integer;
    iProtocol: Integer;
    dwMessageSize: DWORD;
    lpProtocol: LPSTR;
  end;
  {$EXTERNALSYM _PROTOCOL_INFOA}
  PROTOCOL_INFOA = _PROTOCOL_INFOA;
  {$EXTERNALSYM PROTOCOL_INFOA}
  TProtocolInfoA = PROTOCOL_INFOA;
  PProtocolInfoA = LPPROTOCOL_INFOA;

//
// Protocol Information
//

  LPPROTOCOL_INFOW = ^PROTOCOL_INFOW;
  {$EXTERNALSYM LPPROTOCOL_INFOW}
  PPROTOCOL_INFOW = ^PROTOCOL_INFOW;
  {$EXTERNALSYM PPROTOCOL_INFOW}
  _PROTOCOL_INFOW = record
    dwServiceFlags: DWORD;
    iAddressFamily: Integer;
    iMaxSockAddr: Integer;
    iMinSockAddr: Integer;
    iSocketType: Integer;
    iProtocol: Integer;
    dwMessageSize: DWORD;
    lpProtocol: LPWSTR;
  end;
  {$EXTERNALSYM _PROTOCOL_INFOW}
  PROTOCOL_INFOW = _PROTOCOL_INFOW;
  {$EXTERNALSYM PROTOCOL_INFOW}
  TProtocolInfoW = PROTOCOL_INFOW;
  PProtocolInfoW = LPPROTOCOL_INFOW;

{$IFDEF UNICODE}
  PROTOCOL_INFO = PROTOCOL_INFOW;
  {$EXTERNALSYM PROTOCOL_INFO}
  PPROTOCOL_INFO = PPROTOCOL_INFOW;
  {$EXTERNALSYM PPROTOCOL_INFO}
  LPPROTOCOL_INFO = LPPROTOCOL_INFOW;
  {$EXTERNALSYM LPPROTOCOL_INFO}
  TProtocolInfo = TProtocolInfoW;
  PProtocolInfo = PProtocolInfoW;
{$ELSE}
  PROTOCOL_INFO = PROTOCOL_INFOA;
  {$EXTERNALSYM PROTOCOL_INFO}
  PPROTOCOL_INFO = PPROTOCOL_INFOA;
  {$EXTERNALSYM PPROTOCOL_INFO}
  LPPROTOCOL_INFO = LPPROTOCOL_INFOA;
  {$EXTERNALSYM LPPROTOCOL_INFO}
  TProtocolInfo = TProtocolInfoA;
  PProtocolInfo = PProtocolInfoA;
{$ENDIF}

//
// NETRESOURCE2 Structure
//

  LPNETRESOURCE2A = ^NETRESOURCE2A;
  {$EXTERNALSYM LPNETRESOURCE2A}
  PNETRESOURCE2A = ^NETRESOURCE2A;
  {$EXTERNALSYM PNETRESOURCE2A}
  _NETRESOURCE2A = record
    dwScope: DWORD;
    dwType: DWORD;
    dwUsage: DWORD;
    dwDisplayType: DWORD;
    lpLocalName: LPSTR;
    lpRemoteName: LPSTR;
    lpComment: LPSTR;
    ns_info: NS_INFO;
    ServiceType: TGUID;
    dwProtocols: DWORD;
    lpiProtocols: PINT;
  end;
  {$EXTERNALSYM _NETRESOURCE2A}
  NETRESOURCE2A = _NETRESOURCE2A;
  {$EXTERNALSYM NETRESOURCE2A}
  TNetResource2A = NETRESOURCE2A;

//
// NETRESOURCE2 Structure
//

  LPNETRESOURCE2W = ^NETRESOURCE2W;
  {$EXTERNALSYM LPNETRESOURCE2W}
  PNETRESOURCE2W = ^NETRESOURCE2W;
  {$EXTERNALSYM PNETRESOURCE2W}
  _NETRESOURCE2W = record
    dwScope: DWORD;
    dwType: DWORD;
    dwUsage: DWORD;
    dwDisplayType: DWORD;
    lpLocalName: LPWSTR;
    lpRemoteName: LPWSTR;
    lpComment: LPWSTR;
    ns_info: NS_INFO;
    ServiceType: TGUID;
    dwProtocols: DWORD;
    lpiProtocols: PINT;
  end;
  {$EXTERNALSYM _NETRESOURCE2W}
  NETRESOURCE2W = _NETRESOURCE2W;
  {$EXTERNALSYM NETRESOURCE2W}
  TNetResource2W = NETRESOURCE2W;

{$IFDEF UNICODE}
  NETRESOURCE2 = NETRESOURCE2W;
  {$EXTERNALSYM NETRESOURCE2}
  PNETRESOURCE2 = PNETRESOURCE2W;
  {$EXTERNALSYM PNETRESOURCE2}
  LPNETRESOURCE2 = LPNETRESOURCE2W;
  {$EXTERNALSYM LPNETRESOURCE2}
  TNetResource2 = TNetResource2W;
{$ELSE}
  NETRESOURCE2 = NETRESOURCE2A;
  {$EXTERNALSYM NETRESOURCE2}
  PNETRESOURCE2 = PNETRESOURCE2A;
  {$EXTERNALSYM PNETRESOURCE2}
  LPNETRESOURCE2 = LPNETRESOURCE2A;
  {$EXTERNALSYM LPNETRESOURCE2}
  TNetResource2 = TNetResource2A;
{$ENDIF}

  LPFN_NSPAPI = function: DWORD; stdcall;
  {$EXTERNALSYM LPFN_NSPAPI}
  TFnNspApi = LPFN_NSPAPI; 

//
// Structures for using the service routines asynchronously.
//

type
  LPSERVICE_CALLBACK_PROC = procedure (lParam: LPARAM; hAsyncTaskHandle: HANDLE); stdcall;
  {$EXTERNALSYM LPSERVICE_CALLBACK_PROC}
  TServiceCallbackProc = LPSERVICE_CALLBACK_PROC;

type
  LPSERVICE_ASYNC_INFO = ^SERVICE_ASYNC_INFO;
  {$EXTERNALSYM LPSERVICE_ASYNC_INFO}
  PSERVICE_ASYNC_INFO = ^SERVICE_ASYNC_INFO;
  {$EXTERNALSYM PSERVICE_ASYNC_INFO}
  _SERVICE_ASYNC_INFO = record
    lpServiceCallbackProc: LPSERVICE_CALLBACK_PROC;
    lParam: LPARAM;
    hAsyncTaskHandle: HANDLE;
  end;
  {$EXTERNALSYM _SERVICE_ASYNC_INFO}
  SERVICE_ASYNC_INFO = _SERVICE_ASYNC_INFO;
  {$EXTERNALSYM SERVICE_ASYNC_INFO}
  TServiceAsyncInfo = SERVICE_ASYNC_INFO;
  PServiceAsyncInfo = LPSERVICE_ASYNC_INFO;

//
// Public NSP API prototypes.
//

function EnumProtocolsA(lpiProtocols: PINT; lpProtocolBuffer: LPVOID; lpdwBufferLength: LPDWORD): Integer; stdcall;
{$EXTERNALSYM EnumProtocolsA}
function EnumProtocolsW(lpiProtocols: PINT; lpProtocolBuffer: LPVOID; lpdwBufferLength: LPDWORD): Integer; stdcall;
{$EXTERNALSYM EnumProtocolsW}

{$IFDEF UNICODE}
function EnumProtocols(lpiProtocols: PINT; lpProtocolBuffer: LPVOID; lpdwBufferLength: LPDWORD): Integer; stdcall;
{$EXTERNALSYM EnumProtocols}
{$ELSE}
function EnumProtocols(lpiProtocols: PINT; lpProtocolBuffer: LPVOID; lpdwBufferLength: LPDWORD): Integer; stdcall;
{$EXTERNALSYM EnumProtocols}
{$ENDIF}

function GetAddressByNameA(dwNameSpace: DWORD; const lpServiceType: TGUID;
  lpServiceName: LPSTR; lpiProtocols: PINT; dwResolution: DWORD;
  lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO; lpCsaddrBuffer: LPVOID;
  var lpdwBufferLength: DWORD; lpAliasBuffer: LPSTR; lpdwAliasBufferLength: LPDWORD): Integer; stdcall;
{$EXTERNALSYM GetAddressByNameA}
function GetAddressByNameW(dwNameSpace: DWORD; const lpServiceType: TGUID;
  lpServiceName: LPWSTR; lpiProtocols: PINT; dwResolution: DWORD;
  lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO; lpCsaddrBuffer: LPVOID;
  var lpdwBufferLength: DWORD; lpAliasBuffer: LPWSTR; lpdwAliasBufferLength: LPDWORD): Integer; stdcall;
{$EXTERNALSYM GetAddressByNameW}

{$IFDEF UNICODE}
function GetAddressByName(dwNameSpace: DWORD; const lpServiceType: TGUID;
  lpServiceName: LPWSTR; lpiProtocols: PINT; dwResolution: DWORD;
  lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO; lpCsaddrBuffer: LPVOID;
  var lpdwBufferLength: DWORD; lpAliasBuffer: LPWSTR; lpdwAliasBufferLength: LPDWORD): Integer; stdcall;
{$EXTERNALSYM GetAddressByName}
{$ELSE}
function GetAddressByName(dwNameSpace: DWORD; const lpServiceType: TGUID;
  lpServiceName: LPSTR; lpiProtocols: PINT; dwResolution: DWORD;
  lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO; lpCsaddrBuffer: LPVOID;
  var lpdwBufferLength: DWORD; lpAliasBuffer: LPSTR; lpdwAliasBufferLength: LPDWORD): Integer; stdcall;
{$EXTERNALSYM GetAddressByName}
{$ENDIF}

function GetTypeByNameA(lpServiceName: LPSTR; var lpServiceType: TGUID): Integer; stdcall;
{$EXTERNALSYM GetTypeByNameA}
function GetTypeByNameW(lpServiceName: LPWSTR; var lpServiceType: TGUID): Integer; stdcall;
{$EXTERNALSYM GetTypeByNameW}

{$IFDEF UNICODE}
function GetTypeByName(lpServiceName: LPWSTR; var lpServiceType: TGUID): Integer; stdcall;
{$EXTERNALSYM GetTypeByName}
{$ELSE}
function GetTypeByName(lpServiceName: LPSTR; var lpServiceType: TGUID): Integer; stdcall;
{$EXTERNALSYM GetTypeByName}
{$ENDIF}

function GetNameByTypeA(const lpServiceType: TGUID; lpServiceName: LPSTR; dwNameLength: DWORD): Integer; stdcall;
{$EXTERNALSYM GetNameByTypeA}
function GetNameByTypeW(const lpServiceType: TGUID; lpServiceName: LPWSTR; dwNameLength: DWORD): Integer; stdcall;
{$EXTERNALSYM GetNameByTypeW}

{$IFDEF UNICODE}
function GetNameByType(const lpServiceType: TGUID; lpServiceName: LPWSTR; dwNameLength: DWORD): Integer; stdcall;
{$EXTERNALSYM GetNameByType}
{$ELSE}
function GetNameByType(const lpServiceType: TGUID; lpServiceName: LPSTR; dwNameLength: DWORD): Integer; stdcall;
{$EXTERNALSYM GetNameByType}
{$ENDIF}

function SetServiceA(dwNameSpace, dwOperation, dwFlags: DWORD;
  const lpServiceInfo: SERVICE_INFOA; lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO;
  var lpdwStatusFlags: DWORD): Integer; stdcall;
{$EXTERNALSYM SetServiceA}
function SetServiceW(dwNameSpace, dwOperation, dwFlags: DWORD;

⌨️ 快捷键说明

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