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

📄 jwalmaccess.pas

📁 比较全面的win32api开发包
💻 PAS
📖 第 1 页 / 共 5 页
字号:
  {$EXTERNALSYM LOCALGROUP_MEMBERS_INFO_2}
  TLocalGroupMembersInfo2 = LOCALGROUP_MEMBERS_INFO_2;
  PLocalGroupMembersInfo2 = PLOCALGROUP_MEMBERS_INFO_2;

  LPLOCALGROUP_MEMBERS_INFO_3 = ^LOCALGROUP_MEMBERS_INFO_3;
  {$EXTERNALSYM LPLOCALGROUP_MEMBERS_INFO_3}
  PLOCALGROUP_MEMBERS_INFO_3 = ^LOCALGROUP_MEMBERS_INFO_3;
  {$EXTERNALSYM PLOCALGROUP_MEMBERS_INFO_3}
  _LOCALGROUP_MEMBERS_INFO_3 = record
    lgrmi3_domainandname: LPWSTR;
  end;
  {$EXTERNALSYM _LOCALGROUP_MEMBERS_INFO_3}
  LOCALGROUP_MEMBERS_INFO_3 = _LOCALGROUP_MEMBERS_INFO_3;
  {$EXTERNALSYM LOCALGROUP_MEMBERS_INFO_3}
  TLocalGroupMembersInfo3 = LOCALGROUP_MEMBERS_INFO_3;
  PLocalGroupMembersInfo3 = PLOCALGROUP_MEMBERS_INFO_3;

  LPLOCALGROUP_USERS_INFO_0 = ^LOCALGROUP_USERS_INFO_0;
  {$EXTERNALSYM LPLOCALGROUP_USERS_INFO_0}
  PLOCALGROUP_USERS_INFO_0 = ^LOCALGROUP_USERS_INFO_0;
  {$EXTERNALSYM PLOCALGROUP_USERS_INFO_0}
  _LOCALGROUP_USERS_INFO_0 = record
    lgrui0_name: LPWSTR;
  end;
  {$EXTERNALSYM _LOCALGROUP_USERS_INFO_0}
  LOCALGROUP_USERS_INFO_0 = _LOCALGROUP_USERS_INFO_0;
  {$EXTERNALSYM LOCALGROUP_USERS_INFO_0}
  TLocalGroupUsersInfo0 = LOCALGROUP_USERS_INFO_0;
  PLocalGroupUsersInfo0 = PLOCALGROUP_USERS_INFO_0;

const
  LOCALGROUP_NAME_PARMNUM    = 1;
  {$EXTERNALSYM LOCALGROUP_NAME_PARMNUM}
  LOCALGROUP_COMMENT_PARMNUM = 2;
  {$EXTERNALSYM LOCALGROUP_COMMENT_PARMNUM}

//
// Display Information APIs
//

function NetQueryDisplayInformation(ServerName: LPCWSTR; Level, Index, EntriesRequested, PreferredMaximumLength: DWORD; ReturnedEntryCount: LPDWORD; var SortedBuffer: PVOID): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetQueryDisplayInformation}

function NetGetDisplayInformationIndex(ServerName: LPCWSTR; Level: DWORD; Prefix: LPCWSTR; Index: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetGetDisplayInformationIndex}

//
// QueryDisplayInformation levels

type
  PNET_DISPLAY_USER = ^NET_DISPLAY_USER;
  {$EXTERNALSYM PNET_DISPLAY_USER}
  _NET_DISPLAY_USER = record
    usri1_name: LPWSTR;
    usri1_comment: LPWSTR;
    usri1_flags: DWORD;
    usri1_full_name: LPWSTR;
    usri1_user_id: DWORD;
    usri1_next_index: DWORD;
  end;
  {$EXTERNALSYM _NET_DISPLAY_USER}
  NET_DISPLAY_USER = _NET_DISPLAY_USER;
  {$EXTERNALSYM NET_DISPLAY_USER}
  TNetDisplayUser = NET_DISPLAY_USER;
  PNetDisplayUser = PNET_DISPLAY_USER;

  PNET_DISPLAY_MACHINE = ^NET_DISPLAY_MACHINE;
  {$EXTERNALSYM PNET_DISPLAY_MACHINE}
  _NET_DISPLAY_MACHINE = record
    usri2_name: LPWSTR;
    usri2_comment: LPWSTR;
    usri2_flags: DWORD;
    usri2_user_id: DWORD;
    usri2_next_index: DWORD;
  end;
  {$EXTERNALSYM _NET_DISPLAY_MACHINE}
  NET_DISPLAY_MACHINE = _NET_DISPLAY_MACHINE;
  {$EXTERNALSYM NET_DISPLAY_MACHINE}
  TNetDisplayMachine = NET_DISPLAY_MACHINE;
  PNetDisplayMachine = PNET_DISPLAY_MACHINE;

  PNET_DISPLAY_GROUP = ^NET_DISPLAY_GROUP;
  {$EXTERNALSYM PNET_DISPLAY_GROUP}
  _NET_DISPLAY_GROUP = record
    grpi3_name: LPWSTR;
    grpi3_comment: LPWSTR;
    grpi3_group_id: DWORD;
    grpi3_attributes: DWORD;
    grpi3_next_index: DWORD;
  end;
  {$EXTERNALSYM _NET_DISPLAY_GROUP}
  NET_DISPLAY_GROUP = _NET_DISPLAY_GROUP;
  {$EXTERNALSYM NET_DISPLAY_GROUP}
  TNetDisplayGroup = NET_DISPLAY_GROUP;
  PNetDisplayGroup = PNET_DISPLAY_GROUP;

