www.pudn.com > NetTreeCtrl.zip > NetTreeCtrl.h
#if !defined(AFX_NETWORKTREECTRL_H__9F048556_D93F_4436_9B75_6384E66E9236__INCLUDED_)
#define AFX_NETWORKTREECTRL_H__9F048556_D93F_4436_9B75_6384E66E9236__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// NetTreeCtrl.h : header file
//
/////////////////////////////////////////////////////////////////////////////
#include "WaitingTreeCtrl.h"
/////////////////////////////////////////////////////////////////////////////
// CNetTreeCtrl window
class CNetTreeCtrl : public CWaitingTreeCtrl
{
private:
class CNetResource
{
private:
NETRESOURCE m_nr;
CString m_sLocalName;
CString m_sRemoteName;
CString m_sComment;
CString m_sProvider;
public:
CNetResource()
{
ZeroMemory(&m_nr, sizeof(NETRESOURCE));
}
CNetResource(const NETRESOURCE &nr)
{
m_nr = nr;
m_sLocalName = nr.lpLocalName;
m_sRemoteName = nr.lpRemoteName;
m_sComment = nr.lpComment;
m_sProvider = nr.lpProvider;
}
operator const NETRESOURCE&()
{
m_nr.lpLocalName = (LPTSTR)(LPCTSTR)m_sLocalName;
m_nr.lpRemoteName = (LPTSTR)(LPCTSTR)m_sRemoteName;
m_nr.lpComment = (LPTSTR)(LPCTSTR)m_sComment;
m_nr.lpProvider = (LPTSTR)(LPCTSTR)m_sProvider;
return m_nr;
}
CString GetDisplayName()
{
if (m_sRemoteName.IsEmpty())
return m_sComment;
CString ret = m_sRemoteName;
if (ret.Left(2) == _T("\\\\"))
ret = ret.Mid(ret.ReverseFind(_T('\\')) + 1);
return ret;
}
};
CNetResource* m_pNrRoot;
CImageList m_imgList;
DWORD m_dwStopAt;
// Construction
public:
CNetTreeCtrl();
// Attributes
public:
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CNetTreeCtrl)
protected:
virtual void PreSubclassWindow();
//}}AFX_VIRTUAL
// Implementation
private:
void InitializeControl();
int GetResourceImage(const NETRESOURCE &nr);
public:
BOOL GetItemResource(HTREEITEM hItem, LPNETRESOURCE pNr);
BOOL RefreshNetworkRoot(LPNETRESOURCE pRoot, DWORD dwStopAtDisplayType = RESOURCEDISPLAYTYPE_GENERIC);
virtual ~CNetTreeCtrl();
// Generated message map functions
protected:
virtual BOOL PopulateItem(HTREEITEM hParent);
//{{AFX_MSG(CNetTreeCtrl)
afx_msg void OnDeleteItem(NMHDR* pNMHDR, LRESULT* pResult);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_NETWORKTREECTRL_H__9F048556_D93F_4436_9B75_6384E66E9236__INCLUDED_)