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

📄 jwadhcpcsdk.pas

📁 比较全面的win32api开发包
💻 PAS
📖 第 1 页 / 共 2 页
字号:

  OPTION_END = 255;
  {$EXTERNALSYM OPTION_END}

type
  _DHCPAPI_PARAMS = record
    Flags: ULONG;      // for future use
    OptionId: ULONG;   // what option is this?
    IsVendor: BOOL;    // is this vendor specific?
    Data: LPBYTE;      // the actual data
    nBytesData: DWORD; // how many bytes of data are there in Data?
  end;
  {$EXTERNALSYM _DHCPAPI_PARAMS}
  DHCPAPI_PARAMS = _DHCPAPI_PARAMS;
  {$EXTERNALSYM DHCPAPI_PARAMS}
  LPDHCPAPI_PARAMS = ^DHCPAPI_PARAMS;
  {$EXTERNALSYM LPDHCPAPI_PARAMS}
  PDHCPAPI_PARAMS = ^DHCPAPI_PARAMS;
  {$EXTERNALSYM PDHCPAPI_PARAMS}
  TDhcpApiParams = DHCPAPI_PARAMS;
  PDhcpApiParams = PDHCPAPI_PARAMS;

  DHCPCAPI_PARAMS = DHCPAPI_PARAMS;
  {$EXTERNALSYM DHCPCAPI_PARAMS}
  PDHCPCAPI_PARAMS = ^DHCPCAPI_PARAMS;
  {$EXTERNALSYM PDHCPCAPI_PARAMS}
  LPDHCPCAPI_PARAMS = ^DHCPCAPI_PARAMS;
  {$EXTERNALSYM LPDHCPCAPI_PARAMS}
  TDhcpCApiParams = DHCPCAPI_PARAMS;
  PDhcpCApiParams = PDHCPCAPI_PARAMS;

  _DHCPCAPI_PARAMS_ARRAY = record
    nParams: ULONG;            // size of array
    Params: PDHCPCAPI_PARAMS;  // actual array
  end;
  {$EXTERNALSYM _DHCPCAPI_PARAMS_ARRAY}
  DHCPCAPI_PARAMS_ARRAY = _DHCPCAPI_PARAMS_ARRAY;
  {$EXTERNALSYM DHCPCAPI_PARAMS_ARRAY}
  LPDHCPCAPI_PARAMS_ARRAY = ^DHCPCAPI_PARAMS_ARRAY;
  {$EXTERNALSYM LPDHCPCAPI_PARAMS_ARRAY}
  PDHCPCAPI_PARAMS_ARRAY = ^DHCPCAPI_PARAMS_ARRAY;
  {$EXTERNALSYM PDHCPCAPI_PARAMS_ARRAY}
  TDhcpcApiParamsArray = DHCPCAPI_PARAMS_ARRAY;
  PDhcpcApiParamsArray = PDHCPCAPI_PARAMS_ARRAY;

  _DHCPCAPI_CLASSID = record
    Flags: ULONG;      // must be zero currently.
    Data: LPBYTE;      // classid binary data.
    nBytesData: ULONG; // how many bytes of data are there?
  end;
  {$EXTERNALSYM _DHCPCAPI_CLASSID}
  DHCPCAPI_CLASSID = _DHCPCAPI_CLASSID;
  {$EXTERNALSYM DHCPCAPI_CLASSID}
  LPDHCPCAPI_CLASSID = ^DHCPCAPI_CLASSID;
  {$EXTERNALSYM LPDHCPCAPI_CLASSID}
  PDHCPCAPI_CLASSID = ^DHCPCAPI_CLASSID;
  {$EXTERNALSYM PDHCPCAPI_CLASSID}
  TDhcpcApiClassId = DHCPCAPI_CLASSID;
  PDhcpcApiClassId = PDHCPCAPI_CLASSID;

