windows-nt/Source/XPSP1/NT/admin/netui/common/h/lmoesrv.hxx

288 lines
7.2 KiB
C++
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
/*****************************************************************/
/** Microsoft LAN Manager **/
/** Copyright(c) Microsoft Corp., 1991 **/
/*****************************************************************/
/*
* History:
* RustanL 03-Jan-1991 Created
* RustanL 10-Jan-1991 Added SERVER1 subclass and iterator
* KeithMo 07-Oct-1991 Win32 Conversion.
* terryk 17-Oct-1991 some fields are not supported by WIN32
* KeithMo 21-Oct-1991 They are now.
* AnirudhS 07-Mar-1996 Added CONTEXT_ENUM (moved from lmoectx.hxx)
*
*/
#ifndef _LMOESRV_HXX_
#define _LMOESRV_HXX_
#include "lmoenum.hxx"
#include "string.hxx"
/*************************************************************************
NAME: SERVER_ENUM
SYNOPSIS: Base class for server enumerations.
INTERFACE: SERVER_ENUM - Class constructor.
~SERVER_ENUM - Class destructor.
CallAPI - Invoke the enumeration API.
PARENT: LOC_LM_ENUM
USES: NLS_STR
HISTORY:
RustanL 03-Jan-1991 Created
RustanL 10-Jan-1991 Added SERVER1 subclass and iterator
KeithMo 07-Oct-1991 Changed all USHORTs to UINTs, fixed
comment block, keep the domain name
in an NLS_STR.
**************************************************************************/
DLL_CLASS SERVER_ENUM : public LOC_LM_ENUM
{
private:
NLS_STR _nlsDomain;
ULONG _flServerType;
virtual APIERR CallAPI( BYTE ** ppbBuffer,
UINT * pcEntriesRead );
protected:
SERVER_ENUM( const TCHAR * pszServer,
UINT level,
const TCHAR * pszDomain,
ULONG flServerType );
}; // class SERVER_ENUM
/*************************************************************************
NAME: SERVER1_ENUM
SYNOPSIS: Info level 1 server enumeration class.
INTERFACE: SERVER1_ENUM - Class constructor.
~SERVER1_ENUM - Class destructor.
PARENT: SERVER_ENUM
HISTORY:
RustanL 03-Jan-1991 Created
RustanL 10-Jan-1991 Added SERVER1 subclass and iterator
KeithMo 07-Oct-1991 Changed all USHORTs to UINTs, fixed
comment block.
**************************************************************************/
DLL_CLASS SERVER1_ENUM : public SERVER_ENUM
{
public:
SERVER1_ENUM( const TCHAR * pszServer,
const TCHAR * pszDomain,
ULONG flServerType = SV_TYPE_ALL );
}; // class SERVER1_ENUM
/*************************************************************************
NAME: SERVER1_ENUM_OBJ
SYNOPSIS: This is basically the return type from the SERVER1_ENUM_ITER
iterator.
INTERFACE: SERVER1_ENUM_OBJ - Class constructor.
~SERVER1_ENUM_OBJ - Class destructor.
QueryBufferPtr - Replaces ENUM_OBJ_BASE method.
QueryName - Returns the server name.
QueryComment - Returns the server comment.
QueryMajorVer - Returns the LanMan major version.
QueryMinorVer - Returns the LanMan minor version.
QueryServerType - Returns the server type.
PARENT: ENUM_OBJ_BASE
HISTORY:
KeithMo 07-Oct-1991 Created.
KeithMo 21-Oct-1991 Added WIN32 support.
**************************************************************************/
DLL_CLASS SERVER1_ENUM_OBJ : public ENUM_OBJ_BASE
{
public:
//
// Provide properly-casted buffer Query/Set methods.
//
#ifdef WIN32
const SERVER_INFO_101 * QueryBufferPtr( VOID ) const
{ return (const SERVER_INFO_101 *)ENUM_OBJ_BASE::QueryBufferPtr(); }
VOID SetBufferPtr( const SERVER_INFO_101 * pBuffer );
#else // !WIN32
const struct server_info_1 * QueryBufferPtr( VOID ) const
{ return (const struct server_info_1 *)ENUM_OBJ_BASE::QueryBufferPtr(); }
VOID SetBufferPtr( const struct server_info_1 * pBuffer );
#endif // WIN32
//
// Accessors.
//
#ifdef WIN32
DECLARE_ENUM_ACCESSOR( QueryName, const TCHAR *, sv101_name );
DECLARE_ENUM_ACCESSOR( QueryComment, const TCHAR *, sv101_comment );
DECLARE_ENUM_ACCESSOR( QueryMajorVer, UINT, sv101_version_major );
DECLARE_ENUM_ACCESSOR( QueryMinorVer, UINT, sv101_version_minor );
DECLARE_ENUM_ACCESSOR( QueryServerType, ULONG, sv101_type );
#else // !WIN32
DECLARE_ENUM_ACCESSOR( QueryName, const TCHAR *, sv1_name );
DECLARE_ENUM_ACCESSOR( QueryComment, const TCHAR *, sv1_comment );
DECLARE_ENUM_ACCESSOR( QueryMajorVer, UINT, sv1_version_major );
DECLARE_ENUM_ACCESSOR( QueryMinorVer, UINT, sv1_version_minor );
DECLARE_ENUM_ACCESSOR( QueryServerType, ULONG, sv1_type );
#endif // WIN32
}; // class SERVER1_ENUM_OBJ
#ifdef WIN32
DECLARE_LM_ENUM_ITER_OF( SERVER1, SERVER_INFO_101 );
#else // !WIN32
DECLARE_LM_ENUM_ITER_OF( SERVER1, struct server_info_1 );
#endif // WIN32
/*************************************************************************
NAME: CONTEXT_ENUM
SYNOPSIS: Info level 1 context (server) enumeration class.
BUGBUG Ideally, this should be derived from SERVER1_ENUM, but
that class must first allow overriding the CallAPI method.
INTERFACE: CONTEXT_ENUM - Class constructor.
~CONTEXT_ENUM - Class destructor.
CallAPI - Invoke the enumeration API.
PARENT: LOC_LM_ENUM
USES: NLS_STR
HISTORY:
AnirudhS 21-Mar-1995 Created from SERVER1_ENUM and
SERVER_ENUM classes
**************************************************************************/
DLL_CLASS CONTEXT_ENUM : public LOC_LM_ENUM
{
protected:
ULONG _flServerType;
virtual APIERR CallAPI( BYTE ** ppbBuffer,
UINT * pcEntriesRead );
public:
CONTEXT_ENUM( ULONG flServerType );
}; // class CONTEXT_ENUM
/*************************************************************************
NAME: CONTEXT_ENUM_OBJ
SYNOPSIS: This is basically the return type from the CONTEXT_ENUM_ITER
iterator.
INTERFACE: CONTEXT_ENUM_OBJ - Class constructor.
~CONTEXT_ENUM_OBJ - Class destructor.
QueryBufferPtr - Replaces ENUM_OBJ_BASE method.
QueryName - Returns the server name.
QueryComment - Returns the server comment.
QueryMajorVer - Returns the LanMan major version.
QueryMinorVer - Returns the LanMan minor version.
QueryServerType - Returns the server type.
PARENT: ENUM_OBJ_BASE
HISTORY:
AnirudhS 21-Mar-1995 Created from SERVER1_ENUM_OBJ
**************************************************************************/
DLL_CLASS CONTEXT_ENUM_OBJ : public ENUM_OBJ_BASE
{
public:
//
// Provide properly-casted buffer Query/Set methods.
//
const SERVER_INFO_101 * QueryBufferPtr( VOID ) const
{ return (const SERVER_INFO_101 *)ENUM_OBJ_BASE::QueryBufferPtr(); }
VOID SetBufferPtr( const SERVER_INFO_101 * pBuffer );
//
// Accessors.
//
DECLARE_ENUM_ACCESSOR( QueryName, const TCHAR *, sv101_name );
DECLARE_ENUM_ACCESSOR( QueryComment, const TCHAR *, sv101_comment );
DECLARE_ENUM_ACCESSOR( QueryMajorVer, UINT, sv101_version_major );
DECLARE_ENUM_ACCESSOR( QueryMinorVer, UINT, sv101_version_minor );
DECLARE_ENUM_ACCESSOR( QueryServerType, ULONG, sv101_type );
}; // class CONTEXT_ENUM_OBJ
DECLARE_LM_ENUM_ITER_OF( CONTEXT, SERVER_INFO_101 );
#endif // _LMOESRV_HXX_