windows-nt/Source/XPSP1/NT/net/sfm/afp/ui/afpmgr/assoc.hxx
2020-09-26 16:20:57 +08:00

439 lines
9.6 KiB
C++

/**********************************************************************/
/** Microsoft Windows NT **/
/** Copyright(c) Microsoft Corp., 1991 **/
/**********************************************************************/
/*
assoc.hxx
This file contains the FILE_ASSOCIATION class definition
FILE HISTORY:
NarenG 12/4/92 Created
*/
#ifndef _ASSOC_HXX_
#define _ASSOC_HXX_
#define COLS_FA_LB_TYPE_CREATORS 3
/*************************************************************************
NAME: TYPE_CREATOR_LBI
SYNOPSIS: This class represents one item in the TYPE_CREATOR_LISTBOX.
INTERFACE: TYPE_CREATOR_LBI - Class constructor.
~TYPE_CREATOR_LBI - Class destructor.
Paint - Draw an item.
QueryLeadingChar - Query the first character for
the keyboard interface.
Compare - Compare two items.
PARENT: LBI
HISTORY:
NarenG 04-Dec-1992 Created.
**************************************************************************/
class TYPE_CREATOR_LBI : public LBI
{
private:
NLS_STR _nlsType;
NLS_STR _nlsCreator;
NLS_STR _nlsComment;
DWORD _dwId;
protected:
//
// This method paints a single item into the listbox.
//
virtual VOID Paint( LISTBOX * plb,
HDC hdc,
const RECT * prect,
GUILTT_INFO * pGUILTT ) const;
//
// This method returns the first character in the
// listbox item. This is used for the listbox
// keyboard interface.
//
virtual WCHAR QueryLeadingChar( VOID ) const;
//
// This method compares two listbox items. This
// is used for sorting the listbox.
//
virtual INT Compare( const LBI * plbi ) const;
public:
//
// Usual constructor/destructor goodies.
//
TYPE_CREATOR_LBI( PAFP_TYPE_CREATOR pAfpTypeCreator );
~TYPE_CREATOR_LBI();
const TCHAR * QueryType( VOID ) const
{ return _nlsType.QueryPch(); }
const TCHAR * QueryCreator( VOID ) const
{ return _nlsCreator.QueryPch(); }
const TCHAR * QueryComment( VOID ) const
{ return _nlsComment.QueryPch(); }
DWORD QueryId( VOID ) const
{ return _dwId; }
}; // class TYPE_CREATOR_LBI
/*************************************************************************
NAME: EXTENSION_COMBOBOX
SYNOPSIS: This combobox shows all the currently associated extensions
INTERFACE: EXTENSION_COMBOBOX - Class constructor. Takes a
pointer to the "owning" window,
a CID, and the max. length of the
SLE.
~EXTENSION_COMBOBOX - Class destructor.
Fill - Fills the listbox with the
currently added type/creators.
Refresh - Refresh listbox contents.
QueryColumnWidths - Returns pointer to col width table.
PARENT: COMBOBOX
HISTORY:
NarenG 04-Dec-1992 Created
**************************************************************************/
class EXTENSION_COMBOBOX : public COMBOBOX
{
private:
PAFP_EXTENSION _pExtensions;
public:
//
// Updates the combobox
//
DWORD Update( DWORD nExtensions, PAFP_EXTENSION pAfpExtensions );
DWORD QueryCurrentItemId( VOID ) const;
DWORD QueryItemId( INT Index ) const;
//
// Usual constructor\destructor goodies.
//
//
EXTENSION_COMBOBOX( OWNER_WINDOW * powner,
CID cid,
INT sleSize );
~EXTENSION_COMBOBOX();
}; // class EXTENSION_COMBOBOX
/*************************************************************************
NAME: TYPE_CREATOR_LISTBOX
SYNOPSIS: This listbox shows all the currently added type/creators.
INTERFACE: TYPE_CREATOR_LISTBOX - Class constructor. Takes a
pointer to the "owning" window,
a CID, and a handle to the server
being admiunistered.
~TYPE_CREATOR_LISTBOX - Class destructor.
Fill - Fills the listbox with the
currently added type/creators.
Refresh - Refresh listbox contents.
QueryColumnWidths - Returns pointer to col width table.
PARENT: BLT_LISTBOX
HISTORY:
NarenG 04-Dec-1992 Created
**************************************************************************/
class TYPE_CREATOR_LISTBOX : public BLT_LISTBOX
{
private:
//
// This data member represents the target server.
//
const AFP_SERVER_HANDLE _hServer;
//
// The column width table.
//
UINT _adx[COLS_FA_LB_TYPE_CREATORS];
public:
DWORD SelectTypeCreator( DWORD dwId );
DWORD SelectTypeCreator( NLS_STR * pnlsType, NLS_STR * pnlsCreator );
//
// The following method is called whenever the listbox needs
// to be refreshed (i.e. while the dialog is active). This
// method is responsible for maintaining (as much as possible)
// the current state of any selected item.
//
DWORD Update( DWORD nTypeCreators, PAFP_TYPE_CREATOR pAfpTypeCreators );
//
// This method returns a pointer to the column width table.
//
const UINT * QueryColumnWidths( VOID ) const
{ return _adx; }
//
// Usual constructor\destructor goodies.
//
//
TYPE_CREATOR_LISTBOX( OWNER_WINDOW * powner,
CID cid,
AFP_SERVER_HANDLE hServer );
~TYPE_CREATOR_LISTBOX();
//
// The following macro will declare (& define) a new
// QueryItem() method which will return a TYPE_CREATOR_LBI *.
//
DECLARE_LB_QUERY_ITEM( TYPE_CREATOR_LBI )
}; // class TYPE_CREATOR_LISTBOX
/*************************************************************************
NAME: FILE_ASSOCIATION_DIALOG
SYNOPSIS: The class for associatiating NTFS file extensions with
Macintosh type/creator pairs. This is ivoked from the
file manager extension UI.
INTERFACE: FILE_ASSOCIATION_DIALOG() - Constructor
PARENT: DIALOG_WINDOW
USES: PUSH_BUTTON, TYPE_CREATOR_LISTBOX, COMBOBOX
CAVEATS:
NOTES:
HISTORY:
NarenG 12/4/92 Created
**************************************************************************/
class FILE_ASSOCIATION_DIALOG : public DIALOG_WINDOW
{
private:
EXTENSION_COMBOBOX _cbExtensions;
TYPE_CREATOR_LISTBOX _lbTypeCreators;
PUSH_BUTTON _pbAssociate;
PUSH_BUTTON _pbAdd;
PUSH_BUTTON _pbEdit;
PUSH_BUTTON _pbDelete;
//
// Represents the target server
//
AFP_SERVER_HANDLE _hServer;
//
// Sorted array of extension/id pairs. This array is sorted by
// alphabetically by extension.
//
//
PAFP_EXTENSION _pExtensions;
protected:
virtual BOOL OnCommand( const CONTROL_EVENT & event );
virtual ULONG QueryHelpContext( VOID );
DWORD Update( VOID );
DWORD Refresh( VOID );
DWORD RefreshAndSelectTC( VOID );
BOOL TypeCreatorAddDialog( VOID );
BOOL TypeCreatorEditDialog( VOID );
VOID SelectTypeCreator( DWORD dwId );
VOID SelectTypeCreator( NLS_STR * pnlsType, NLS_STR * pnlsCreator );
VOID EnableControls( BOOL fEnable );
public:
FILE_ASSOCIATION_DIALOG :: FILE_ASSOCIATION_DIALOG(
HWND hWndOwner,
AFP_SERVER_HANDLE hServer,
const TCHAR * pszPath,
BOOL fIsFile );
~FILE_ASSOCIATION_DIALOG();
}; // class FILE_ASSOCIATION_DIALOG
/*******************************************************************
NAME: TYPE_CREATOR_ADD
SYNOPSIS: This class defines the TYPE_CREATOR_ADD dialog
PARENT: DIALOG_WINDOW
USES: COMBOBOX, SLE
CAVEATS:
NOTES:
HISTORY:
NarenG 12/4/92 Created
********************************************************************/
class TYPE_CREATOR_ADD : public DIALOG_WINDOW
{
private:
AFP_SERVER_HANDLE _hServer;
SLE _sleComment;
COMBOBOX _cbTypes;
COMBOBOX _cbCreators;
NLS_STR * _pnlsType;
NLS_STR * _pnlsCreator;
protected:
virtual BOOL OnOK( VOID );
virtual ULONG QueryHelpContext( VOID );
public:
TYPE_CREATOR_ADD :: TYPE_CREATOR_ADD(
HWND hWnd,
AFP_SERVER_HANDLE hServer,
TYPE_CREATOR_LISTBOX * ptclb,
NLS_STR * pnlsType,
NLS_STR * pnlsCreator );
};
/*******************************************************************
NAME: TYPE_CREATOR_EDIT
SYNOPSIS: This class defines the TYPE_CREATOR_EDIT dialog
PARENT: DIALOG_WINDOW
USES: SLT, SLE
CAVEATS:
NOTES:
HISTORY:
NarenG 12/4/92 Created
********************************************************************/
class TYPE_CREATOR_EDIT : public DIALOG_WINDOW
{
private:
AFP_SERVER_HANDLE _hServer;
SLE _sleComment;
SLT _sltType;
SLT _sltCreator;
protected:
virtual BOOL OnOK( VOID );
virtual ULONG QueryHelpContext( VOID );
public:
TYPE_CREATOR_EDIT :: TYPE_CREATOR_EDIT(
HWND hWnd,
AFP_SERVER_HANDLE hServer,
TYPE_CREATOR_LBI * ptclbi );
};
#endif