Source code of Windows XP (NT5)
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.
|
|
/*++
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_
|