708 lines
18 KiB
C++
708 lines
18 KiB
C++
/*****************************************************************/
|
|
/** Microsoft LAN Manager **/
|
|
/** Copyright(c) Microsoft Corp., 1991 **/
|
|
/*****************************************************************/
|
|
|
|
/*
|
|
* History:
|
|
* gregj 20-May-1991 Cloned from SERVER_ENUM
|
|
* gregj 23-May-1991 Added LOCATION support
|
|
* rustanl 18-Jul-1991 Added ( const LOCATION & ) constructors
|
|
* KeithMo 07-Oct-1991 Win32 Conversion.
|
|
* JonN 29-Jan-1992 Added resumable iterator
|
|
* JonN 13-Mar-1992 Moved NT enumerator to lmoent.hxx
|
|
* Yi-HsinS18-Sep-1992 Make USER_ENUM resumable.
|
|
*
|
|
*/
|
|
|
|
|
|
#ifndef _LMOEUSR_HXX_
|
|
#define _LMOEUSR_HXX_
|
|
|
|
#include "lmoersm.hxx"
|
|
|
|
|
|
/**********************************************************\
|
|
|
|
NAME: USER_ENUM
|
|
|
|
SYNOPSIS: User enumeration class
|
|
|
|
INTERFACE: See derived USERx_ENUM classes
|
|
|
|
PARENT: LOC_LM_ENUM
|
|
|
|
USES:
|
|
|
|
HISTORY:
|
|
gregj 20-May-1991 Cloned from SERVER_ENUM
|
|
gregj 23-May-1991 Added LOCATION support
|
|
rustanl 18-Jul-1991 Added ( const LOCATION & ) constructor
|
|
KeithMo 07-Oct-1991 Changed all USHORTs to UINTs.
|
|
|
|
\**********************************************************/
|
|
|
|
DLL_CLASS USER_ENUM : public LOC_LM_RESUME_ENUM
|
|
{
|
|
private:
|
|
NLS_STR _nlsGroupName;
|
|
ULONG _ResumeHandle;
|
|
|
|
virtual APIERR CallAPI( BOOL fRestartEnum,
|
|
BYTE ** ppbBuffer,
|
|
UINT * pcEntriesRead );
|
|
|
|
protected:
|
|
USER_ENUM ( const TCHAR * pszLocation,
|
|
UINT level,
|
|
const TCHAR * pszGroupName = NULL,
|
|
BOOL fKeepBuffers = FALSE );
|
|
|
|
USER_ENUM ( LOCATION_TYPE locType,
|
|
UINT level,
|
|
const TCHAR * pszGroupName = NULL,
|
|
BOOL fKeepBuffers = FALSE );
|
|
|
|
USER_ENUM ( const LOCATION & loc,
|
|
UINT level,
|
|
const TCHAR * pszGroupName = NULL,
|
|
BOOL fKeepBuffers = FALSE );
|
|
|
|
}; // class USER_ENUM
|
|
|
|
|
|
/**********************************************************\
|
|
|
|
NAME: USER0_ENUM
|
|
|
|
SYNOPSIS: User enumeration, level 0
|
|
|
|
INTERFACE:
|
|
USER0_ENUM() - construct with location
|
|
string or type, optional group name
|
|
|
|
PARENT: USER_ENUM
|
|
|
|
USES:
|
|
|
|
CAVEATS: This assumes that the data structures used by
|
|
NetUserEnum level 0 (user_info_0) and by
|
|
NetGroupGetUsers (group_users_info_0) are
|
|
identical. This assumption is asserted in
|
|
the class definition.
|
|
|
|
HISTORY:
|
|
gregj 20-May-1991 Cloned from SERVER1_ENUM
|
|
gregj 23-May-1991 Added LOCATION support
|
|
rustanl 18-Jul-1991 Added ( const LOCATION & ) constructor
|
|
KeithMo 07-Oct-1991 Changed all USHORTs to UINTs.
|
|
|
|
\**********************************************************/
|
|
|
|
DLL_CLASS USER0_ENUM : public USER_ENUM
|
|
{
|
|
public:
|
|
USER0_ENUM( const TCHAR * pszLocation,
|
|
const TCHAR * pszGroupName = NULL,
|
|
BOOL fKeepBuffers = FALSE );
|
|
|
|
USER0_ENUM( LOCATION_TYPE locType,
|
|
const TCHAR * pszGroupName = NULL,
|
|
BOOL fKeepBuffers = FALSE );
|
|
|
|
USER0_ENUM( const LOCATION & loc,
|
|
const TCHAR * pszGroupName = NULL,
|
|
BOOL fKeepBuffers = FALSE );
|
|
|
|
}; // class USER0_ENUM
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
NAME: USER0_ENUM_OBJ
|
|
|
|
SYNOPSIS: This is basically the return type from the USER0_ENUM_ITER
|
|
iterator.
|
|
|
|
INTERFACE: USER0_ENUM_OBJ - Class constructor.
|
|
|
|
~USER0_ENUM_OBJ - Class destructor.
|
|
|
|
QueryBufferPtr - Replaces ENUM_OBJ_BASE method.
|
|
|
|
QueryName - Returns the user name.
|
|
|
|
PARENT: ENUM_OBJ_BASE
|
|
|
|
HISTORY:
|
|
KeithMo 07-Oct-1991 Created.
|
|
|
|
**************************************************************************/
|
|
DLL_CLASS USER0_ENUM_OBJ : public ENUM_OBJ_BASE
|
|
{
|
|
public:
|
|
|
|
//
|
|
// Provide properly-casted buffer Query/Set methods.
|
|
//
|
|
|
|
DECLARE_ENUM_BUFFER_METHODS( struct user_info_0 );
|
|
|
|
//
|
|
// Accessors.
|
|
//
|
|
|
|
DECLARE_ENUM_ACCESSOR( QueryName, const TCHAR *, usri0_name );
|
|
|
|
}; // class USER0_ENUM_OBJ
|
|
|
|
|
|
DECLARE_LM_RESUME_ENUM_ITER_OF( USER0, struct user_info_0 );
|
|
|
|
|
|
/**********************************************************\
|
|
|
|
NAME: USER1_ENUM
|
|
|
|
SYNOPSIS: User enumeration, level 1
|
|
|
|
INTERFACE:
|
|
USER1_ENUM() - construct with location string
|
|
or type code
|
|
|
|
PARENT: USER_ENUM
|
|
|
|
USES:
|
|
|
|
HISTORY:
|
|
gregj 20-May-1991 Cloned from SERVER1_ENUM
|
|
gregj 23-May-1991 Added LOCATION support
|
|
rustanl 18-Jul-1991 Added ( const LOCATION & ) constructor
|
|
KeithMo 07-Oct-1991 Changed all USHORTs to UINTs.
|
|
|
|
\**********************************************************/
|
|
|
|
DLL_CLASS USER1_ENUM : public USER_ENUM
|
|
{
|
|
public:
|
|
USER1_ENUM( const TCHAR * pszLocation,
|
|
BOOL fKeepBuffers = FALSE );
|
|
|
|
USER1_ENUM( LOCATION_TYPE locType,
|
|
BOOL fKeepBuffers = FALSE );
|
|
|
|
USER1_ENUM( const LOCATION & loc,
|
|
BOOL fKeepBuffers = FALSE );
|
|
|
|
}; // class USER1_ENUM
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
NAME: USER1_ENUM_OBJ
|
|
|
|
SYNOPSIS: This is basically the return type from the USER1_ENUM_ITER
|
|
iterator.
|
|
|
|
INTERFACE: USER1_ENUM_OBJ - Class constructor.
|
|
|
|
~USER1_ENUM_OBJ - Class destructor.
|
|
|
|
QueryBufferPtr - Replaces ENUM_OBJ_BASE method.
|
|
|
|
QueryName - Returns the user name.
|
|
|
|
QueryPasswordAge - Returns the password age.
|
|
|
|
QueryPriv - Returns privilege information.
|
|
|
|
QueryHomeDir - Returns the user's home directory.
|
|
|
|
QueryComment - Returns the comment.
|
|
|
|
QueryFlags - Returns the user flags.
|
|
|
|
QueryScriptPath - Returns the user's script path.
|
|
|
|
PARENT: ENUM_OBJ_BASE
|
|
|
|
HISTORY:
|
|
KeithMo 07-Oct-1991 Created.
|
|
|
|
**************************************************************************/
|
|
DLL_CLASS USER1_ENUM_OBJ : public ENUM_OBJ_BASE
|
|
{
|
|
public:
|
|
|
|
//
|
|
// Provide properly-casted buffer Query/Set methods.
|
|
//
|
|
|
|
DECLARE_ENUM_BUFFER_METHODS( struct user_info_1 );
|
|
|
|
//
|
|
// Accessors.
|
|
//
|
|
|
|
DECLARE_ENUM_ACCESSOR( QueryName, const TCHAR *, usri1_name);
|
|
DECLARE_ENUM_ACCESSOR( QueryPasswordAge, ULONG, usri1_password_age);
|
|
DECLARE_ENUM_ACCESSOR( QueryPriv, UINT, usri1_priv);
|
|
DECLARE_ENUM_ACCESSOR( QueryHomeDir, const TCHAR *, usri1_home_dir);
|
|
DECLARE_ENUM_ACCESSOR( QueryComment, const TCHAR *, usri1_comment);
|
|
DECLARE_ENUM_ACCESSOR( QueryFlags, UINT, usri1_flags);
|
|
DECLARE_ENUM_ACCESSOR( QueryScriptPath, const TCHAR *, usri1_script_path);
|
|
|
|
}; // class USER1_ENUM_OBJ
|
|
|
|
|
|
DECLARE_LM_RESUME_ENUM_ITER_OF( USER1, struct user_info_1 );
|
|
|
|
|
|
/**********************************************************\
|
|
|
|
NAME: USER2_ENUM
|
|
|
|
SYNOPSIS: User enumeration, level 2
|
|
|
|
INTERFACE:
|
|
USER2_ENUM() - construct with location string
|
|
or type code
|
|
|
|
PARENT: USER_ENUM
|
|
|
|
USES:
|
|
|
|
HISTORY:
|
|
gregj 20-May-1991 Cloned from SERVER1_ENUM
|
|
gregj 23-May-1991 Added LOCATION support
|
|
rustanl 18-Jul-1991 Added ( const LOCATION & ) constructor
|
|
KeithMo 07-Oct-1991 Changed all USHORTs to UINTs.
|
|
|
|
\**********************************************************/
|
|
|
|
DLL_CLASS USER2_ENUM : public USER_ENUM
|
|
{
|
|
public:
|
|
USER2_ENUM( const TCHAR * pszLocation,
|
|
BOOL fKeepBuffers = FALSE );
|
|
|
|
USER2_ENUM( LOCATION_TYPE locType,
|
|
BOOL fKeepBuffers = FALSE );
|
|
|
|
USER2_ENUM( const LOCATION & loc,
|
|
BOOL fKeepBuffers = FALSE );
|
|
|
|
}; // class USER2_ENUM
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
NAME: USER2_ENUM_OBJ
|
|
|
|
SYNOPSIS: This is basically the return type from the USER2_ENUM_ITER
|
|
iterator.
|
|
|
|
INTERFACE: USER2_ENUM_OBJ - Class constructor.
|
|
|
|
~USER2_ENUM_OBJ - Class destructor.
|
|
|
|
QueryBufferPtr - Replaces ENUM_OBJ_BASE method.
|
|
|
|
QueryName - Returns the user name.
|
|
|
|
QueryPasswordAge - Returns the password age.
|
|
|
|
QueryPriv - Returns privilege information.
|
|
|
|
QueryHomeDir - Returns the user's home directory.
|
|
|
|
QueryComment - Returns the comment.
|
|
|
|
QueryFlags - Returns the user flags.
|
|
|
|
QueryScriptPath - Returns the user's script path.
|
|
|
|
QueryAuthFlags - Returns the authorization flags.
|
|
|
|
QueryFullName - Returns the user's full name.
|
|
|
|
QueryUserComment - Returns the user comment.
|
|
|
|
QueryParms - Returns the application parameters.
|
|
|
|
QueryWorkstations - Returns the names of the workstations
|
|
that the user can log into.
|
|
|
|
QueryLastLogon - Returns the time of last logon.
|
|
|
|
QueryLastLogoff - Returns the time of last logoff.
|
|
|
|
QueryAccountExpires - Returns the account expiration date.
|
|
|
|
QueryMaxStorage - Returns the user's disk space quota.
|
|
|
|
QueryUnitsPerWeek - ?
|
|
|
|
QueryLogonHours - Returns the allowed logon hours.
|
|
|
|
QueryBadPWCount - Returns the number of attempts to
|
|
log into this account with a bad
|
|
password.
|
|
|
|
QueryNumLogons - Returns the number of successful
|
|
logon attempts for this account.
|
|
|
|
QueryLogonServer - Returns the logon server.
|
|
|
|
QueryCountryCode - Returns the country code for this
|
|
user.
|
|
|
|
QueryCodePage - Returns the code page for this user.
|
|
|
|
|
|
PARENT: ENUM_OBJ_BASE
|
|
|
|
HISTORY:
|
|
KeithMo 07-Oct-1991 Created.
|
|
|
|
**************************************************************************/
|
|
DLL_CLASS USER2_ENUM_OBJ : public ENUM_OBJ_BASE
|
|
{
|
|
public:
|
|
|
|
//
|
|
// Provide properly-casted buffer Query/Set methods.
|
|
//
|
|
|
|
DECLARE_ENUM_BUFFER_METHODS( struct user_info_2 );
|
|
|
|
//
|
|
// Accessors.
|
|
//
|
|
|
|
DECLARE_ENUM_ACCESSOR( QueryName, const TCHAR *, usri2_name );
|
|
DECLARE_ENUM_ACCESSOR( QueryPasswordAge, ULONG, usri2_password_age );
|
|
DECLARE_ENUM_ACCESSOR( QueryPriv, UINT, usri2_priv );
|
|
DECLARE_ENUM_ACCESSOR( QueryHomeDir, const TCHAR *, usri2_home_dir );
|
|
DECLARE_ENUM_ACCESSOR( QueryComment, const TCHAR *, usri2_comment );
|
|
DECLARE_ENUM_ACCESSOR( QueryFlags, UINT, usri2_flags );
|
|
DECLARE_ENUM_ACCESSOR( QueryScriptPath, const TCHAR *, usri2_script_path );
|
|
DECLARE_ENUM_ACCESSOR( QueryAuthFlags, ULONG, usri2_auth_flags );
|
|
DECLARE_ENUM_ACCESSOR( QueryFullName, const TCHAR *, usri2_full_name );
|
|
DECLARE_ENUM_ACCESSOR( QueryUserComment, const TCHAR *, usri2_usr_comment );
|
|
DECLARE_ENUM_ACCESSOR( QueryParms, const TCHAR *, usri2_parms );
|
|
DECLARE_ENUM_ACCESSOR( QueryWorkstations,const TCHAR *, usri2_workstations );
|
|
DECLARE_ENUM_ACCESSOR( QueryLastLogon, LONG, usri2_last_logon );
|
|
DECLARE_ENUM_ACCESSOR( QueryLastLogoff, LONG, usri2_last_logoff );
|
|
DECLARE_ENUM_ACCESSOR( QueryAccountExpires,LONG, usri2_acct_expires );
|
|
DECLARE_ENUM_ACCESSOR( QueryMaxStorage, ULONG, usri2_max_storage );
|
|
DECLARE_ENUM_ACCESSOR( QueryUnitsPerWeek,UINT, usri2_units_per_week );
|
|
DECLARE_ENUM_ACCESSOR( QueryBadPWCount, UINT, usri2_bad_pw_count );
|
|
DECLARE_ENUM_ACCESSOR( QueryNumLogons, UINT, usri2_num_logons );
|
|
DECLARE_ENUM_ACCESSOR( QueryLogonServer, const TCHAR *, usri2_logon_server );
|
|
DECLARE_ENUM_ACCESSOR( QueryCountryCode, UINT, usri2_country_code );
|
|
DECLARE_ENUM_ACCESSOR( QueryCodePage, UINT, usri2_code_page );
|
|
|
|
}; // class USER2_ENUM_OBJ
|
|
|
|
|
|
DECLARE_LM_RESUME_ENUM_ITER_OF( USER2, struct user_info_2 );
|
|
|
|
|
|
/**********************************************************\
|
|
|
|
NAME: USER10_ENUM
|
|
|
|
SYNOPSIS: User enumeration, level 10
|
|
|
|
INTERFACE:
|
|
USER10_ENUM() - construct with location string
|
|
or type code
|
|
|
|
PARENT: USER_ENUM
|
|
|
|
USES:
|
|
|
|
HISTORY:
|
|
gregj 20-May-1991 Cloned from SERVER1_ENUM
|
|
gregj 23-May-1991 Added LOCATION support
|
|
rustanl 18-Jul-1991 Added ( const LOCATION & ) constructor
|
|
KeithMo 07-Oct-1991 Changed all USHORTs to UINTs.
|
|
|
|
\**********************************************************/
|
|
|
|
DLL_CLASS USER10_ENUM : public USER_ENUM
|
|
{
|
|
public:
|
|
USER10_ENUM( const TCHAR * pszLocation,
|
|
BOOL fKeepBuffers = FALSE );
|
|
|
|
USER10_ENUM( LOCATION_TYPE locType,
|
|
BOOL fKeepBuffers = FALSE );
|
|
|
|
USER10_ENUM( const LOCATION & loc,
|
|
BOOL fKeepBuffers = FALSE );
|
|
|
|
}; // class USER10_ENUM
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
NAME: USER10_ENUM_OBJ
|
|
|
|
SYNOPSIS: This is basically the return type from the USER10_ENUM_ITER
|
|
iterator.
|
|
|
|
INTERFACE: USER10_ENUM_OBJ - Class constructor.
|
|
|
|
~USER10_ENUM_OBJ - Class destructor.
|
|
|
|
QueryBufferPtr - Replaces ENUM_OBJ_BASE method.
|
|
|
|
QueryName - Returns the user name.
|
|
|
|
QueryComment - Returns the comment.
|
|
|
|
QueryUserComment - Returns the user comment.
|
|
|
|
QueryFullName - Returns the user's full name.
|
|
|
|
PARENT: ENUM_OBJ_BASE
|
|
|
|
HISTORY:
|
|
KeithMo 07-Oct-1991 Created.
|
|
|
|
**************************************************************************/
|
|
DLL_CLASS USER10_ENUM_OBJ : public ENUM_OBJ_BASE
|
|
{
|
|
public:
|
|
|
|
//
|
|
// Provide properly-casted buffer Query/Set methods.
|
|
//
|
|
|
|
DECLARE_ENUM_BUFFER_METHODS( struct user_info_10 );
|
|
|
|
//
|
|
// Accessors.
|
|
//
|
|
|
|
DECLARE_ENUM_ACCESSOR( QueryName, const TCHAR *, usri10_name);
|
|
DECLARE_ENUM_ACCESSOR( QueryComment, const TCHAR *, usri10_comment);
|
|
DECLARE_ENUM_ACCESSOR( QueryUserComment, const TCHAR *, usri10_usr_comment);
|
|
DECLARE_ENUM_ACCESSOR( QueryFullName, const TCHAR *, usri10_full_name);
|
|
|
|
}; // class USER10_ENUM_OBJ
|
|
|
|
|
|
DECLARE_LM_RESUME_ENUM_ITER_OF( USER10, struct user_info_10 );
|
|
|
|
|
|
/************************ GROUPS ************************/
|
|
|
|
/**********************************************************\
|
|
|
|
NAME: GROUP_ENUM
|
|
|
|
SYNOPSIS: Group enumeration class
|
|
|
|
INTERFACE: See derived GROUPx_ENUM classes
|
|
|
|
PARENT: LOC_LM_ENUM
|
|
|
|
HISTORY:
|
|
gregj 21-May-1991 Cloned from USER_ENUM
|
|
gregj 23-May-1991 Added LOCATION support
|
|
rustanl 18-Jul-1991 Added ( const LOCATION & ) constructor
|
|
KeithMo 07-Oct-1991 Changed all USHORTs to UINTs.
|
|
|
|
\**********************************************************/
|
|
|
|
DLL_CLASS GROUP_ENUM : public LOC_LM_ENUM
|
|
{
|
|
private:
|
|
const TCHAR * _pszUserName;
|
|
|
|
virtual APIERR CallAPI( BYTE ** ppbBuffer,
|
|
UINT * pcEntriesRead );
|
|
|
|
protected:
|
|
GROUP_ENUM ( const TCHAR * pszLocation,
|
|
UINT level,
|
|
const TCHAR * pszUserName = NULL );
|
|
|
|
GROUP_ENUM ( LOCATION_TYPE locType,
|
|
UINT level,
|
|
const TCHAR * pszUserName = NULL );
|
|
|
|
GROUP_ENUM ( const LOCATION & loc,
|
|
UINT level,
|
|
const TCHAR * pszUserName = NULL );
|
|
|
|
}; // class GROUP_ENUM
|
|
|
|
|
|
/**********************************************************\
|
|
|
|
NAME: GROUP0_ENUM
|
|
|
|
SYNOPSIS: Group enumeration, level 0
|
|
|
|
INTERFACE:
|
|
GROUP0_ENUM() - construct with location string
|
|
or type code, optional user name
|
|
|
|
PARENT: GROUP_ENUM
|
|
|
|
HISTORY:
|
|
gregj 21-May-1991 Cloned from USER1_ENUM
|
|
gregj 23-May-1991 Added LOCATION support
|
|
rustanl 18-Jul-1991 Added ( const LOCATION & ) constructor
|
|
KeithMo 07-Oct-1991 Changed all USHORTs to UINTs.
|
|
|
|
\**********************************************************/
|
|
|
|
DLL_CLASS GROUP0_ENUM : public GROUP_ENUM
|
|
{
|
|
public:
|
|
GROUP0_ENUM( const TCHAR * pszLocation,
|
|
const TCHAR * pszUserName = NULL );
|
|
|
|
GROUP0_ENUM( LOCATION_TYPE locType,
|
|
const TCHAR * pszUserName = NULL );
|
|
|
|
GROUP0_ENUM( const LOCATION & loc,
|
|
const TCHAR * pszUserName = NULL );
|
|
|
|
}; // class GROUP0_ENUM
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
NAME: GROUP0_ENUM_OBJ
|
|
|
|
SYNOPSIS: This is basically the return type from the GROUP0_ENUM_ITER
|
|
iterator.
|
|
|
|
INTERFACE: GROUP0_ENUM_OBJ - Class constructor.
|
|
|
|
~GROUP0_ENUM_OBJ - Class destructor.
|
|
|
|
QueryBufferPtr - Replaces ENUM_OBJ_BASE method.
|
|
|
|
QueryName - Returns the group name.
|
|
|
|
PARENT: ENUM_OBJ_BASE
|
|
|
|
HISTORY:
|
|
KeithMo 07-Oct-1991 Created.
|
|
|
|
**************************************************************************/
|
|
DLL_CLASS GROUP0_ENUM_OBJ : public ENUM_OBJ_BASE
|
|
{
|
|
public:
|
|
|
|
//
|
|
// Provide properly-casted buffer Query/Set methods.
|
|
//
|
|
|
|
const struct group_info_0 * QueryBufferPtr( VOID ) const
|
|
{ return (const struct group_info_0 *)ENUM_OBJ_BASE::QueryBufferPtr(); }
|
|
|
|
VOID SetBufferPtr( const struct group_info_0 * pBuffer );
|
|
|
|
//
|
|
// Accessors.
|
|
//
|
|
|
|
DECLARE_ENUM_ACCESSOR( QueryName, const TCHAR *, grpi0_name );
|
|
|
|
}; // class GROUP0_ENUM_OBJ
|
|
|
|
|
|
DECLARE_LM_ENUM_ITER_OF( GROUP0, struct group_info_0 );
|
|
|
|
|
|
/**********************************************************\
|
|
|
|
NAME: GROUP1_ENUM
|
|
|
|
SYNOPSIS: Group enumeration, level 1
|
|
|
|
INTERFACE:
|
|
GROUP1_ENUM() - construct with location string
|
|
or type code
|
|
|
|
PARENT: GROUP_ENUM
|
|
|
|
HISTORY:
|
|
gregj 21-May-1991 Cloned from USER1_ENUM
|
|
gregj 23-May-1991 Added LOCATION support
|
|
rustanl 18-Jul-1991 Added ( const LOCATION & ) constructor
|
|
KeithMo 07-Oct-1991 Changed all USHORTs to UINTs.
|
|
|
|
\**********************************************************/
|
|
|
|
DLL_CLASS GROUP1_ENUM : public GROUP_ENUM
|
|
{
|
|
public:
|
|
GROUP1_ENUM( const TCHAR * pszLocation );
|
|
|
|
GROUP1_ENUM( LOCATION_TYPE locType );
|
|
|
|
GROUP1_ENUM( const LOCATION & loc );
|
|
|
|
}; // class GROUP1_ENUM
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
NAME: GROUP1_ENUM_OBJ
|
|
|
|
SYNOPSIS: This is basically the return type from the GROUP1_ENUM_ITER
|
|
iterator.
|
|
|
|
INTERFACE: GROUP1_ENUM_OBJ - Class constructor.
|
|
|
|
~GROUP1_ENUM_OBJ - Class destructor.
|
|
|
|
QueryBufferPtr - Replaces ENUM_OBJ_BASE method.
|
|
|
|
QueryName - Returns the group name.
|
|
|
|
QueryComment - Returns the group comment.
|
|
|
|
PARENT: ENUM_OBJ_BASE
|
|
|
|
HISTORY:
|
|
KeithMo 07-Oct-1991 Created.
|
|
|
|
**************************************************************************/
|
|
DLL_CLASS GROUP1_ENUM_OBJ : public ENUM_OBJ_BASE
|
|
{
|
|
public:
|
|
|
|
//
|
|
// Provide properly-casted buffer Query/Set methods.
|
|
//
|
|
|
|
const struct group_info_1 * QueryBufferPtr( VOID ) const
|
|
{ return (const struct group_info_1 *)ENUM_OBJ_BASE::QueryBufferPtr(); }
|
|
|
|
VOID SetBufferPtr( const struct group_info_1 * pBuffer );
|
|
|
|
//
|
|
// Accessors.
|
|
//
|
|
|
|
DECLARE_ENUM_ACCESSOR( QueryName, const TCHAR *, grpi1_name );
|
|
DECLARE_ENUM_ACCESSOR( QueryComment, const TCHAR *, grpi1_comment );
|
|
|
|
}; // class GROUP1_ENUM_OBJ
|
|
|
|
|
|
DECLARE_LM_ENUM_ITER_OF( GROUP1, struct group_info_1 );
|
|
|
|
|
|
#endif // _LMOEUSR_HXX_
|