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

📄 jwalmshare.pas

📁 比较全面的win32api开发包
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    sesi502_cname: LMSTR; // client name (no backslashes)
    sesi502_username: LMSTR;
    sesi502_num_opens: DWORD;
    sesi502_time: DWORD;
    sesi502_idle_time: DWORD;
    sesi502_user_flags: DWORD;
    sesi502_cltype_name: LMSTR;
    sesi502_transport: LMSTR;
  end;
  {$EXTERNALSYM _SESSION_INFO_502}
  SESSION_INFO_502 = _SESSION_INFO_502;
  {$EXTERNALSYM SESSION_INFO_502}
  TSessionInfo502 = SESSION_INFO_502;
  PSessionInfo502 = PSESSION_INFO_502;

//
// Special Values and Constants - Session
//


//
// Bits defined in sesi1_user_flags.
//

const
  SESS_GUEST        = $00000001; // session is logged on as a guest
  {$EXTERNALSYM SESS_GUEST}
  SESS_NOENCRYPTION = $00000002; // session is not using encryption
  {$EXTERNALSYM SESS_NOENCRYPTION}

  SESI1_NUM_ELEMENTS = 8;
  {$EXTERNALSYM SESI1_NUM_ELEMENTS}
  SESI2_NUM_ELEMENTS = 9;
  {$EXTERNALSYM SESI2_NUM_ELEMENTS}

//
// CONNECTION API
//

//
// Function Prototypes - CONNECTION
//

function NetConnectionEnum(servername, qualifier: LMSTR; level: DWORD; var bufptr: LPBYTE; prefmaxlen: DWORD; entriesread, totalentries, resume_handle: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetConnectionEnum}

//
// Data Structures - CONNECTION
//

type
  LPCONNECTION_INFO_0 = ^CONNECTION_INFO_0;
  {$EXTERNALSYM LPCONNECTION_INFO_0}
  PCONNECTION_INFO_0 = ^CONNECTION_INFO_0;
  {$EXTERNALSYM PCONNECTION_INFO_0}
  _CONNECTION_INFO_0 = record
    coni0_id: DWORD;
  end;
  {$EXTERNALSYM _CONNECTION_INFO_0}
  CONNECTION_INFO_0 = _CONNECTION_INFO_0;
  {$EXTERNALSYM CONNECTION_INFO_0}
  TConnectionInfo0 = CONNECTION_INFO_0;
  PConnectionInfo0 = PCONNECTION_INFO_0;

  LPCONNECTION_INFO_1 = ^CONNECTION_INFO_1;
  {$EXTERNALSYM LPCONNECTION_INFO_1}
  PCONNECTION_INFO_1 = ^CONNECTION_INFO_1;
  {$EXTERNALSYM PCONNECTION_INFO_1}
  _CONNECTION_INFO_1 = record
    coni1_id: DWORD;
    coni1_type: DWORD;
    coni1_num_opens: DWORD;
    coni1_num_users: DWORD;
    coni1_time: DWORD;
    coni1_username: LMSTR;
    coni1_netname: LMSTR;
  end;
  {$EXTERNALSYM _CONNECTION_INFO_1}
  CONNECTION_INFO_1 = _CONNECTION_INFO_1;
  {$EXTERNALSYM CONNECTION_INFO_1}
  TConnectionInfo1 = CONNECTION_INFO_1;
  PConnectionInfo1 = PCONNECTION_INFO_1;

//
// FILE API
//

//
// Function Prototypes - FILE
//

function NetFileClose(servername: LMSTR; fileid: DWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetFileClose}

function NetFileEnum(servername, basepath, username: LMSTR; level: DWORD; var bufptr: LPBYTE; prefmaxlen: DWORD; entriesread, totalentries, resume_handle: PDWORD_PTR): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetFileEnum}

function NetFileGetInfo(servername: LMSTR; fileid, level: DWORD; var bufptr: LPBYTE): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetFileGetInfo}

//
// Data Structures - File
//

//  File APIs are available at information levels 2 & 3 only. Levels 0 &
//  1 are not supported.
//

type
  LPFILE_INFO_2 = ^FILE_INFO_2;
  {$EXTERNALSYM LPFILE_INFO_2}
  PFILE_INFO_2 = ^FILE_INFO_2;
  {$EXTERNALSYM PFILE_INFO_2}
  _FILE_INFO_2 = record
    fi2_id: DWORD;
  end;
  {$EXTERNALSYM _FILE_INFO_2}
  FILE_INFO_2 = _FILE_INFO_2;
  {$EXTERNALSYM FILE_INFO_2}
  TFileInfo2 = FILE_INFO_2;
  PFileInfo2 = PFILE_INFO_2;

  LPFILE_INFO_3 = ^FILE_INFO_3;
  {$EXTERNALSYM LPFILE_INFO_3}
  PFILE_INFO_3 = ^FILE_INFO_3;
  {$EXTERNALSYM PFILE_INFO_3}
  _FILE_INFO_3 = record
    fi3_id: DWORD;
    fi3_permissions: DWORD;
    fi3_num_locks: DWORD;
    fi3_pathname: LMSTR;
    fi3_username: LMSTR;
  end;
  {$EXTERNALSYM _FILE_INFO_3}
  FILE_INFO_3 = _FILE_INFO_3;
  {$EXTERNALSYM FILE_INFO_3}
  TFileInfo3 = FILE_INFO_3;
  PFileInfo3 = PFILE_INFO_3;

//
// Special Values and Constants - File
//

//
// bit values for permissions
//

const
  PERM_FILE_READ   = $1; // user has read access
  {$EXTERNALSYM PERM_FILE_READ}
  PERM_FILE_WRITE  = $2; // user has write access
  {$EXTERNALSYM PERM_FILE_WRITE}
  PERM_FILE_CREATE = $4; // user has create access
  {$EXTERNALSYM PERM_FILE_CREATE}

implementation


{$IFDEF DYNAMIC_LINK}
var
  _NetShareAdd: Pointer;

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

{$IFDEF DYNAMIC_LINK}
var
  _NetShareEnum: Pointer;

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

{$IFDEF DYNAMIC_LINK}
var
  _NetShareEnumSticky: Pointer;

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

{$IFDEF DYNAMIC_LINK}
var
  _NetShareGetInfo: Pointer;

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

{$IFDEF DYNAMIC_LINK}
var
  _NetShareSetInfo: Pointer;

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

{$IFDEF DYNAMIC_LINK}
var
  _NetShareDel: Pointer;

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

{$IFDEF DYNAMIC_LINK}
var
  _NetShareDelSticky: Pointer;

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

{$IFDEF DYNAMIC_LINK}
var
  _NetShareCheck: Pointer;

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


{$IFDEF DYNAMIC_LINK}
var
  _NetSessionEnum: Pointer;

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

{$IFDEF DYNAMIC_LINK}
var
  _NetSessionDel: Pointer;

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

{$IFDEF DYNAMIC_LINK}
var
  _NetSessionGetInfo: Pointer;

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


{$IFDEF DYNAMIC_LINK}
var
  _NetConnectionEnum: Pointer;

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


{$IFDEF DYNAMIC_LINK}
var
  _NetFileClose: Pointer;

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

{$IFDEF DYNAMIC_LINK}
var
  _NetFileEnum: Pointer;

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

{$IFDEF DYNAMIC_LINK}
var
  _NetFileGetInfo: Pointer;

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

end.

⌨️ 快捷键说明

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