mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
194 lines
6.3 KiB
194 lines
6.3 KiB
|
|
|
|
LAN Manager User Interface
|
|
Design Overview
|
|
Server Manager Property Sheet
|
|
Keith Moore (KeithMo)
|
|
Revision 0.1 21-Jun-1991
|
|
|
|
|
|
|
|
1. SCOPE
|
|
|
|
This document provides a general design overview of the Server Manager
|
|
Property Sheet implementation. It describes the class declarations,
|
|
the flow of information, and the general algorithms used.
|
|
|
|
|
|
2. REFERENCES
|
|
|
|
LAN Manager 3.0 Server Manager Functional Specification
|
|
|
|
LAN Manager Server Manager Subproperty Sheet CDD
|
|
|
|
BLT Specification
|
|
|
|
|
|
3. OVERVIEW
|
|
|
|
The Server Manager Main Property Sheet (PS) is the central focus for
|
|
the administration of server properties. The PS allows the user to
|
|
change the server comment on the target server. In addition, the PS
|
|
is the launching point for a number of Subproperty Sheets (SPS). See
|
|
the Server Manager Subproperty Sheet CDD for details.
|
|
|
|
|
|
4. CLASS OVERVIEW
|
|
|
|
The SERVER_PROPERTIES class implements the PS dialog. It contains code
|
|
for reading & writing the target server comment. It displays a number
|
|
of current usage statistics. It also contains a button-bar for
|
|
launching the subproperty sheets.
|
|
|
|
SERVER_PROPERTIES is contained in a wrapper class, PROPERTY_SHEET.
|
|
The PROPERTY_SHEET class is responsible for validating that the user
|
|
has sufficient privilege to administer the target server. Only if the
|
|
user has sufficient privilege will the SERVER_PROPERTIES dialog be
|
|
invoked.
|
|
|
|
|
|
5. CLASS DETAILS
|
|
|
|
This section details the interfaces to the above described classes.
|
|
Note that only the public: and protected: sections of the class
|
|
declarations are given.
|
|
|
|
5.1 SERVER_PROPERTIES
|
|
|
|
The SERVER_PROPERTIES class is declared as follows:
|
|
|
|
class SERVER_PROPERTIES : public DIALOG_WINDOW
|
|
{
|
|
protected:
|
|
BOOL OnCommand( CID cid, ULONG lParam );
|
|
|
|
BOOL OnOK( VOID );
|
|
|
|
public:
|
|
SERVER_PROPERTIES( HWND hWndOwner,
|
|
SERVER_2 * psrv2 );
|
|
|
|
~SERVER_PROPERTIES();
|
|
|
|
}; // class SERVER_PROPERTIES
|
|
|
|
Note: There are current plans to subclass DIALOG_WINDOW
|
|
(or VALIDATED_WINDOW) into PROPERTY_WINDOW and
|
|
SUBPROPERTY_WINDOW. SERVER_PROPERTIES will inherit from
|
|
PROPERTY_WINDOW when this class becomes available.
|
|
|
|
The OnCommand() method is responsible for handling all action
|
|
items from the Graphical Button Bar.
|
|
|
|
OnOK() is responsible for updating all information at the server,
|
|
including the dreaded domain role transitions.
|
|
|
|
Note: There will be a Refresh() method provided when
|
|
the design for dialog refresh is stable.
|
|
|
|
|
|
5.2 PROPERTY_SHEET
|
|
|
|
The PROPERTY_SHEET class is declared as follows:
|
|
|
|
class PROPERTY_SHEET
|
|
{
|
|
public:
|
|
PROPERTY_SHEET( HWND hWndOwner,
|
|
SERVER_2 * psrv2 );
|
|
|
|
~PROPERTY_SHEET();
|
|
|
|
}; // class PROPERTY_SHEET
|
|
|
|
PROPERTY_SHEET is just a wrapper for the SERVER_PROPERTIES class.
|
|
|
|
|
|
6. OPERATION
|
|
|
|
After the user indicates that a property sheet should be invoked, the
|
|
following steps are performed:
|
|
|
|
The Server Manager Main Window (SrvMain) constructs a SERVER_2
|
|
using the name of the selected server. Note that this object
|
|
is simply constructed. None of this objects methods (including
|
|
GetInfo()) are invoked by SrvMain.
|
|
|
|
SrvMain creates a PROPERTY_SHEET object, passing to the
|
|
constructor an HWND window handle to the main window and a
|
|
pointer to the newly created SERVER_2 object.
|
|
|
|
The PROPERTY_SHEET class performs the following operations:
|
|
|
|
Invoking the SERVER_2 object's GetInfo() method will issue a
|
|
level 2 NetServerGetInfo() API. Since this infolevel requires
|
|
admin privileges, the result of this method is used for privilege
|
|
verification. If the user has insufficient privilege, an
|
|
appropriate error message is displayed and the PROPERTY_SHEET
|
|
constructor is terminated. If the GetInfo() method fails for
|
|
any other reason (server malfunction??) then an appropriate error
|
|
message is displayed and the PROPERTY_SHEET constructor is
|
|
terminated.
|
|
|
|
Note: What about share level servers? The current
|
|
Server Manager Functional Specification does not address
|
|
share level servers.
|
|
|
|
At this point, we know that the server exists, is responding
|
|
properly to API, and the user has admin privileges.
|
|
|
|
PROPERTY_SHEET now creats a SERVER_PROPERTIES class, passing
|
|
to the constructer the HWND and SERVER_2 pointer it received
|
|
from SrvMain.
|
|
|
|
The SINGLE_PROPERTIES class performs the following steps:
|
|
|
|
Retrieve all necessary information from the server. The
|
|
major/minor version numbers and server comment are retrieved
|
|
from a SERVER_1 LMOBJ object. The domain role is retrieved
|
|
from a SERVER_2 LMOBJ object.
|
|
|
|
Note: The LMOBJ specs state that SERVER_2 should inherit
|
|
directly from SERVER_1. Currently, they both inherit
|
|
from the COMPUTER class. If SERVER_2 was redesigned to
|
|
inherit from SERVER_1, then SERVER_PROPERTIES could
|
|
retrieve all of its information from a SERVER_2 object.
|
|
|
|
Setup the graphical button bar.
|
|
|
|
Display all "dynamic" data (data that can be refreshed during
|
|
the lifetime of the dialog). This data is retrieved via the
|
|
function GetCurrentUsage() in PROPUTIL.C. This module will
|
|
eventually be converted to C++ as the necessary classes are
|
|
created. The following API are used for retrieving the
|
|
current usage statistics:
|
|
|
|
NetFileEnum2() - Open Files, File Locks,
|
|
Open Named Pipes
|
|
NetSessionEnum() - Sessions
|
|
NetCharDevQEnum() - Open Comm Ports
|
|
DosPrintQEnum() - Print Jobs
|
|
|
|
During OnOK() processing, SERVER_PROPERTIES::WriteInfoToServer()
|
|
is invoked to update the server comment. If a domain role
|
|
transition was requested, this is performed next after displaying
|
|
an appropriate warning message popup.
|
|
|
|
|
|
7. OPEN ISSUES
|
|
|
|
Servers running share level security.
|
|
|
|
Updating LANMAN.INI on a server running LanMan < 2.1.
|
|
|
|
Domain role transitions.
|
|
|
|
|
|
8. REVISION HISTORY
|
|
|
|
Rev Who When What
|
|
--- --- ---- ----
|
|
0.0 KeithMo 12-Jun-1991 Created this document.
|
|
|
|
0.1 KeithMo 21-Jun-1991 Ripped out all references to DS and
|
|
multiple-select properties.
|