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

📄 jwanspapi.pas

📁 比较全面的win32api开发包
💻 PAS
📖 第 1 页 / 共 3 页
字号:
  const lpServiceInfo: SERVICE_INFOW; lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO;
  var lpdwStatusFlags: DWORD): Integer; stdcall;
{$EXTERNALSYM SetServiceW}

{$IFDEF UNICODE}
function SetService(dwNameSpace, dwOperation, dwFlags: DWORD;
  const lpServiceInfo: SERVICE_INFOW; lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO;
  var lpdwStatusFlags: DWORD): Integer; stdcall;
{$EXTERNALSYM SetService}
{$ELSE}
function SetService(dwNameSpace, dwOperation, dwFlags: DWORD;
  const lpServiceInfo: SERVICE_INFOA; lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO;
  var lpdwStatusFlags: DWORD): Integer; stdcall;
{$EXTERNALSYM SetService}
{$ENDIF}

function GetServiceA(dwNameSpace: DWORD; const lpGuid: TGUID; lpServiceName: LPSTR;
  dwProperties: DWORD; lpBuffer: LPVOID; var lpdwBufferSize: DWORD;
  lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO): Integer; stdcall;
{$EXTERNALSYM GetServiceA}
function GetServiceW(dwNameSpace: DWORD; const lpGuid: TGUID; lpServiceName: LPWSTR;
  dwProperties: DWORD; lpBuffer: LPVOID; var lpdwBufferSize: DWORD;
  lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO): Integer; stdcall;
{$EXTERNALSYM GetServiceW}

{$IFDEF UNICODE}
function GetService(dwNameSpace: DWORD; const lpGuid: TGUID; lpServiceName: LPWSTR;
  dwProperties: DWORD; lpBuffer: LPVOID; var lpdwBufferSize: DWORD;
  lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO): Integer; stdcall;
{$EXTERNALSYM GetService}
{$ELSE}
function GetService(dwNameSpace: DWORD; const lpGuid: TGUID; lpServiceName: LPSTR;
  dwProperties: DWORD; lpBuffer: LPVOID; var lpdwBufferSize: DWORD;
  lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO): Integer; stdcall;
{$EXTERNALSYM GetService}
{$ENDIF}

implementation

const
  nsplib = 'wsock32.dll';


{$IFDEF DYNAMIC_LINK}
var
  _EnumProtocolsA: Pointer;

function EnumProtocolsA;
begin
  GetProcedureAddress(_EnumProtocolsA, nsplib, 'EnumProtocolsA');
  asm
    mov esp, ebp
    pop ebp
    jmp [_EnumProtocolsA]
  end;
end;
{$ELSE}
function EnumProtocolsA; external nsplib name 'EnumProtocolsA';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _EnumProtocolsW: Pointer;

function EnumProtocolsW;
begin
  GetProcedureAddress(_EnumProtocolsW, nsplib, 'EnumProtocolsW');
  asm
    mov esp, ebp
    pop ebp
    jmp [_EnumProtocolsW]
  end;
end;
{$ELSE}
function EnumProtocolsW; external nsplib name 'EnumProtocolsW';
{$ENDIF DYNAMIC_LINK}
{$IFDEF UNICODE}

{$IFDEF DYNAMIC_LINK}
var
  _EnumProtocols: Pointer;

function EnumProtocols;
begin
  GetProcedureAddress(_EnumProtocols, nsplib, 'EnumProtocolsW');
  asm
    mov esp, ebp
    pop ebp
    jmp [_EnumProtocols]
  end;
end;
{$ELSE}
function EnumProtocols; external nsplib name 'EnumProtocolsW';
{$ENDIF DYNAMIC_LINK}
{$ELSE}

{$IFDEF DYNAMIC_LINK}
var
  _EnumProtocols: Pointer;

function EnumProtocols;
begin
  GetProcedureAddress(_EnumProtocols, nsplib, 'EnumProtocolsA');
  asm
    mov esp, ebp
    pop ebp
    jmp [_EnumProtocols]
  end;
end;
{$ELSE}
function EnumProtocols; external nsplib name 'EnumProtocolsA';
{$ENDIF DYNAMIC_LINK}
{$ENDIF}

{$IFDEF DYNAMIC_LINK}
var
  _GetAddressByNameA: Pointer;

function GetAddressByNameA;
begin
  GetProcedureAddress(_GetAddressByNameA, nsplib, 'GetAddressByNameA');
  asm
    mov esp, ebp
    pop ebp
    jmp [_GetAddressByNameA]
  end;
