Repository URL to install this package:
Version:
3.0.0 ▾
|
{******************************************************************************}
{ }
{ Lan Manager Constants API interface Unit for Object Pascal }
{ }
{ Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
{ Corporation. All Rights Reserved. }
{ }
{ The original file is: lmcons.h, released November 2001. The original Pascal }
{ code is: LmCons.pas, released Februari 2002. The initial developer of the }
{ Pascal code is Marcel van Brakel (brakelm att chello dott 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 }
{ APILIB home page, located at http://jedi-apilib.sourceforge.net }
{ }
{ 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 }
{ }
{******************************************************************************}
// $Id: JwaLmCons.pas,v 1.12 2007/09/05 11:58:50 dezipaitor Exp $
{$IFNDEF JWA_OMIT_SECTIONS}
unit JwaLmCons;
{$WEAKPACKAGEUNIT}
{$ENDIF JWA_OMIT_SECTIONS}
{$HPPEMIT ''}
{$HPPEMIT '#include "lm.h"'}
{$HPPEMIT ''}
{$IFNDEF JWA_OMIT_SECTIONS}
{$I jediapilib.inc}
interface
uses
JwaWinType, JwaLmErr;
{$ENDIF JWA_OMIT_SECTIONS}
{$IFNDEF JWA_IMPLEMENTATIONSECTION}
{$IFNDEF JWA_INCLUDEMODE}
const
NetApi32 = 'netapi32.dll';
{$ENDIF JWA_INCLUDEMODE}
//
// NOTE: Lengths of strings are given as the maximum lengths of the
// string in characters (not bytes). This does not include space for the
// terminating 0-characters. When allocating space for such an item,
// use the form:
//
// TCHAR username[UNLEN+1];
//
// Definitions of the form LN20_* define those values in effect for
// LanMan 2.0.
//
//
// String Lengths for various LanMan names
//
const
CNLEN = 15; // Computer name length
{$EXTERNALSYM CNLEN}
LM20_CNLEN = 15; // LM 2.0 Computer name length
{$EXTERNALSYM LM20_CNLEN}
DNLEN = CNLEN; // Maximum domain name length
{$EXTERNALSYM DNLEN}
LM20_DNLEN = LM20_CNLEN; // LM 2.0 Maximum domain name length
{$EXTERNALSYM LM20_DNLEN}
//#if (CNLEN != DNLEN)
//#error CNLEN and DNLEN are not equal
//#endif
UNCLEN = CNLEN + 2; // UNC computer name length
{$EXTERNALSYM UNCLEN}
LM20_UNCLEN = LM20_CNLEN + 2; // LM 2.0 UNC computer name length
{$EXTERNALSYM LM20_UNCLEN}
NNLEN = 80; // Net name length (share name)
{$EXTERNALSYM NNLEN}
LM20_NNLEN = 12; // LM 2.0 Net name length
{$EXTERNALSYM LM20_NNLEN}
RMLEN = UNCLEN + 1 + NNLEN; // Max remote name length
{$EXTERNALSYM RMLEN}
LM20_RMLEN = LM20_UNCLEN + 1 + LM20_NNLEN; // LM 2.0 Max remote name length
{$EXTERNALSYM LM20_RMLEN}
SNLEN = 80; // Service name length
{$EXTERNALSYM SNLEN}
LM20_SNLEN = 15; // LM 2.0 Service name length
{$EXTERNALSYM LM20_SNLEN}
STXTLEN = 256; // Service text length
{$EXTERNALSYM STXTLEN}
LM20_STXTLEN = 63; // LM 2.0 Service text length
{$EXTERNALSYM LM20_STXTLEN}
PATHLEN = 256; // Max. path (not including drive name)
{$EXTERNALSYM PATHLEN}
LM20_PATHLEN = 256; // LM 2.0 Max. path
{$EXTERNALSYM LM20_PATHLEN}
DEVLEN = 80; // Device name length
{$EXTERNALSYM DEVLEN}
LM20_DEVLEN = 8; // LM 2.0 Device name length
{$EXTERNALSYM LM20_DEVLEN}
EVLEN = 16; // Event name length
{$EXTERNALSYM EVLEN}
//
// User, Group and Password lengths
//
UNLEN = 256; // Maximum user name length
{$EXTERNALSYM UNLEN}
LM20_UNLEN = 20; // LM 2.0 Maximum user name length
{$EXTERNALSYM LM20_UNLEN}
GNLEN = UNLEN; // Group name
{$EXTERNALSYM GNLEN}
LM20_GNLEN = LM20_UNLEN; // LM 2.0 Group name
{$EXTERNALSYM LM20_GNLEN}
PWLEN = 256; // Maximum password length
{$EXTERNALSYM PWLEN}
LM20_PWLEN = 14; // LM 2.0 Maximum password length
{$EXTERNALSYM LM20_PWLEN}
SHPWLEN = 8; // Share password length (bytes)
{$EXTERNALSYM SHPWLEN}
CLTYPE_LEN = 12; // Length of client type string
{$EXTERNALSYM CLTYPE_LEN}
MAXCOMMENTSZ = 256; // Multipurpose comment length
{$EXTERNALSYM MAXCOMMENTSZ}
LM20_MAXCOMMENTSZ = 48; // LM 2.0 Multipurpose comment length
{$EXTERNALSYM LM20_MAXCOMMENTSZ}
QNLEN = NNLEN; // Queue name maximum length
{$EXTERNALSYM QNLEN}
LM20_QNLEN = LM20_NNLEN; // LM 2.0 Queue name maximum length
{$EXTERNALSYM LM20_QNLEN}
//#if (QNLEN != NNLEN)
//# error QNLEN and NNLEN are not equal
//#endif
//
// The ALERTSZ and MAXDEVENTRIES defines have not yet been NT'ized.
// Whoever ports these components should change these values appropriately.
//
ALERTSZ = 128; // size of alert string in server
{$EXTERNALSYM ALERTSZ}
MAXDEVENTRIES = SizeOf(Integer)*8; // Max number of device entries
{$EXTERNALSYM MAXDEVENTRIES}
//
// We use int bitmap to represent
//
NETBIOS_NAME_LEN = 16; // NetBIOS net name (bytes)
{$EXTERNALSYM NETBIOS_NAME_LEN}
//
// Value to be used with APIs which have a "preferred maximum length"
// parameter. This value indicates that the API should just allocate
// "as much as it takes."
//
MAX_PREFERRED_LENGTH = DWORD(-1);
{$EXTERNALSYM MAX_PREFERRED_LENGTH}
//
// Constants used with encryption
//
CRYPT_KEY_LEN = 7;
{$EXTERNALSYM CRYPT_KEY_LEN}
CRYPT_TXT_LEN = 8;
{$EXTERNALSYM CRYPT_TXT_LEN}
ENCRYPTED_PWLEN = 16;
{$EXTERNALSYM ENCRYPTED_PWLEN}
SESSION_PWLEN = 24;
{$EXTERNALSYM SESSION_PWLEN}
SESSION_CRYPT_KLEN = 21;
{$EXTERNALSYM SESSION_CRYPT_KLEN}
//
// Value to be used with SetInfo calls to allow setting of all
// settable parameters (parmnum zero option)
//
PARMNUM_ALL = 0;
{$EXTERNALSYM PARMNUM_ALL}
PARM_ERROR_UNKNOWN = DWORD(-1);
{$EXTERNALSYM PARM_ERROR_UNKNOWN}
PARM_ERROR_NONE = 0;
{$EXTERNALSYM PARM_ERROR_NONE}
PARMNUM_BASE_INFOLEVEL = 1000;
{$EXTERNALSYM PARMNUM_BASE_INFOLEVEL}
//
// Only the UNICODE version of the LM APIs are available on NT.
// Non-UNICODE version on other platforms
//
//#if defined( _WIN32_WINNT ) || defined( WINNT ) || defined( FORCE_UNICODE )
{$IFDEF WINNT4_UP}
{$DEFINE LM_USE_UNICODE}
{$ENDIF WINNT4_UP}
{$IFDEF LM_FORCE_UNICODE}
{$DEFINE LM_USE_UNICODE}
{$ENDIF LM_FORCE_UNICODE}
{$IFDEF LM_USE_UNICODE}
type
LMSTR = LPWSTR;
{$EXTERNALSYM LMSTR}
LMCSTR = LPCWSTR;
{$EXTERNALSYM LMCSTR}
PLMSTR = ^LMSTR;
{$NODEFINE PLMSTR}
const
MESSAGE_FILENAME = WideString('NETMSG');
{$EXTERNALSYM MESSAGE_FILENAME}
OS2MSG_FILENAME = WideString('BASE');
{$EXTERNALSYM OS2MSG_FILENAME}
HELP_MSG_FILENAME = WideString('NETH');
{$EXTERNALSYM HELP_MSG_FILENAME}
// ** INTERNAL_ONLY **
// The backup message file named here is a duplicate of net.msg. It
// is not shipped with the product, but is used at buildtime to
// msgbind certain messages to netapi.dll and some of the services.
// This allows for OEMs to modify the message text in net.msg and
// have those changes show up. Only in case there is an error in
// retrieving the messages from net.msg do we then get the bound
// messages out of bak.msg (really out of the message segment).
BACKUP_MSG_FILENAME = WideString('BAK.MSG');
{$EXTERNALSYM BACKUP_MSG_FILENAME}
// ** END_INTERNAL **
{$ELSE}
type
LMSTR = LPSTR;
{$EXTERNALSYM LMSTR}
LMCSTR = LPCSTR;
{$EXTERNALSYM LMCSTR}
const
MESSAGE_FILENAME = AnsiString('NETMSG');
{$EXTERNALSYM MESSAGE_FILENAME}
OS2MSG_FILENAME = AnsiString('BASE');
{$EXTERNALSYM OS2MSG_FILENAME}
HELP_MSG_FILENAME = AnsiString('NETH');
{$EXTERNALSYM HELP_MSG_FILENAME}
// ** INTERNAL_ONLY **
// The backup message file named here is a duplicate of net.msg. It
// is not shipped with the product, but is used at buildtime to
// msgbind certain messages to netapi.dll and some of the services.
// This allows for OEMs to modify the message text in net.msg and
// have those changes show up. Only in case there is an error in
// retrieving the messages from net.msg do we then get the bound
// messages out of bak.msg (really out of the message segment).
BACKUP_MSG_FILENAME = LMSTR('BAK.MSG');
{$EXTERNALSYM BACKUP_MSG_FILENAME}
// ** END_INTERNAL **
{$ENDIF LM_USE_UNICODE}
{$UNDEF LM_USE_UNICODE}
//
// Message File Names
//
//
// Keywords used in Function Prototypes
//
type
NET_API_STATUS = DWORD;
{$EXTERNALSYM NET_API_STATUS}
TNetApiStatus = NET_API_STATUS;
//
// The platform ID indicates the levels to use for platform-specific
// information.
//
const
PLATFORM_ID_DOS = 300;
{$EXTERNALSYM PLATFORM_ID_DOS}
PLATFORM_ID_OS2 = 400;
{$EXTERNALSYM PLATFORM_ID_OS2}
PLATFORM_ID_NT = 500;
{$EXTERNALSYM PLATFORM_ID_NT}
PLATFORM_ID_OSF = 600;
{$EXTERNALSYM PLATFORM_ID_OSF}
PLATFORM_ID_VMS = 700;
{$EXTERNALSYM PLATFORM_ID_VMS}
//
// There message numbers assigned to different LANMAN components
// are as defined below.
//
// lmerr.h: 2100 - 2999 NERR_BASE
// alertmsg.h: 3000 - 3049 ALERT_BASE
// lmsvc.h: 3050 - 3099 SERVICE_BASE
// lmerrlog.h: 3100 - 3299 ERRLOG_BASE
// msgtext.h: 3300 - 3499 MTXT_BASE
// apperr.h: 3500 - 3999 APPERR_BASE
// apperrfs.h: 4000 - 4299 APPERRFS_BASE
// apperr2.h: 4300 - 5299 APPERR2_BASE
// ncberr.h: 5300 - 5499 NRCERR_BASE
// alertmsg.h: 5500 - 5599 ALERT2_BASE
// lmsvc.h: 5600 - 5699 SERVICE2_BASE
// lmerrlog.h 5700 - 5899 ERRLOG2_BASE
//
MIN_LANMAN_MESSAGE_ID = NERR_BASE;
{$EXTERNALSYM MIN_LANMAN_MESSAGE_ID}
MAX_LANMAN_MESSAGE_ID = 5899;
{$EXTERNALSYM MAX_LANMAN_MESSAGE_ID}
{$ENDIF JWA_IMPLEMENTATIONSECTION}
{$IFNDEF JWA_OMIT_SECTIONS}
implementation
//uses ...
{$ENDIF JWA_OMIT_SECTIONS}
{$IFNDEF JWA_INTERFACESECTION}
//your implementation here
{$ENDIF JWA_INTERFACESECTION}
{$IFNDEF JWA_OMIT_SECTIONS}
end.
{$ENDIF JWA_OMIT_SECTIONS}