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.
299 lines
6.0 KiB
299 lines
6.0 KiB
//
|
|
// dirpropd.h : header file
|
|
//
|
|
|
|
#ifndef _DIRPROPD_H
|
|
#define _DIRPROPD_H
|
|
|
|
#define NULL_IP_VALUE 0x00000000
|
|
#define BAD_IP_VALUE 0xffffffff
|
|
|
|
#define HOME_DIRECTORY_ALIAS _T("/")
|
|
|
|
CDirEntry * FindExistingHome(
|
|
CIpAddress & ipa,
|
|
CObOwnedList & oblDirectories,
|
|
int & nSel
|
|
);
|
|
|
|
//
|
|
// Directory entry object
|
|
//
|
|
class CDirEntry : public CObjectPlus
|
|
{
|
|
public:
|
|
CDirEntry();
|
|
CDirEntry(
|
|
LPWSTR strDirectory,
|
|
LPWSTR strAlias,
|
|
LPWSTR strUserName,
|
|
LPWSTR strPassword,
|
|
LPWSTR ipa,
|
|
DWORD dwMask,
|
|
DWORD dwError
|
|
);
|
|
|
|
CDirEntry(
|
|
const CDirEntry& dir
|
|
);
|
|
|
|
public:
|
|
void SetValues(
|
|
CString strDirectory,
|
|
CString strAlias,
|
|
CString strUserName,
|
|
CString strPassword,
|
|
CIpAddress ipa,
|
|
DWORD dwMask
|
|
);
|
|
|
|
inline BOOL HasIPAddress() const
|
|
{
|
|
return (LONG)QueryIpAddress() != NULL_IP_VALUE
|
|
&& (LONG)QueryIpAddress() != BAD_IP_VALUE;
|
|
}
|
|
|
|
inline CString QueryDirectory() const
|
|
{
|
|
return m_strDirectory;
|
|
}
|
|
|
|
inline CString QueryAlias() const
|
|
{
|
|
return m_strAlias;
|
|
}
|
|
|
|
inline CString QueryUserName() const
|
|
{
|
|
return m_strUserName;
|
|
}
|
|
|
|
inline CString QueryPassword() const
|
|
{
|
|
return m_strPassword;
|
|
}
|
|
|
|
inline CIpAddress QueryIpAddress() const
|
|
{
|
|
return m_ipa;
|
|
}
|
|
|
|
inline BOOL IsHome() const
|
|
{
|
|
return m_fHome;
|
|
}
|
|
|
|
inline BOOL HasReadAccess() const
|
|
{
|
|
return (m_dwMask & VROOT_MASK_READ) != 0L;
|
|
}
|
|
|
|
inline BOOL HasWriteAccess() const
|
|
{
|
|
return (m_dwMask & VROOT_MASK_WRITE) != 0L;
|
|
}
|
|
|
|
inline BOOL HasExecuteAccess() const
|
|
{
|
|
return (m_dwMask & VROOT_MASK_EXECUTE) != 0L;
|
|
}
|
|
|
|
inline BOOL HasSSLAccess() const
|
|
{
|
|
return (m_dwMask & VROOT_MASK_SSL) != 0L;
|
|
}
|
|
|
|
inline BOOL EnableCertificates() const
|
|
{
|
|
return (m_dwMask & VROOT_MASK_NEGO_CERT) != 0L;
|
|
}
|
|
|
|
inline BOOL RequireCertificates() const
|
|
{
|
|
return (m_dwMask & VROOT_MASK_NEGO_MANDATORY) != 0L;
|
|
}
|
|
|
|
inline DWORD QueryMask() const
|
|
{
|
|
return m_dwMask;
|
|
}
|
|
|
|
inline DWORD QueryError() const
|
|
{
|
|
return m_dwError;
|
|
}
|
|
|
|
//
|
|
// From the directory entry create an automatic
|
|
// alias name
|
|
//
|
|
LPCTSTR GenerateAutoAlias();
|
|
|
|
//
|
|
// Ensure a valid alias. Generate one if necessary
|
|
//
|
|
void CleanAliasName();
|
|
|
|
//
|
|
// Sort helper functions
|
|
//
|
|
int OrderByDirectory ( const CObjectPlus * pobDirEntry ) const;
|
|
int OrderByAlias ( const CObjectPlus * pobDirEntry ) const;
|
|
int OrderByIpAddress ( const CObjectPlus * pobDirEntry ) const;
|
|
int OrderByError ( const CObjectPlus * pobDirEntry ) const;
|
|
|
|
protected:
|
|
BOOL SetHomeFlag();
|
|
|
|
private:
|
|
CString m_strDirectory;
|
|
CString m_strAlias;
|
|
CString m_strUserName;
|
|
CString m_strPassword;
|
|
CIpAddress m_ipa;
|
|
DWORD m_dwMask;
|
|
DWORD m_dwError;
|
|
BOOL m_fHome;
|
|
};
|
|
|
|
//
|
|
// Directory properties dialog
|
|
//
|
|
class CDirPropDlg : public CDialog
|
|
{
|
|
//
|
|
// Construction
|
|
//
|
|
public:
|
|
CDirPropDlg(
|
|
CDirEntry &dir,
|
|
CObOwnedList * poblDirectories,
|
|
BOOL fLocal = FALSE,
|
|
BOOL fNew = TRUE,
|
|
BOOL fUseTCPIP = FALSE,
|
|
DWORD dwAccessMask = 0L,
|
|
CWnd* pParent = NULL,
|
|
UINT nIDD = IDD_DIRECTORY_PROPERTIES,
|
|
BOOL fVer30OrAbove = TRUE
|
|
);
|
|
//
|
|
// Dialog Data
|
|
//
|
|
//{{AFX_DATA(CDirPropDlg)
|
|
enum { IDD = IDD_DIRECTORY_PROPERTIES };
|
|
CButton m_check_EnableCert;
|
|
CButton m_check_RequireCert;
|
|
CButton m_check_SSL;
|
|
CButton m_group_Account;
|
|
CButton m_group_Access;
|
|
CButton m_check_Execute;
|
|
CButton m_button_Ok;
|
|
CButton m_check_UseIP;
|
|
CButton m_static_IPGroup;
|
|
CButton m_button_Browse;
|
|
CButton m_check_Write;
|
|
CButton m_check_Read;
|
|
CEdit m_edit_UserName;
|
|
CEdit m_edit_Password;
|
|
CEdit m_edit_Alias;
|
|
CEdit m_edit_Directory;
|
|
CStatic m_static_Password;
|
|
CStatic m_static_UserName;
|
|
CStatic m_static_Alias;
|
|
CStatic m_static_IPPrompt;
|
|
CString m_strAlias;
|
|
CString m_strDirectory;
|
|
CString m_strUserName;
|
|
BOOL m_fRead;
|
|
BOOL m_fWrite;
|
|
BOOL m_fExecute;
|
|
BOOL m_fSSL;
|
|
BOOL m_fEnableCert;
|
|
BOOL m_fRequireCert;
|
|
int m_nHomeAlias;
|
|
//}}AFX_DATA
|
|
|
|
CString m_strPassword;
|
|
CWndIpAddress m_ipa_IpAddress;
|
|
|
|
//
|
|
// Overrides
|
|
//
|
|
// ClassWizard generated virtual function overrides
|
|
//{{AFX_VIRTUAL(CDirPropDlg)
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
|
//}}AFX_VIRTUAL
|
|
|
|
//
|
|
// Implementation
|
|
//
|
|
public:
|
|
inline CDirEntry & QueryDirEntry()
|
|
{
|
|
return m_dir;
|
|
}
|
|
|
|
protected:
|
|
|
|
// Generated message map functions
|
|
//{{AFX_MSG(CDirPropDlg)
|
|
virtual BOOL OnInitDialog();
|
|
virtual void OnOK();
|
|
afx_msg void OnButtonBrowse();
|
|
afx_msg void OnCheckUseIp();
|
|
afx_msg void OnCheckEnableCert();
|
|
afx_msg void OnCheckRequireCert();
|
|
afx_msg void OnCheckSSL();
|
|
afx_msg void OnChangeEditDirectory();
|
|
afx_msg void OnRadioAlias();
|
|
afx_msg void OnRadioHome();
|
|
//}}AFX_MSG
|
|
|
|
afx_msg void OnItemChanged();
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
protected:
|
|
void SetOKState();
|
|
|
|
BOOL SetHomeDirState(
|
|
BOOL fHomeDir
|
|
);
|
|
|
|
BOOL SetUNCState(
|
|
BOOL fUNCState
|
|
);
|
|
|
|
BOOL SetIPState(
|
|
BOOL fIPAddress
|
|
);
|
|
|
|
BOOL IsUNCName(
|
|
const CString & strDirPath
|
|
) const;
|
|
|
|
void SetControlStates();
|
|
|
|
DWORD GenerateAccessMask() const;
|
|
|
|
void AppendControlText(CWnd & wndControl, int nResourceID);
|
|
|
|
private:
|
|
BOOL m_fNew;
|
|
BOOL m_fLocal;
|
|
BOOL m_fUseTCPIP;
|
|
BOOL m_fVer30OrAbove;
|
|
DWORD m_dwAccessMask;
|
|
CDirEntry m_dir;
|
|
CObOwnedList * m_poblDirectories;
|
|
//
|
|
// Save home state at startup time. This determines
|
|
// whether or not an "existing home" check needs to
|
|
// be performed.
|
|
//
|
|
BOOL m_fOldHome;
|
|
CIpAddress m_ipaOldAddress;
|
|
};
|
|
|
|
#endif // _DIRPROPD_H
|