www.pudn.com > VC写的MP3播放器源代码.zip > ITSimpleFindFiles.h


///////////////////////////////////////////////////////////////////////////// 
 
///////////////////////////////////////////////////////////////////////////// 
// 
// $NoKeywords: $ 
 
#ifndef ITSIMPLEFINDFILES_INCLUDED 
#define ITSIMPLEFINDFILES_INCLUDED 
 
///////////////////////////////////////////////////////////////////////////// 
// ITCSimpleFindFiles 
// 
// @doc INTERNAL UTILITY 
// 
// @class The  is a private class used by . 
// This class allows you to search a single folder for a file or a set of files. 
// 
// @base public |  
// 
// @ex The following example shows how you could search for all the 
// subfolders in the root folder.| 
// 
// ITCFindFiles find; 
//  
// find.NewSearch("C:\\", "*.*", FILE_ATTRIBUTE_DIRECTORY); 
//  
// while (find.NextFile()) 
// { 
//     TRACE("%s\n", find.GetFilePath()); 
// } 
//  
// @author Lance Lovette | 
 
class ITCSimpleFindFiles : public CObject 
{ 
	DECLARE_DYNAMIC(ITCSimpleFindFiles) 
 
// Data constants 
public: 
	static DWORD AllAttributes; // Use with NewSearch. 
	static DWORD DefaultAttributes; // Use with NewSearch. 
	static DWORD FilesOnly; // Use with NewSearch. 
	static DWORD FoldersOnly; // Use with NewSearch. 
 
// @access Construction 
public: 
	// @cmember Constructs a  object. 
	ITCSimpleFindFiles(); 
 
	void NewSearch(CString strPattern, 
		DWORD dwFindAttributes); 
	void NewSearch(CString strFolder, CString strPattern, 
		DWORD dwFindAttributes); 
	void NewSearch(HDROP hDropInfo, 
		DWORD dwFindAttributes); 
	void NewSearch(const ITCSimpleFindFiles& rFind); 
 
// Attributes 
public: 
	DWORD GetFileAttributes() const; 
	CString GetFileExt() const; 
	CString GetFileFolder() const; 
	LPCTSTR GetFileName() const; 
	CString GetFilePath() const; 
	CString GetFileTitle() const; 
	void GetFindAttributes(DWORD& dwAttribSet, DWORD& dwAttribClear) const; 
	void SetFindAttributes(DWORD dwAttribSet, DWORD dwAttribClear); 
	const WIN32_FIND_DATA* GetFindData() const; 
	CString GetFindFileName() const; 
	CString GetFindPattern() const; 
	DWORD GetLength() const; 
	CString GetRoot() const; 
	DWORD GetUserData() const; 
	BOOL HasFileAttributes(DWORD dwFileAttributes) const; 
	BOOL IsSpecialFolder() const; 
	void SetUserData(DWORD dwUserData); 
	BOOL IsDroppedFiles() const; 
	CString GetTypeName() const; 
	DWORD SHGetFileInfo(DWORD dwFileAttributes, 
		SHFILEINFO FAR *psfi, UINT uFlags) const; 
 
// Operations 
public: 
	virtual void Close(); 
	virtual BOOL NextFile(); 
 
// Overridables 
public: 
	virtual BOOL OnFilterFile() const; 
 
// Implementation 
public: 
	virtual ~ITCSimpleFindFiles(); 
 
#ifdef _DEBUG 
	virtual void AssertValid() const; 
	virtual void Dump(CDumpContext& dc) const; 
#endif 
 
protected: 
	UINT m_uDropIndex; // Used with m_hDropInfo 
	UINT m_uMaxDropIndex; // Used with m_hDropInfo 
	DWORD m_dwUserData; 
	DWORD m_dwFindAttribSet; // Must be set to match 
	DWORD m_dwFindAttribClear; // Must be clear to match 
	HDROP m_hDropInfo; 
	HANDLE m_hFindFile; 
	CString m_strFindRoot; 
	CString m_strFindPattern; 
	CString m_strDropFilePath; // Used with m_hDropInfo 
	WIN32_FIND_DATA m_findData; 
 
	void CommonConstruct(); 
 
	virtual BOOL NextFindFile(); 
	virtual BOOL NextDropFile(); 
	virtual BOOL DragQueryFile(); 
}; 
 
// 
// @xref  
 
///////////////////////////////////////////////////////////////////////////// 
 
#endif // ITSIMPLEFINDFILES_INCLUDED