end;
{$ELSE}
function GetAddressByNameA; external nsplib name 'GetAddressByNameA';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _GetAddressByNameW: Pointer;

function GetAddressByNameW;
begin
  GetProcedureAddress(_GetAddressByNameW, nsplib, 'GetAddressByNameW');
  asm
    mov esp, ebp
    pop ebp
    jmp [_GetAddressByNameW]
  end;
end;
{$ELSE}
function GetAddressByNameW; external nsplib name 'GetAddressByNameW';
{$ENDIF DYNAMIC_LINK}
{$IFDEF UNICODE}

{$IFDEF DYNAMIC_LINK}
var
  _GetAddressByName: Pointer;

function GetAddressByName;
begin
  GetProcedureAddress(_GetAddressByName, nsplib, 'GetAddressByNameW');
  asm
    mov esp, ebp
    pop ebp
    jmp [_GetAddressByName]
  end;
end;
{$ELSE}
function GetAddressByName; external nsplib name 'GetAddressByNameW';
{$ENDIF DYNAMIC_LINK}
{$ELSE}

{$IFDEF DYNAMIC_LINK}
var
  _GetAddressByName: Pointer;

function GetAddressByName;
begin
  GetProcedureAddress(_GetAddressByName, nsplib, 'GetAddressByNameA');
  asm
    mov esp, ebp
    pop ebp
    jmp [_GetAddressByName]
  end;
end;
{$ELSE}
function GetAddressByName; external nsplib name 'GetAddressByNameA';
{$ENDIF DYNAMIC_LINK}
{$ENDIF}

{$IFDEF DYNAMIC_LINK}
var
  _GetTypeByNameA: Pointer;

function GetTypeByNameA;
begin
  GetProcedureAddress(_GetTypeByNameA, nsplib, 'GetTypeByNameA');
  asm
    mov esp, ebp
    pop ebp
    jmp [_GetTypeByNameA]
  end;
end;
{$ELSE}
function GetTypeByNameA; external nsplib name 'GetTypeByNameA';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _GetTypeByNameW: Pointer;

function GetTypeByNameW;
begin
  GetProcedureAddress(_GetTypeByNameW, nsplib, 'GetTypeByNameW');
  asm
    mov esp, ebp
    pop ebp
    jmp [_GetTypeByNameW]
  end;
end;
{$ELSE}
function GetTypeByNameW; external nsplib name 'GetTypeByNameW';
{$ENDIF DYNAMIC_LINK}
{$IFDEF UNICODE}

{$IFDEF DYNAMIC_LINK}
var
  _GetTypeByName: Pointer;

function GetTypeByName;
begin
  GetProcedureAddress(_GetTypeByName, nsplib, 'GetTypeByNameW');
  asm
    mov esp, ebp
    pop ebp
    jmp [_GetTypeByName]
  end;
end;
{$ELSE}
function GetTypeByName; external nsplib name 'GetTypeByNameW';
{$ENDIF DYNAMIC_LINK}
{$ELSE}

{$IFDEF DYNAMIC_LINK}
var
  _GetTypeByName: Pointer;

function GetTypeByName;
begin
  GetProcedureAddress(_GetTypeByName, nsplib, 'GetTypeByNameA');
  asm
    mov esp, ebp
    pop ebp
    jmp [_GetTypeByName]
  end;
end;
{$ELSE}
function GetTypeByName; external nsplib name 'GetTypeByNameA';
{$ENDIF DYNAMIC_LINK}
{$ENDIF}

{$IFDEF DYNAMIC_LINK}
var
  _GetNameByTypeA: Pointer;

function GetNameByTypeA;
begin
  GetProcedureAddress(_GetNameByTypeA, nsplib, 'GetNameByTypeA');
  asm
    mov esp, ebp
    pop ebp
    jmp [_GetNameByTypeA]
  end;
end;
{$ELSE}
function GetNameByTypeA; external nsplib name 'GetNameByTypeA';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _GetNameByTypeW: Pointer;

function GetNameByTypeW;
begin
  GetProcedureAddress(_GetNameByTypeW, nsplib, 'GetNameByTypeW');
  asm
    mov esp, ebp
    pop ebp
    jmp [_GetNameByTypeW]
  end;
end;
{$ELSE}
function GetNameByTypeW; external nsplib name 'GetNameByTypeW';
{$ENDIF DYNAMIC_LINK}
{$IFDEF UNICODE}