//
// Access Class
//

//
// Function Prototypes - Access
//
//
// The NetAccess APIs are only available to downlevel
//

//#define NetAccessAdd RxNetAccessAdd

function NetAccessAdd(servername: LPCWSTR; level: DWORD; buf: LPBYTE; parm_err: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetAccessAdd}

//#define NetAccessEnum RxNetAccessEnum

function NetAccessEnum(servername, BasePath: LPCWSTR; Recursive, level: DWORD; var bufptr: LPBYTE; prefmaxlen: DWORD; entriesread, totalentries, resume_handle: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetAccessEnum}

//#define NetAccessGetInfo RxNetAccessGetInfo

function NetAccessGetInfo(servername, resource: LPCWSTR; level: DWORD; var bufptr: LPBYTE): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetAccessGetInfo}

//#define NetAccessSetInfo RxNetAccessSetInfo

function NetAccessSetInfo(servername, resource: LPCWSTR; level: DWORD; buf: LPBYTE; parm_err: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetAccessSetInfo}

//#define NetAccessDel RxNetAccessDel

function NetAccessDel(servername: LPCWSTR; resource: LPCWSTR): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetAccessDel}

//#define NetAccessGetUserPerms RxNetAccessGetUserPerms

function NetAccessGetUserPerms(servername, UGname, resource: LPCWSTR; Perms: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetAccessGetUserPerms}

//
// Data Structures - Access
//

type
  LPACCESS_INFO_0 = ^ACCESS_INFO_0;
  {$EXTERNALSYM LPACCESS_INFO_0}
  PACCESS_INFO_0 = ^ACCESS_INFO_0;
  {$EXTERNALSYM PACCESS_INFO_0}
  _ACCESS_INFO_0 = record
    acc0_resource_name: LPWSTR;
  end;
  {$EXTERNALSYM _ACCESS_INFO_0}
  ACCESS_INFO_0 = _ACCESS_INFO_0;
  {$EXTERNALSYM ACCESS_INFO_0}
  TAccessInfo0 = ACCESS_INFO_0;
  PAccessInfo0 = PACCESS_INFO_0;

  LPACCESS_INFO_1 = ^ACCESS_INFO_1;
  {$EXTERNALSYM LPACCESS_INFO_1}
  PACCESS_INFO_1 = ^ACCESS_INFO_1;
  {$EXTERNALSYM PACCESS_INFO_1}
  _ACCESS_INFO_1 = record
    acc1_resource_name: LPWSTR;
    acc1_attr: DWORD;
    acc1_count: DWORD;
  end;
  {$EXTERNALSYM _ACCESS_INFO_1}
  ACCESS_INFO_1 = _ACCESS_INFO_1;
  {$EXTERNALSYM ACCESS_INFO_1}
  TAccessInfo1 = ACCESS_INFO_1;
  PAccessInfo1 = PACCESS_INFO_1;

  LPACCESS_INFO_1002 = ^ACCESS_INFO_1002;
  {$EXTERNALSYM LPACCESS_INFO_1002}
  PACCESS_INFO_1002 = ^ACCESS_INFO_1002;
  {$EXTERNALSYM PACCESS_INFO_1002}
  _ACCESS_INFO_1002 = record
    acc1002_attr: DWORD;
  end;
  {$EXTERNALSYM _ACCESS_INFO_1002}
  ACCESS_INFO_1002 = _ACCESS_INFO_1002;
  {$EXTERNALSYM ACCESS_INFO_1002}
  TAccessInfo1002 = ACCESS_INFO_1002;
  PAccessInfo1002 = PACCESS_INFO_1002;

  LPACCESS_LIST = ^ACCESS_LIST;
  {$EXTERNALSYM LPACCESS_LIST}
  PACCESS_LIST = ^ACCESS_LIST;
  {$EXTERNALSYM PACCESS_LIST}
  _ACCESS_LIST = record
    acl_ugname: LPWSTR;
    acl_access: DWORD;
  end;
  {$EXTERNALSYM _ACCESS_LIST}
  ACCESS_LIST = _ACCESS_LIST;
  {$EXTERNALSYM ACCESS_LIST}
  TAccessList = ACCESS_LIST;
  PAccessList = PACCESS_LIST;

