00001 /* 00002 * Copyright 2003, 2004 Martin Fuchs 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Lesser General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2.1 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public 00015 * License along with this library; if not, write to the Free Software 00016 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00017 */ 00018 00019 00020 // 00021 // Explorer clone 00022 // 00023 // winfs.h 00024 // 00025 // Martin Fuchs, 23.07.2003 00026 // 00027 00028 00029 /// Windows file system file-entry 00030 struct WinEntry : public Entry 00031 { 00032 WinEntry(Entry* parent) : Entry(parent, ET_WINDOWS) {} 00033 00034 protected: 00035 WinEntry() : Entry(ET_WINDOWS) {} 00036 00037 virtual bool get_path(PTSTR path, size_t path_count) const; 00038 virtual ShellPath create_absolute_pidl() const; 00039 }; 00040 00041 00042 /// Windows file system directory-entry 00043 struct WinDirectory : public WinEntry, public Directory 00044 { 00045 WinDirectory(LPCTSTR root_path) 00046 : WinEntry() 00047 { 00048 _path = _tcsdup(root_path); 00049 } 00050 00051 WinDirectory(Entry* parent, LPCTSTR path) 00052 : WinEntry(parent) 00053 { 00054 _path = _tcsdup(path); 00055 } 00056 00057 ~WinDirectory() 00058 { 00059 free(_path); 00060 _path = NULL; 00061 } 00062 00063 virtual void read_directory(int scan_flags=0); 00064 virtual const void* get_next_path_component(const void*) const; 00065 virtual Entry* find_entry(const void*); 00066 }; 00067 00068 extern int ScanNTFSStreams(Entry* entry, HANDLE hFile);
ROS Explorer Source Code Documentation
generated on 02.01.2013 by ![]() |