windows-nt/Source/XPSP1/NT/admin/netui/common/h/lmogroup.hxx
2020-09-26 16:20:57 +08:00

199 lines
4.5 KiB
C++

/**********************************************************************/
/** Microsoft LAN Manager **/
/** Copyright(c) Microsoft Corp., 1990 **/
/**********************************************************************/
/*
* History
* o-SimoP 08-Apr-91 Cloned from lmouser.hxx
* o-SimoP 20-Apr-91 CR changes, attended by ChuckC,
* ErichCh, RustanL, JonN and me
* terryk 07-Oct-91 type changes for NT
* jonn 08-Oct-91 Added GROUP_0 and GROUP_1
*/
#ifndef _LMOGROUP_HXX_
#define _LMOGROUP_HXX_
#include "lmobj.hxx"
/*
NT BUGBUG: The following definition of MAX_GROUP_INFO_SIZE_1
is not safe for NT. It should be moved to a global header file.
*/
#define MAX_GROUP_INFO_SIZE_1 (sizeof(struct group_info_1) + (MAXCOMMENTSZ+1))
/*************************************************************************
NAME: GROUP
SYNOPSIS: Superclass for manipulation of groups
INTERFACE: GROUP(), constructor
~GROUP(), destructor
QueryName(), returns pointer to the group name
that was passed in to constructor or
set by SetName if the name was correct.
Otherwise returns previous name.
SetName(), sets group name, returns error code
which is NERR_Success on success.
I_Delete(), deletes a group.
PARENT: LOC_LM_OBJ
HISTORY:
o-SimoP 08-Apr-91 Cloned from lmouser.hxx
**************************************************************************/
DLL_CLASS GROUP : public LOC_LM_OBJ
{
private:
NLS_STR _nlsGroup;
VOID CtAux( const TCHAR * pszGroup );
protected:
virtual APIERR I_Delete( UINT uiForce );
APIERR W_CloneFrom( const GROUP & group );
public:
GROUP(const TCHAR *pszGroup, const TCHAR *pszLocation = NULL);
GROUP(const TCHAR *pszGroup, enum LOCATION_TYPE loctype);
GROUP(const TCHAR *pszGroup, const LOCATION & loc);
~GROUP();
const TCHAR *QueryName() const;
APIERR SetName( const TCHAR *pszGroup );
};
/*************************************************************************
NAME: GROUP_0
SYNOPSIS: NetGroupGet/SetGroup[0] (dummy class)
INTERFACE: GROUP_0() constructor
~GROUP_0() destructor
PARENT: GROUP
HISTORY:
jonn 08-Oct-91 Created
**************************************************************************/
DLL_CLASS GROUP_0 : public GROUP
{
public:
GROUP_0(const TCHAR *pszGroup, const TCHAR *pszLocation = NULL)
: GROUP( pszGroup, pszLocation )
{}
GROUP_0(const TCHAR *pszGroup, enum LOCATION_TYPE loctype)
: GROUP( pszGroup, loctype )
{}
GROUP_0(const TCHAR *pszGroup, const LOCATION & loc)
: GROUP( pszGroup, loc )
{}
~GROUP_0() {}
};
/*************************************************************************
NAME: GROUP_1
SYNOPSIS: NetGroupGet/SetGroup[1]
INTERFACE: GROUP_1() constructor
~GROUP_1() destructor
I_GetInfo
Reads in the current state of the object
I_WriteInfo
Writes the current state of the object to the
API. This write is atomic, either all
parameters are set or none are set.
I_CreateNew
Sets up the GROUP_1 object with default values in
preparation for a call to WriteNew
I_WriteNew
Adds a new group
CloneFrom
Makes this GROUP_1 instance an exact copy of the
parameter GROUP_1 instance. All fields including
name and state will be copied. If this operation
fails, the object will be invalid. The parameter
must be a GROUP_1 and not a subclass of GROUP_1.
QueryComment()
SetComment()
PARENT: GROUP_0
HISTORY:
jonn 08-Oct-91 Created
**************************************************************************/
DLL_CLASS GROUP_1 : public GROUP_0
{
private:
NLS_STR _nlsComment;
VOID CtAux();
APIERR W_Write(); // helper for I_WriteInfo and I_WriteNew
protected:
virtual APIERR I_GetInfo();
virtual APIERR I_WriteInfo();
virtual APIERR I_CreateNew();
virtual APIERR I_WriteNew();
virtual APIERR I_ChangeToNew();
virtual APIERR W_CreateNew();
APIERR W_CloneFrom( const GROUP_1 & group1 );
public:
GROUP_1(const TCHAR *pszGroup, const TCHAR *pszLocation = NULL);
GROUP_1(const TCHAR *pszGroup, enum LOCATION_TYPE loctype);
GROUP_1(const TCHAR *pszGroup, const LOCATION & loc);
~GROUP_1();
APIERR CloneFrom( const GROUP_1 & group1 );
inline const TCHAR * QueryComment() const
{ CHECK_OK(NULL); return _nlsComment.QueryPch(); }
APIERR SetComment( const TCHAR * pszComment );
};
#endif // _LMOGROUP_HXX_