//
// Special Values and Constants - Access
//

//
// Maximum number of permission entries for each resource.
//

const
  MAXPERMENTRIES = 64;
  {$EXTERNALSYM MAXPERMENTRIES}

//
//  Bit values for the access permissions.  ACCESS_ALL is a handy
//  way to specify maximum permissions.  These are used in
//  acl_access field of access_list structures.
//

  ACCESS_READ   = $01;
  {$EXTERNALSYM ACCESS_READ}
  ACCESS_WRITE  = $02;
  {$EXTERNALSYM ACCESS_WRITE}
  ACCESS_CREATE = $04;
  {$EXTERNALSYM ACCESS_CREATE}
  ACCESS_EXEC   = $08;
  {$EXTERNALSYM ACCESS_EXEC}
  ACCESS_DELETE = $10;
  {$EXTERNALSYM ACCESS_DELETE}
  ACCESS_ATRIB  = $20;
  {$EXTERNALSYM ACCESS_ATRIB}
  ACCESS_PERM   = $40;
  {$EXTERNALSYM ACCESS_PERM}

  ACCESS_GROUP = $8000;
  {$EXTERNALSYM ACCESS_GROUP}

  ACCESS_NONE = 0;
  {$EXTERNALSYM ACCESS_NONE}
  ACCESS_ALL  = (ACCESS_READ or ACCESS_WRITE or ACCESS_CREATE or ACCESS_EXEC or ACCESS_DELETE or ACCESS_ATRIB or ACCESS_PERM);
  {$EXTERNALSYM ACCESS_ALL}
  
//
// Bit values for the acc1_attr field of the ACCESS_INFO_1 structure.
//

  ACCESS_AUDIT = $1;
  {$EXTERNALSYM ACCESS_AUDIT}

  ACCESS_SUCCESS_OPEN   = $10;
  {$EXTERNALSYM ACCESS_SUCCESS_OPEN}
  ACCESS_SUCCESS_WRITE  = $20;
  {$EXTERNALSYM ACCESS_SUCCESS_WRITE}
  ACCESS_SUCCESS_DELETE = $40;
  {$EXTERNALSYM ACCESS_SUCCESS_DELETE}
  ACCESS_SUCCESS_ACL    = $80;
  {$EXTERNALSYM ACCESS_SUCCESS_ACL}
  ACCESS_SUCCESS_MASK   = $F0;
  {$EXTERNALSYM ACCESS_SUCCESS_MASK}

  ACCESS_FAIL_OPEN   = $100;
  {$EXTERNALSYM ACCESS_FAIL_OPEN}
  ACCESS_FAIL_WRITE  = $200;
  {$EXTERNALSYM ACCESS_FAIL_WRITE}
  ACCESS_FAIL_DELETE = $400;
  {$EXTERNALSYM ACCESS_FAIL_DELETE}
  ACCESS_FAIL_ACL    = $800;
  {$EXTERNALSYM ACCESS_FAIL_ACL}
  ACCESS_FAIL_MASK   = $F00;
  {$EXTERNALSYM ACCESS_FAIL_MASK}

  ACCESS_FAIL_SHIFT = 4;
  {$EXTERNALSYM ACCESS_FAIL_SHIFT}

//
// Parmnum value for NetAccessSetInfo.
//

  ACCESS_RESOURCE_NAME_PARMNUM = 1;
  {$EXTERNALSYM ACCESS_RESOURCE_NAME_PARMNUM}
  ACCESS_ATTR_PARMNUM          = 2;
  {$EXTERNALSYM ACCESS_ATTR_PARMNUM}
  ACCESS_COUNT_PARMNUM         = 3;
  {$EXTERNALSYM ACCESS_COUNT_PARMNUM}
  ACCESS_ACCESS_LIST_PARMNUM   = 4;
  {$EXTERNALSYM ACCESS_ACCESS_LIST_PARMNUM}

