391 lines
10 KiB
C++
391 lines
10 KiB
C++
/**********************************************************************/
|
|
/** Microsoft Windows NT **/
|
|
/** Copyright(c) Microsoft Corp., 1993 **/
|
|
/**********************************************************************/
|
|
|
|
/*
|
|
nwc.hxx
|
|
Class declarations for the NWC applet
|
|
|
|
|
|
FILE HISTORY:
|
|
ChuckC 17-Jul-1993 Created
|
|
*/
|
|
|
|
#ifndef _NWC_HXX_
|
|
#define _NWC_HXX_
|
|
|
|
#include <security.hxx>
|
|
|
|
class SHARES_LBOX ;
|
|
|
|
/*************************************************************************
|
|
|
|
NAME: NWC_DIALOG
|
|
|
|
SYNOPSIS: This is the NWC applet main dialog.
|
|
|
|
INTERFACE: NWC_DIALOG() - Class constructor.
|
|
~NWC_DIALOG() - Class destructor.
|
|
|
|
PARENT: DIALOG_WINDOW
|
|
|
|
USES:
|
|
|
|
HISTORY:
|
|
ChuckC 17-Jul-1992 Created
|
|
|
|
**************************************************************************/
|
|
|
|
class NWC_DIALOG: public DIALOG_WINDOW
|
|
{
|
|
private:
|
|
COMBOBOX _comboPreferredServers ;
|
|
CHECKBOX _chkboxFormFeed ;
|
|
CHECKBOX _chkboxPrintNotify ;
|
|
CHECKBOX _chkboxPrintBanner ;
|
|
CHECKBOX _chkboxLogonScript ;
|
|
DWORD _dwShareDrive ;
|
|
SLT _sltCurrentPreferredServer ;
|
|
SLT _sltUserName ;
|
|
PUSH_BUTTON _pbOverview ;
|
|
PUSH_BUTTON _pbGateway ;
|
|
MAGIC_GROUP _mgrpPreferred ;
|
|
SLE _sleContext ;
|
|
SLE _sleTree ;
|
|
NLS_STR _nlsOldPreferredServer;
|
|
DWORD _dwOldPrintOptions;
|
|
DWORD _dwOldLogonScriptOptions;
|
|
|
|
VOID OnNWCHelp();
|
|
protected:
|
|
virtual BOOL OnOK();
|
|
virtual BOOL OnCommand( const CONTROL_EVENT & event );
|
|
virtual ULONG QueryHelpContext( VOID );
|
|
|
|
APIERR FillPreferredServersCombo(void) ;
|
|
|
|
public:
|
|
NWC_DIALOG( HWND hwndOwner, BOOL fIsWinnt) ;
|
|
~NWC_DIALOG();
|
|
|
|
};
|
|
|
|
/*************************************************************************
|
|
|
|
NAME: SHARES_LBI
|
|
|
|
SYNOPSIS: This class represents one item in the SHARES_LBOX.
|
|
|
|
INTERFACE: SHARES_LBI - Class constructor.
|
|
|
|
~SHARES_LBI - Class destructor.
|
|
|
|
Paint - Draw an item.
|
|
|
|
QueryLeadingChar - Query the first character for
|
|
the keyboard interface.
|
|
|
|
Compare - Compare two items.
|
|
|
|
QueryShareName - Query the share name for this item.
|
|
|
|
QueryPathName - Query the path name for this item.
|
|
|
|
QueryDrive - Query the drive name for this item.
|
|
|
|
|
|
PARENT: LBI
|
|
|
|
USES: NLS_STR
|
|
|
|
HISTORY:
|
|
ChuckC 11/3/93 Created
|
|
|
|
**************************************************************************/
|
|
|
|
class SHARES_LBI : public LBI
|
|
{
|
|
protected:
|
|
|
|
/*
|
|
* These data members represent the various
|
|
* columns to be displayed in the listbox.
|
|
*/
|
|
NLS_STR _nlsShareName;
|
|
NLS_STR _nlsPathName;
|
|
NLS_STR _nlsDrive;
|
|
RESOURCE_STR _nlsUserLimit;
|
|
|
|
/*
|
|
* This method returns the first character in the
|
|
* listbox item. This is used for the listbox
|
|
* keyboard interface.
|
|
*/
|
|
virtual WCHAR QueryLeadingChar() const;
|
|
|
|
virtual INT Compare( const LBI * plbi ) const;
|
|
|
|
virtual VOID Paint( LISTBOX * plb,
|
|
HDC hdc,
|
|
const RECT * prect,
|
|
GUILTT_INFO * pGUILTT ) const;
|
|
public:
|
|
|
|
SHARES_LBI( const TCHAR *pszShareName,
|
|
const TCHAR *pszPathName,
|
|
const TCHAR *pszDrive,
|
|
const ULONG ulUserLimit ) ;
|
|
virtual ~SHARES_LBI() ;
|
|
|
|
const TCHAR * QueryShareName() const
|
|
{ return _nlsShareName.QueryPch(); }
|
|
|
|
const TCHAR * QueryPathName() const
|
|
{ return _nlsPathName.QueryPch(); }
|
|
|
|
const TCHAR * QueryDrive() const
|
|
{ return _nlsDrive.QueryPch(); }
|
|
|
|
const TCHAR * QueryUserLimit() const
|
|
{ return _nlsUserLimit.QueryPch(); }
|
|
|
|
};
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
NAME: SHARES_LBOX
|
|
|
|
SYNOPSIS: This listbox displays the files open on a server.
|
|
|
|
INTERFACE: SHARES_LBOX - Class constructor.
|
|
|
|
~SHARES_LBOX - Class destructor.
|
|
|
|
Refresh - Refresh the list of open files.
|
|
|
|
Fill - Fills the listbox with the
|
|
files open on the target server.
|
|
|
|
QueryColumnWidths - Called by SHARES_LBI::Paint(),
|
|
this is the column width table
|
|
used for painting the listbox
|
|
items.
|
|
|
|
PARENT: BLT_LISTBOX
|
|
|
|
USES: NLS_STR
|
|
|
|
HISTORY:
|
|
ChuckC 10/6/91 Created
|
|
|
|
**************************************************************************/
|
|
|
|
class SHARES_LBOX : public BLT_LISTBOX
|
|
{
|
|
private:
|
|
|
|
protected:
|
|
|
|
//
|
|
// This array contains the column widths used
|
|
// while painting the listbox item. This array
|
|
// is generated by the BuildColumnWidthTable()
|
|
// function.
|
|
//
|
|
UINT _adx[4];
|
|
|
|
public:
|
|
|
|
SHARES_LBOX( OWNER_WINDOW *powOwner,
|
|
CID cid) ;
|
|
|
|
~SHARES_LBOX();
|
|
|
|
/*
|
|
* Methods that fill and refresh the listbox.
|
|
*/
|
|
APIERR Fill();
|
|
APIERR Refresh();
|
|
|
|
//
|
|
// This method is called by the SHARES_LBI::Paint()
|
|
// method for retrieving the column width table.
|
|
//
|
|
const UINT * QueryColumnWidths() const
|
|
{ return _adx; }
|
|
|
|
//
|
|
// The following macro will declare (& define) a new
|
|
// QueryItem() method which will return an SHARES_LBI *.
|
|
//
|
|
DECLARE_LB_QUERY_ITEM( SHARES_LBI )
|
|
};
|
|
|
|
/*************************************************************************
|
|
|
|
NAME: NWC_GATEWAY_DIALOG
|
|
|
|
SYNOPSIS: This is the NWC gateway dialog.
|
|
|
|
INTERFACE: NWC_GATEWAY_DIALOG() - Class constructor.
|
|
~NWC_GATEWAY_DIALOG() - Class destructor.
|
|
|
|
PARENT: DIALOG_WINDOW
|
|
|
|
USES:
|
|
|
|
HISTORY:
|
|
ChuckC 17-Jul-1992 Created
|
|
|
|
**************************************************************************/
|
|
|
|
class NWC_GATEWAY_DIALOG: public DIALOG_WINDOW
|
|
{
|
|
private:
|
|
CHECKBOX _chkboxEnable ;
|
|
SLE _sleAccount ;
|
|
SLE _slePassword ;
|
|
SLE _sleConfirmPassword ;
|
|
SHARES_LBOX _lbShares ;
|
|
PUSH_BUTTON _pbAdd ;
|
|
PUSH_BUTTON _pbDelete ;
|
|
PUSH_BUTTON _pbPermissions ;
|
|
BOOL _fPasswordChanged ;
|
|
BOOL _fEnabledInitially;
|
|
|
|
NLS_STR _nlsConfirmPassword ;
|
|
RESOURCE_STR _nlsDeleted ;
|
|
NLS_STR _nlsSavedAccount ;
|
|
NLS_STR _nlsSavedPassword ;
|
|
|
|
APIERR OnShareAdd();
|
|
APIERR OnShareDel();
|
|
APIERR OnSharePerm();
|
|
APIERR ReadGatewayParameters(BOOL *pfReshare) ;
|
|
APIERR WriteGatewayParameters(BOOL fReshare) ;
|
|
APIERR WriteServiceDependencies(BOOL fReshare) ;
|
|
APIERR EnableControls(BOOL fReshare) ;
|
|
APIERR EnableButtons(void) ;
|
|
|
|
DWORD CalcNullNullSize(TCHAR *pszNullNull) ;
|
|
TCHAR *FindStringInNullNull(TCHAR *pszNullNull, TCHAR *pszString) ;
|
|
APIERR ModifyDependencyList(TCHAR **lplpDependencies,
|
|
BOOL fReshare,
|
|
BUFFER *pBuffer) ;
|
|
|
|
protected:
|
|
virtual BOOL OnOK();
|
|
virtual BOOL OnCommand( const CONTROL_EVENT & event );
|
|
virtual ULONG QueryHelpContext( VOID );
|
|
|
|
|
|
public:
|
|
NWC_GATEWAY_DIALOG( HWND hwndOwner) ;
|
|
~NWC_GATEWAY_DIALOG();
|
|
|
|
};
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
NAME: NWC_ADDSHARE_DIALOG
|
|
|
|
SYNOPSIS: This is the NWC gateway dialog.
|
|
|
|
INTERFACE: NWC_ADDSHARE_DIALOG() - Class constructor.
|
|
~NWC_ADDSHARE_DIALOG() - Class destructor.
|
|
|
|
PARENT: DIALOG_WINDOW
|
|
|
|
USES:
|
|
|
|
HISTORY:
|
|
ChuckC 17-Jul-1992 Created
|
|
|
|
**************************************************************************/
|
|
|
|
class NWC_ADDSHARE_DIALOG: public DIALOG_WINDOW
|
|
{
|
|
private:
|
|
SLE _sleShare ;
|
|
SLE _slePath ;
|
|
COMBOBOX _comboDrives ;
|
|
SLE _sleComment;
|
|
MAGIC_GROUP _mgrpUserLimit;
|
|
SPIN_SLE_NUM _spsleUsers;
|
|
SPIN_GROUP _spgrpUsers;
|
|
|
|
NLS_STR * _pnlsAccount ;
|
|
NLS_STR * _pnlsPassword ;
|
|
|
|
//
|
|
// Fill the drives combo
|
|
//
|
|
APIERR FillDrivesCombo(void) ;
|
|
|
|
//
|
|
// Query or set the contents of the SLE comment
|
|
//
|
|
APIERR QueryComment( NLS_STR *pnlsComment ) const
|
|
{ return _sleComment.QueryText( pnlsComment ); }
|
|
|
|
VOID SetComment( const TCHAR *pszComment )
|
|
{ _sleComment.SetText( pszComment ); }
|
|
|
|
//
|
|
// Query or set the contents of User Limit
|
|
//
|
|
ULONG QueryUserLimit( VOID ) const;
|
|
|
|
protected:
|
|
virtual BOOL OnOK();
|
|
virtual ULONG QueryHelpContext( VOID );
|
|
|
|
|
|
public:
|
|
NWC_ADDSHARE_DIALOG( HWND hwndOwner,
|
|
NLS_STR *pnlsAccount,
|
|
NLS_STR *pnlsPassword) ;
|
|
~NWC_ADDSHARE_DIALOG();
|
|
|
|
};
|
|
|
|
|
|
//
|
|
// share ACL manipulation routines
|
|
//
|
|
|
|
APIERR EditShareAcl( HWND hwndParent,
|
|
const TCHAR *pszServer,
|
|
const TCHAR *pszResource,
|
|
BOOL *pfSecDescModified,
|
|
OS_SECURITY_DESCRIPTOR **ppOsSecDesc,
|
|
ULONG ulHelpContextBase ) ;
|
|
|
|
APIERR CreateDefaultAcl( OS_SECURITY_DESCRIPTOR ** ppOsSecDesc ) ;
|
|
|
|
APIERR GetSharePerm (const TCHAR *pszServer,
|
|
const TCHAR *pszShare,
|
|
OS_SECURITY_DESCRIPTOR ** ppOsSecDesc ) ;
|
|
|
|
APIERR SetSharePerm (const TCHAR *pszServer,
|
|
const TCHAR *pszShare,
|
|
const OS_SECURITY_DESCRIPTOR *pOsSecDesc ) ;
|
|
|
|
/*
|
|
* Share General Permissions
|
|
*/
|
|
#define FILE_PERM_GEN_NO_ACCESS (0)
|
|
#define FILE_PERM_GEN_READ (GENERIC_READ |\
|
|
GENERIC_EXECUTE)
|
|
#define FILE_PERM_GEN_MODIFY (GENERIC_READ |\
|
|
GENERIC_EXECUTE |\
|
|
GENERIC_WRITE |\
|
|
DELETE )
|
|
#define FILE_PERM_GEN_ALL (GENERIC_ALL)
|
|
|
|
|
|
#endif // _NWC_HXX_
|