#if !defined(AFX_NOVELLDIRLISTDLG_H__B27B508A_26B9_482B_9493_F7F84791333A__INCLUDED_)
#define AFX_NOVELLDIRLISTDLG_H__B27B508A_26B9_482B_9493_F7F84791333A__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// NovellDirListDlg.h : header file
//

#include "BGDNet.h"

/////////////////////////////////////////////////////////////////////////////
// CNovellDirListDlg dialog

class CNovellDirListDlg : public CDialog
{
// Construction
public:
	CString SelectedDir( void ) const;
  CNovellDirListDlg(CWnd* pParent = NULL);   // standard constructor

// Dialog Data
protected:
  //{{AFX_DATA(CNovellDirListDlg)
  enum { IDD = IDD_NOVELL_DIR_LIST_DIALOG };
  CTreeCtrl  m_DirTree;
  CString m_sTempSelDir;
  //}}AFX_DATA

// Overrides
  // ClassWizard generated virtual function overrides
  //{{AFX_VIRTUAL(CNovellDirListDlg)
  protected:
  virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  //}}AFX_VIRTUAL

// Implementation
protected:

  // Generated message map functions
  //{{AFX_MSG(CNovellDirListDlg)
  virtual BOOL OnInitDialog();
  afx_msg void OnSelchangedTreeDir(NMHDR* pNMHDR, LRESULT* pResult);
  virtual void OnOK();
  afx_msg void OnItemExpandingTreeDir(NMHDR* pNMHDR, LRESULT* pResult);
  //}}AFX_MSG
  DECLARE_MESSAGE_MAP()
private:
  void ExpandDir( HTREEITEM hDir );
  CString GetFullPath( HTREEITEM hItem );
  HTREEITEM FindChild( LPCTSTR name, HTREEITEM hParent );
  HTREEITEM FindSelDir( HTREEITEM hFrom );
  void InsertDirs( const BGDNet::Directory* pDir, HTREEITEM hParent );
  void InsertVolumes( const BGDNet::Server* pSrv, HTREEITEM hSrv );
  void InsertServers( HTREEITEM hNetwork );
  void InsertDrives( HTREEITEM hNetwork );
  CString  m_sSelectedDir;
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_NOVELLDIRLISTDLG_H__B27B508A_26B9_482B_9493_F7F84791333A__INCLUDED_)