//
// the new infolevel counterparts of the old info level + parmnum
//

  ACCESS_RESOURCE_NAME_INFOLEVEL = (PARMNUM_BASE_INFOLEVEL + ACCESS_RESOURCE_NAME_PARMNUM);
  {$EXTERNALSYM ACCESS_RESOURCE_NAME_INFOLEVEL}
  ACCESS_ATTR_INFOLEVEL          = (PARMNUM_BASE_INFOLEVEL + ACCESS_ATTR_PARMNUM);
  {$EXTERNALSYM ACCESS_ATTR_INFOLEVEL}
  ACCESS_COUNT_INFOLEVEL         = (PARMNUM_BASE_INFOLEVEL + ACCESS_COUNT_PARMNUM);
  {$EXTERNALSYM ACCESS_COUNT_INFOLEVEL}
  ACCESS_ACCESS_LIST_INFOLEVEL   = (PARMNUM_BASE_INFOLEVEL + ACCESS_ACCESS_LIST_PARMNUM);
  {$EXTERNALSYM ACCESS_ACCESS_LIST_INFOLEVEL}

//
// ACCESS_LETTERS defines a letter for each bit position in
// the acl_access field of struct access_list.  Note that some
// bits have a corresponding letter of ' ' (space).
//

  ACCESS_LETTERS = 'RWCXDAP         ';
  {$EXTERNALSYM ACCESS_LETTERS}

//    ********************************
//
//    Password Checking API structures
//
//    ********************************


//
//    What kind of password checking is to be performed?
//        NetValidateAuthentication : Check if the authentication can be done
//        NetValidatePasswordChange: Check if the password can be changed
//        NetValidatePasswordReset: Reset the password to the given value
//

type
  _NET_VALIDATE_PASSWORD_TYPE = (
    NetValidateFiller0,
    NetValidateAuthentication,
    NetValidatePasswordChange,
    NetValidatePasswordReset);
  {$EXTERNALSYM _NET_VALIDATE_PASSWORD_TYPE}
  NET_VALIDATE_PASSWORD_TYPE = _NET_VALIDATE_PASSWORD_TYPE;
  {$EXTERNALSYM NET_VALIDATE_PASSWORD_TYPE}
  PNET_VALIDATE_PASSWORD_TYPE = ^NET_VALIDATE_PASSWORD_TYPE;
  {$EXTERNALSYM PNET_VALIDATE_PASSWORD_TYPE}
  TNetValidatePasswordType = NET_VALIDATE_PASSWORD_TYPE;
  PNetValidatePasswordType = PNET_VALIDATE_PASSWORD_TYPE;

//
//    Structure to keep the password hash
//

  _NET_VALIDATE_PASSWORD_HASH = record
    Length: ULONG;
    Hash: LPBYTE;
  end;
  {$EXTERNALSYM _NET_VALIDATE_PASSWORD_HASH}
  NET_VALIDATE_PASSWORD_HASH = _NET_VALIDATE_PASSWORD_HASH;
  {$EXTERNALSYM NET_VALIDATE_PASSWORD_HASH}
  PNET_VALIDATE_PASSWORD_HASH = ^NET_VALIDATE_PASSWORD_HASH;
  {$EXTERNALSYM PNET_VALIDATE_PASSWORD_HASH}
  TNetValidatePasswordHash = NET_VALIDATE_PASSWORD_HASH;
  PNetValidatePasswordHash = PNET_VALIDATE_PASSWORD_HASH;

// To be used with PresentFields member of NET_VALIDATE_PERSISTED_FIELDS

const
  NET_VALIDATE_PASSWORD_LAST_SET         = $00000001;
  {$EXTERNALSYM NET_VALIDATE_PASSWORD_LAST_SET}
  NET_VALIDATE_BAD_PASSWORD_TIME         = $00000002;
  {$EXTERNALSYM NET_VALIDATE_BAD_PASSWORD_TIME}
  NET_VALIDATE_LOCKOUT_TIME              = $00000004;
  {$EXTERNALSYM NET_VALIDATE_LOCKOUT_TIME}
  NET_VALIDATE_BAD_PASSWORD_COUNT        = $00000008;
  {$EXTERNALSYM NET_VALIDATE_BAD_PASSWORD_COUNT}
  NET_VALIDATE_PASSWORD_HISTORY_LENGTH   = $00000010;
  {$EXTERNALSYM NET_VALIDATE_PASSWORD_HISTORY_LENGTH}
  NET_VALIDATE_PASSWORD_HISTORY          = $00000020;
  {$EXTERNALSYM NET_VALIDATE_PASSWORD_HISTORY}

//#if !defined(_WINBASE_) && !defined(_FILETIME_)
//#define _FILETIME_
//typedef struct _FILETIME
//{/
//    DWORD dwLowDateTime;
//    DWORD dwHighDateTime;
//} FILETIME, FAR * LPFILETIME, *PFILETIME;
//#

⌨️ 快捷键说明

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