Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

204 lines
4.8 KiB

//
// director.h : header file
//
#ifndef _DIRECTOR_H
#define _DIRECTOR_H
class CDirEntry; // forward def.
//
// We use the VROOT Access mask definitions to pass
// control information to the dialog as to which
// checkboxes should be displayed. As the access
// mask is a DWORD, and there are just a few bits
// defined, the following private extentions should
// be ok. If there ever is overlap there will be
// an assert in dirpropd.cpp.
//
#define VROOT_MASK_PVT_SSL_INSTALLED 0x10000000
#define VROOT_MASK_PVT_SSL_ENABLED 0x20000000
#define VROOT_MASK_PVT_EXTENTIONS (VROOT_MASK_PVT_SSL_INSTALLED \
| VROOT_MASK_PVT_SSL_ENABLED)
/////////////////////////////////////////////////////////////////////////////
enum
{
HI_DIRECTORY = 0,
HI_ALIAS,
HI_IPADDRESS,
HI_ERRORS,
//
// Don't move this one
//
HI_NUM_COLUMNS
};
/////////////////////////////////////////////////////////////////////////////
//
// Listbox of CAccess objects
//
class CDirectoriesListBox : public CListBoxEx
{
DECLARE_DYNAMIC(CDirectoriesListBox);
public:
static const nBitmaps; // Number of bitmaps
public:
CDirectoriesListBox(
UINT nHomeDir, // String ID for <Home Directory> string
int * pnTabs = NULL // Array of tabs
);
public:
inline CDirEntry * GetItem(
UINT nIndex
)
{
return (CDirEntry *)GetItemDataPtr(nIndex);
}
inline int AddItem(
CDirEntry * pItem
)
{
return AddString ((LPCTSTR)pItem);
}
inline void SetTabs(
int * pnTabs
)
{
::memcpy(m_anTabs, pnTabs, sizeof(m_anTabs));
}
protected:
virtual void DrawItemEx( CListBoxExDrawStruct & s);
BOOL ComputeTabs(int nIndex, int & nTab1, int & nTab2) const;
private:
int m_anTabs[HI_NUM_COLUMNS];
CString m_strHomeDirectory;
};
/////////////////////////////////////////////////////////////////////////////
//
// DirectoryPage dialog
//
class COMDLL DirectoryPage : public INetPropertyPage
{
DECLARE_DYNCREATE(DirectoryPage)
//
// Construction/Destruction
//
public:
DirectoryPage(
INetPropertySheet * pSheet = NULL,
BOOL fUseTCPIP = FALSE, // TCPIP Address is significant
BOOL fErrorColumn = TRUE, // Display error column in listbox
DWORD dwAccessMask = 0L // Flag of access masks to use
);
~DirectoryPage();
//
// Dialog Data
//
//{{AFX_DATA(DirectoryPage)
enum { IDD = IDD_DIRECTORIES };
CButton m_button_Add;
CButton m_button_Remove;
CButton m_button_Edit;
//}}AFX_DATA
CHeaderCtrl m_hdr;
CDirectoriesListBox m_list_Directories;
DWORD m_dwServiceMask;
//
// Overrides
//
virtual NET_API_STATUS SaveInfo(BOOL fUpdateData = FALSE);
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(DirectoryPage)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
//
// Implementation
//
protected:
void SetControlStates();
void AdjustColumns(HD_NOTIFY *pNotify = NULL);
int ShowPropertyDialog(BOOL fAdd = FALSE);
int InsertColumn(
BOOL fCondition, // Insert if TRUE
int & nCol,
int nWeight, // Relative weight of column
int & nTotalWeight, // Total weight
UINT nStringID // Resource string ID
);
void ConvertColumnWidth(
int nCol,
int nTotalWeight,
int nTotalWidth
);
// Generated message map functions
//{{AFX_MSG(DirectoryPage)
afx_msg void OnRemove();
afx_msg void OnButtonEdit();
afx_msg void OnAdd();
virtual BOOL OnInitDialog();
afx_msg void OnDblclkListDirectories();
afx_msg void OnSelchangeListDirectories();
afx_msg void OnErrspaceListDirectories();
afx_msg int OnVKeyToItem(UINT nKey, CListBox* pListBox, UINT nIndex);
//}}AFX_MSG
afx_msg void OnHeaderEndTrack(UINT nId, NMHDR *n, LRESULT *l);
afx_msg void OnHeaderItemClick(UINT nId, NMHDR *n, LRESULT *l);
DECLARE_MESSAGE_MAP()
void FillListBox();
LONG SortByDirectory();
LONG SortByAlias();
LONG SortByError();
LONG SortByAddress();
LPINETA_VIRTUAL_ROOT_LIST GetRoots();
void DestroyRoots(LPINETA_VIRTUAL_ROOT_LIST & pItemList);
int MapColumnToIndex(int nCol) const;
protected:
inline int QuerySortColumn() const
{
return m_nSortColumn;
}
inline DWORD & GetAccessMask()
{
return m_dwAccessMask;
}
private:
CListBoxExResources m_ListBoxRes;
CObOwnedList m_oblDirectories;
BOOL m_fDisplayErrorColumn;
BOOL m_fUseTCPIP;
DWORD m_dwAccessMask;
//
// Column numbers can be -1 if not present
//
int m_anColumns[HI_NUM_COLUMNS];
int m_nSortColumn;
};
#endif // _DIRECTOR_H