const
  DHCPCAPI_REQUEST_PERSISTENT   = $01; // request this options "permanently"
  {$EXTERNALSYM DHCPCAPI_REQUEST_PERSISTENT}
  DHCPCAPI_REQUEST_SYNCHRONOUS  = $02; // request and block on it
  {$EXTERNALSYM DHCPCAPI_REQUEST_SYNCHRONOUS}
  DHCPCAPI_REQUEST_ASYNCHRONOUS = $04; // request and return, set event on completion
  {$EXTERNALSYM DHCPCAPI_REQUEST_ASYNCHRONOUS}
  DHCPCAPI_REQUEST_CANCEL       = $08; // cancel request
  {$EXTERNALSYM DHCPCAPI_REQUEST_CANCEL}
  DHCPCAPI_REQUEST_MASK         = $0F; // allowed flags..
  {$EXTERNALSYM DHCPCAPI_REQUEST_MASK}

function DhcpCApiInitialize(var Version: DWORD): DWORD; stdcall;
{$EXTERNALSYM DhcpCApiInitialize}

procedure DhcpCApiCleanup; stdcall;
{$EXTERNALSYM DhcpCApiCleanup}

function DhcpRequestParams(Flags: DWORD; Reserved: LPVOID; AdapterName: LPWSTR;
  ClassId: PDHCPCAPI_CLASSID; SendParams, RecdParams: DHCPCAPI_PARAMS_ARRAY;
  Buffer: LPBYTE; pSize: LPDWORD; RequestIdStr: LPWSTR): DWORD; stdcall;
{$EXTERNALSYM DhcpRequestParams}

function DhcpUndoRequestParams(Flags: DWORD; Reserved: LPVOID; AdapterName: LPWSTR;
  RequestIdStr: LPWSTR): DWORD; stdcall;
{$EXTERNALSYM DhcpUndoRequestParams}

const
  DHCPCAPI_REGISTER_HANDLE_EVENT = $01; // handle returned is to an event
  {$EXTERNALSYM DHCPCAPI_REGISTER_HANDLE_EVENT}

function DhcpRegisterParamChange(Flags: DWORD; Reserved: LPVOID; AdapterName: LPWSTR;
  ClassId: PDHCPCAPI_CLASSID; Params: DHCPCAPI_PARAMS_ARRAY; Handle: LPVOID): DWORD; stdcall;
{$EXTERNALSYM DhcpRegisterParamChange}

const
  DHCPCAPI_DEREGISTER_HANDLE_EVENT = $01; // de-register handle that is an event
  {$EXTERNALSYM DHCPCAPI_DEREGISTER_HANDLE_EVENT}

function DhcpDeRegisterParamChange(Flags: DWORD; Reserved, Event: LPVOID): DWORD; stdcall;
{$EXTERNALSYM DhcpDeRegisterParamChange}

function DhcpRemoveDNSRegistrations: DWORD; stdcall;
{$EXTERNALSYM DhcpRemoveDNSRegistrations}

implementation

const
  dhcpapi = 'dhcpcsvc.dll';


{$IFDEF DYNAMIC_LINK}
var
  _DhcpCApiInitialize: Pointer;

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

{$IFDEF DYNAMIC_LINK}
var
  _DhcpCApiCleanup: Pointer;

procedure DhcpCApiCleanup;
begin
  GetProcedureAddress(_DhcpCApiCleanup, dhcpapi, 'DhcpCApiCleanup');
  asm
    mov esp, ebp
    pop ebp
    jmp [_DhcpCApiCleanup]
  end;
end;
{$ELSE}
procedure DhcpCApiCleanup; external dhcpapi name 'DhcpCApiCleanup';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _DhcpRequestParams: Pointer;

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

{$IFDEF DYNAMIC_LINK}
var
  _DhcpUndoRequestParams: Pointer;

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

{$IFDEF DYNAMIC_LINK}
var
  _DhcpRegisterParamChange: Pointer;

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

{$IFDEF DYNAMIC_LINK}
var
  _DhcpDeRegisterParamChange: Pointer;

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

{$IFDEF DYNAMIC_LINK}
var
  _DhcpRemoveDNSRegistrations: Pointer;

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

end.

⌨️ 快捷键说明

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