{$IFDEF DYNAMIC_LINK}
var
  _GetNameByType: Pointer;

function GetNameByType;
begin
  GetProcedureAddress(_GetNameByType, nsplib, 'GetNameByTypeW');
  asm
    mov esp, ebp
    pop ebp
    jmp [_GetNameByType]
  end;
end;
{$ELSE}
function GetNameByType; external nsplib name 'GetNameByTypeW';
{$ENDIF DYNAMIC_LINK}
{$ELSE}

{$IFDEF DYNAMIC_LINK}
var
  _GetNameByType: Pointer;

function GetNameByType;
begin
  GetProcedureAddress(_GetNameByType, nsplib, 'GetNameByTypeA');
  asm
    mov esp, ebp
    pop ebp
    jmp [_GetNameByType]
  end;
end;
{$ELSE}
function GetNameByType; external nsplib name 'GetNameByTypeA';
{$ENDIF DYNAMIC_LINK}
{$ENDIF}

{$IFDEF DYNAMIC_LINK}
var
  _SetServiceA: Pointer;

function SetServiceA;
begin
  GetProcedureAddress(_SetServiceA, nsplib, 'SetServiceA');
  asm
    mov esp, ebp
    pop ebp
    jmp [_SetServiceA]
  end;
end;
{$ELSE}
function SetServiceA; external nsplib name 'SetServiceA';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _SetServiceW: Pointer;

function SetServiceW;
begin
  GetProcedureAddress(_SetServiceW, nsplib, 'SetServiceW');
  asm
    mov esp, ebp
    pop ebp
    jmp [_SetServiceW]
  end;
end;
{$ELSE}
function SetServiceW; external nsplib name 'SetServiceW';
{$ENDIF DYNAMIC_LINK}
{$IFDEF UNICODE}

{$IFDEF DYNAMIC_LINK}
var
  _SetService: Pointer;

function SetService;
begin
  GetProcedureAddress(_SetService, nsplib, 'SetServiceW');
  asm
    mov esp, ebp
    pop ebp
    jmp [_SetService]
  end;
end;
{$ELSE}
function SetService; external nsplib name 'SetServiceW';
{$ENDIF DYNAMIC_LINK}
{$ELSE}

{$IFDEF DYNAMIC_LINK}
var
  _SetService: Pointer;

function SetService;
begin
  GetProcedureAddress(_SetService, nsplib, 'SetServiceA');
  asm
    mov esp, ebp
    pop ebp
    jmp [_SetService]
  end;
end;
{$ELSE}
function SetService; external nsplib name 'SetServiceA';
{$ENDIF DYNAMIC_LINK}
{$ENDIF}

{$IFDEF DYNAMIC_LINK}
var
  _GetServiceA: Pointer;

function GetServiceA;
begin
  GetProcedureAddress(_GetServiceA, nsplib, 'GetServiceA');
  asm
    mov esp, ebp
    pop ebp
    jmp [_GetServiceA]
  end;
end;
{$ELSE}
function GetServiceA; external nsplib name 'GetServiceA';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _GetServiceW: Pointer;

function GetServiceW;
begin
  GetProcedureAddress(_GetServiceW, nsplib, 'GetServiceW');
  asm
    mov esp, ebp
    pop ebp
    jmp [_GetServiceW]
  end;
end;
{$ELSE}
function GetServiceW; external nsplib name 'GetServiceW';
{$ENDIF DYNAMIC_LINK}
{$IFDEF UNICODE}

{$IFDEF DYNAMIC_LINK}
var
  _GetService: Pointer;

function GetService;
begin
  GetProcedureAddress(_GetService, nsplib, 'GetServiceW');
  asm
    mov esp, ebp
    pop ebp
    jmp [_GetService]
  end;
end;
{$ELSE}
function GetService; external nsplib name 'GetServiceW';
{$ENDIF DYNAMIC_LINK}
{$ELSE}

{$IFDEF DYNAMIC_LINK}
var
  _GetService: Pointer;

function GetService;
begin
  GetProcedureAddress(_GetService, nsplib, 'GetServiceA');
  asm
    mov esp, ebp
    pop ebp
    jmp [_GetService]
  end;
end;
{$ELSE}
function GetService; external nsplib name 'GetServiceA';
{$ENDIF DYNAMIC_LINK}
{$ENDIF}

end.

⌨️ 快捷键说明

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