📄 jwalmaccess.pas
字号:
{******************************************************************************}
{ }
{ Lan Manager Access API interface Unit for Object Pascal }
{ }
{ Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
{ Corporation. All Rights Reserved. }
{ }
{ The original file is: lmaccess.h, released November 2001. The original Pascal}
{ code is: LmAccess.pas, released Februari 2002. The initial developer of the }
{ Pascal code is Marcel van Brakel (brakelm@chello.nl). }
{ }
{ Portions created by Marcel van Brakel are Copyright (C) 1999-2001 }
{ Marcel van Brakel. All Rights Reserved. }
{ }
{ Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
{ }
{ You may retrieve the latest version of this file at the Project JEDI home }
{ page, located at http://delphi-jedi.org or my personal homepage located at }
{ http://members.chello.nl/m.vanbrakel2 }
{ }
{ The contents of this file are used with permission, subject to the Mozilla }
{ Public License Version 1.1 (the "License"); you may not use this file except }
{ in compliance with the License. You may obtain a copy of the License at }
{ http://www.mozilla.org/MPL/MPL-1.1.html }
{ }
{ Software distributed under the License is distributed on an "AS IS" basis, }
{ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
{ the specific language governing rights and limitations under the License. }
{ }
{ Alternatively, the contents of this file may be used under the terms of the }
{ GNU Lesser General Public License (the "LGPL License"), in which case the }
{ provisions of the LGPL License are applicable instead of those above. }
{ If you wish to allow use of your version of this file only under the terms }
{ of the LGPL License and not to allow others to use your version of this file }
{ under the MPL, indicate your decision by deleting the provisions above and }
{ replace them with the notice and other provisions required by the LGPL }
{ License. If you do not delete the provisions above, a recipient may use }
{ your version of this file under either the MPL or the LGPL License. }
{ }
{ For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
{ }
{******************************************************************************}
unit JwaLmAccess;
{$WEAKPACKAGEUNIT}
{$HPPEMIT ''}
{$HPPEMIT '#include "lmaccess.h"'}
{$HPPEMIT ''}
{$I WINDEFINES.INC}
interface
uses
JwaWinNT, JwaWinType, JwaLmCons;
//
// Function Prototypes - User
//
function NetUserAdd(servername: LPCWSTR; level: DWORD; buf: LPBYTE; parm_err: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetUserAdd}
function NetUserEnum(servername: LPCWSTR; level, filter: DWORD; var bufptr: LPBYTE; prefmaxlen: DWORD; entriesread, totalentries, resume_handle: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetUserEnum}
function NetUserGetInfo(servername, username: LPCWSTR; level: DWORD; bufptr: LPBYTE): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetUserGetInfo}
function NetUserSetInfo(servername, username: LPCWSTR; level: DWORD; buf: LPBYTE; parm_err: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetUserSetInfo}
function NetUserDel(servername: LPCWSTR; username: LPCWSTR): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetUserDel}
function NetUserGetGroups(servername, username: LPCWSTR; level: DWORD; var bufptr: LPBYTE; prefmaxlen: DWORD; entriesread, totalentries: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetUserGetGroups}
function NetUserSetGroups(servername, username: LPCWSTR; level: DWORD; buf: LPBYTE; num_entries: DWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetUserSetGroups}
function NetUserGetLocalGroups(servername, username: LPCWSTR; level, flags: DWORD; var bufptr: LPBYTE; prefmaxlen: DWORD; entriesread, totalentries: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetUserGetLocalGroups}
function NetUserModalsGet(servername: LPCWSTR; level: DWORD; var bufptr: LPBYTE): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetUserModalsGet}
function NetUserModalsSet(servername: LPCWSTR; level: DWORD; buf: LPBYTE; parm_err: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetUserModalsSet}
function NetUserChangePassword(domainname, username, oldpassword, newpassword: LPCWSTR): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetUserChangePassword}
//
// Data Structures - User
//
type
LPUSER_INFO_0 = ^USER_INFO_0;
{$EXTERNALSYM LPUSER_INFO_0}
PUSER_INFO_0 = ^USER_INFO_0;
{$EXTERNALSYM PUSER_INFO_0}
_USER_INFO_0 = record
usri0_name: LPWSTR;
end;
{$EXTERNALSYM _USER_INFO_0}
USER_INFO_0 = _USER_INFO_0;
{$EXTERNALSYM USER_INFO_0}
TUserInfo0 = USER_INFO_0;
PUserInfo0 = PUSER_INFO_0;
LPUSER_INFO_1 = ^USER_INFO_1;
{$EXTERNALSYM LPUSER_INFO_1}
PUSER_INFO_1 = ^USER_INFO_1;
{$EXTERNALSYM PUSER_INFO_1}
_USER_INFO_1 = record
usri1_name: LPWSTR;
usri1_password: LPWSTR;
usri1_password_age: DWORD;
usri1_priv: DWORD;
usri1_home_dir: LPWSTR;
usri1_comment: LPWSTR;
usri1_flags: DWORD;
usri1_script_path: LPWSTR;
end;
{$EXTERNALSYM _USER_INFO_1}
USER_INFO_1 = _USER_INFO_1;
{$EXTERNALSYM USER_INFO_1}
TUserInfo1 = USER_INFO_1;
PUserInfo1 = PUSER_INFO_1;
LPUSER_INFO_2 = ^USER_INFO_2;
{$EXTERNALSYM LPUSER_INFO_2}
PUSER_INFO_2 = ^USER_INFO_2;
{$EXTERNALSYM PUSER_INFO_2}
_USER_INFO_2 = record
usri2_name: LPWSTR;
usri2_password: LPWSTR;
usri2_password_age: DWORD;
usri2_priv: DWORD;
usri2_home_dir: LPWSTR;
usri2_comment: LPWSTR;
usri2_flags: DWORD;
usri2_script_path: LPWSTR;
usri2_auth_flags: DWORD;
usri2_full_name: LPWSTR;
usri2_usr_comment: LPWSTR;
usri2_parms: LPWSTR;
usri2_workstations: LPWSTR;
usri2_last_logon: DWORD;
usri2_last_logoff: DWORD;
usri2_acct_expires: DWORD;
usri2_max_storage: DWORD;
usri2_units_per_week: DWORD;
usri2_logon_hours: PBYTE;
usri2_bad_pw_count: DWORD;
usri2_num_logons: DWORD;
usri2_logon_server: LPWSTR;
usri2_country_code: DWORD;
usri2_code_page: DWORD;
end;
{$EXTERNALSYM _USER_INFO_2}
USER_INFO_2 = _USER_INFO_2;
{$EXTERNALSYM USER_INFO_2}
TUserInfo2 = USER_INFO_2;
PUserInfo2 = PUSER_INFO_2;
LPUSER_INFO_3 = ^USER_INFO_3;
{$EXTERNALSYM LPUSER_INFO_3}
PUSER_INFO_3 = ^USER_INFO_3;
{$EXTERNALSYM PUSER_INFO_3}
_USER_INFO_3 = record
usri3_name: LPWSTR;
usri3_password: LPWSTR;
usri3_password_age: DWORD;
usri3_priv: DWORD;
usri3_home_dir: LPWSTR;
usri3_comment: LPWSTR;
usri3_flags: DWORD;
usri3_script_path: LPWSTR;
usri3_auth_flags: DWORD;
usri3_full_name: LPWSTR;
usri3_usr_comment: LPWSTR;
usri3_parms: LPWSTR;
usri3_workstations: LPWSTR;
usri3_last_logon: DWORD;
usri3_last_logoff: DWORD;
usri3_acct_expires: DWORD;
usri3_max_storage: DWORD;
usri3_units_per_week: DWORD;
usri3_logon_hours: PBYTE;
usri3_bad_pw_count: DWORD;
usri3_num_logons: DWORD;
usri3_logon_server: LPWSTR;
usri3_country_code: DWORD;
usri3_code_page: DWORD;
usri3_user_id: DWORD;
usri3_primary_group_id: DWORD;
usri3_profile: LPWSTR;
usri3_home_dir_drive: LPWSTR;
usri3_password_expired: DWORD;
end;
{$EXTERNALSYM _USER_INFO_3}
USER_INFO_3 = _USER_INFO_3;
{$EXTERNALSYM USER_INFO_3}
TUserInfo3 = USER_INFO_3;
PUserInfo3 = PUSER_INFO_3;
LPUSER_INFO_4 = ^USER_INFO_4;
{$EXTERNALSYM LPUSER_INFO_4}
PUSER_INFO_4 = ^USER_INFO_4;
{$EXTERNALSYM PUSER_INFO_4}
_USER_INFO_4 = record
usri4_name: LPWSTR;
usri4_password: LPWSTR;
usri4_password_age: DWORD;
usri4_priv: DWORD;
usri4_home_dir: LPWSTR;
usri4_comment: LPWSTR;
usri4_flags: DWORD;
usri4_script_path: LPWSTR;
usri4_auth_flags: DWORD;
usri4_full_name: LPWSTR;
usri4_usr_comment: LPWSTR;
usri4_parms: LPWSTR;
usri4_workstations: LPWSTR;
usri4_last_logon: DWORD;
usri4_last_logoff: DWORD;
usri4_acct_expires: DWORD;
usri4_max_storage: DWORD;
usri4_units_per_week: DWORD;
usri4_logon_hours: PBYTE;
usri4_bad_pw_count: DWORD;
usri4_num_logons: DWORD;
usri4_logon_server: LPWSTR;
usri4_country_code: DWORD;
usri4_code_page: DWORD;
usri4_user_sid: PSID;
usri4_primary_group_id: DWORD;
usri4_profile: LPWSTR;
usri4_home_dir_drive: LPWSTR;
usri4_password_expired: DWORD;
end;
{$EXTERNALSYM _USER_INFO_4}
USER_INFO_4 = _USER_INFO_4;
{$EXTERNALSYM USER_INFO_4}
TUserInfo4 = USER_INFO_4;
PUserInfo4 = PUSER_INFO_4;
LPUSER_INFO_10 = ^USER_INFO_10;
{$EXTERNALSYM LPUSER_INFO_10}
PUSER_INFO_10 = ^USER_INFO_10;
{$EXTERNALSYM PUSER_INFO_10}
_USER_INFO_10 = record
usri10_name: LPWSTR;
usri10_comment: LPWSTR;
usri10_usr_comment: LPWSTR;
usri10_full_name: LPWSTR;
end;
{$EXTERNALSYM _USER_INFO_10}
USER_INFO_10 = _USER_INFO_10;
{$EXTERNALSYM USER_INFO_10}
TUserInfo10 = USER_INFO_10;
PUserInfo10 = PUSER_INFO_10;
LPUSER_INFO_11 = ^USER_INFO_11;
{$EXTERNALSYM LPUSER_INFO_11}
PUSER_INFO_11 = ^USER_INFO_11;
{$EXTERNALSYM PUSER_INFO_11}
_USER_INFO_11 = record
usri11_name: LPWSTR;
usri11_comment: LPWSTR;
usri11_usr_comment: LPWSTR;
usri11_full_name: LPWSTR;
usri11_priv: DWORD;
usri11_auth_flags: DWORD;
usri11_password_age: DWORD;
usri11_home_dir: LPWSTR;
usri11_parms: LPWSTR;
usri11_last_logon: DWORD;
usri11_last_logoff: DWORD;
usri11_bad_pw_count: DWORD;
usri11_num_logons: DWORD;
usri11_logon_server: LPWSTR;
usri11_country_code: DWORD;
usri11_workstations: LPWSTR;
usri11_max_storage: DWORD;
usri11_units_per_week: DWORD;
usri11_logon_hours: PBYTE;
usri11_code_page: DWORD;
end;
{$EXTERNALSYM _USER_INFO_11}
USER_INFO_11 = _USER_INFO_11;
{$EXTERNALSYM USER_INFO_11}
TUserInfo11 = USER_INFO_11;
PUserInfo11 = PUSER_INFO_11;
LPUSER_INFO_20 = ^USER_INFO_20;
{$EXTERNALSYM LPUSER_INFO_20}
PUSER_INFO_20 = ^USER_INFO_20;
{$EXTERNALSYM PUSER_INFO_20}
_USER_INFO_20 = record
usri20_name: LPWSTR;
usri20_full_name: LPWSTR;
usri20_comment: LPWSTR;
usri20_flags: DWORD;
usri20_user_id: DWORD;
end;
{$EXTERNALSYM _USER_INFO_20}
USER_INFO_20 = _USER_INFO_20;
{$EXTERNALSYM USER_INFO_20}
TUserInfo20 = USER_INFO_20;
PUserInfo20 = PUSER_INFO_20;
LPUSER_INFO_21 = ^USER_INFO_21;
{$EXTERNALSYM LPUSER_INFO_21}
PUSER_INFO_21 = ^USER_INFO_21;
{$EXTERNALSYM PUSER_INFO_21}
_USER_INFO_21 = record
usri21_password: array [0..ENCRYPTED_PWLEN - 1] of BYTE;
end;
{$EXTERNALSYM _USER_INFO_21}
USER_INFO_21 = _USER_INFO_21;
{$EXTERNALSYM USER_INFO_21}
TUserInfo21 = USER_INFO_21;
PUserInfo21 = PUSER_INFO_21;
LPUSER_INFO_22 = ^USER_INFO_22;
{$EXTERNALSYM LPUSER_INFO_22}
PUSER_INFO_22 = ^USER_INFO_22;
{$EXTERNALSYM PUSER_INFO_22}
_USER_INFO_22 = record
usri22_name: LPWSTR;
usri22_password: array [0..ENCRYPTED_PWLEN - 1] of BYTE;
usri22_password_age: DWORD;
usri22_priv: DWORD;
usri22_home_dir: LPWSTR;
usri22_comment: LPWSTR;
usri22_flags: DWORD;
usri22_script_path: LPWSTR;
usri22_auth_flags: DWORD;
usri22_full_name: LPWSTR;
usri22_usr_comment: LPWSTR;
usri22_parms: LPWSTR;
usri22_workstations: LPWSTR;
usri22_last_logon: DWORD;
usri22_last_logoff: DWORD;
usri22_acct_expires: DWORD;
usri22_max_storage: DWORD;
usri22_units_per_week: DWORD;
usri22_logon_hours: PBYTE;
usri22_bad_pw_count: DWORD;
usri22_num_logons: DWORD;
usri22_logon_server: LPWSTR;
usri22_country_code: DWORD;
usri22_code_page: DWORD;
end;
{$EXTERNALSYM _USER_INFO_22}
USER_INFO_22 = _USER_INFO_22;
{$EXTERNALSYM USER_INFO_22}
TUserInfo22 = USER_INFO_22;
PUserInfo22 = PUSER_INFO_22;
LPUSER_INFO_23 = ^USER_INFO_23;
{$EXTERNALSYM LPUSER_INFO_23}
PUSER_INFO_23 = ^USER_INFO_23;
{$EXTERNALSYM PUSER_INFO_23}
_USER_INFO_23 = record
usri23_name: LPWSTR;
usri23_full_name: LPWSTR;
usri23_comment: LPWSTR;
usri23_flags: DWORD;
usri23_user_sid: PSID;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -