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_)