/*++ Copyright (c) 2000-2001 Microsoft Corporation Module Name: direntrs.h Abstract: Definition of the directory entries class. Given a path to a directory, creates two linked lists, one a list of all sub-directories (including mountpoints) and another a list of non-directories. Author: Stefan R. Steiner [ssteiner] 02-21-2000 Revision History: --*/ #ifndef __H_DIRENTRS_ #define __H_DIRENTRS_ #pragma once #include "vs_list.h" // // The structure filled in per file/dir. // // struct SDirectoryEntry { CBsString &GetFileName() { return m_cwsFileName; } CBsString &GetShortName() { return m_cwsShortName; } CBsString m_cwsFileName; CBsString m_cwsShortName; WIN32_FILE_ATTRIBUTE_DATA m_sFindData; }; // // The linked list iterator type definition // typedef CVssDLListIterator< SDirectoryEntry * > CDirectoryEntriesIterator; // // Class: CDirectoryEntries // class CDirectoryEntries { public: CDirectoryEntries( IN CDumpParameters *pcDumpParameters, IN const CBsString& cwsDirPath ); virtual ~CDirectoryEntries(); CDirectoryEntriesIterator *GetDirListIterator() { CVssDLListIterator< SDirectoryEntry * > *pcListIter; pcListIter = new CDirectoryEntriesIterator( m_cDirList ); if ( pcListIter == NULL ) // fix future prefix bug throw E_OUTOFMEMORY; return pcListIter; } CDirectoryEntriesIterator *GetFileListIterator() { CVssDLListIterator< SDirectoryEntry * > *pcListIter; pcListIter = new CDirectoryEntriesIterator( m_cFileList ); if ( pcListIter == NULL ) // fix future prefix bug throw E_OUTOFMEMORY; return pcListIter; } private: DWORD GetDirectoryEntries(); CBsString m_cwsDirPath; CVssDLList< SDirectoryEntry * > m_cDirList; CVssDLList< SDirectoryEntry * > m_cFileList; CDumpParameters *m_pcParams; }; #endif // __H_DIRENTRS_