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.
 
 
 
 
 
 

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