128 entry->smart_scan(sortOrder, scan_flags);
131 entry->_expanded =
true;
134 p =
entry->get_next_path_component(
p);
145 CONTEXT(
"Entry::read_directory_base()");
154 entry->read_directory(scan_flags);
155 entry->sort_directory(sortOrder);
191 if (
name[0] ==
'.') {
224 return order2==order1? 0: order1<order2? -1: 1;
287 cmp = entry2->
_data.nFileSizeHigh - entry1->
_data.nFileSizeHigh;
294 cmp = entry2->
_data.nFileSizeLow - entry1->
_data.nFileSizeLow;
296 return cmp<0? -1:
cmp>0? 1: 0;
355 CONTEXT(
"Entry::smart_scan()");
377 IExtractIcon* pExtract;
379 unsigned gil_flags = 0;
383 gil_flags |= GIL_OPENICON;
386 if (gil_flags & GIL_NOTFILENAME)
468 if (!pidl || !pidl->mkid.cb)
517 #define USE_MY_SHBINDTOPARENT 527 #ifdef USE_MY_SHBINDTOPARENT 549 HRESULT hr = (*SHBindToParent)(pidl_abs, IID_IShellFolder, (
LPVOID*)&parentFolder, &pidlLast);
647 if (!
path || path_count==0)
651 if ( path_count > 1 )
656 if (
entry->_etype == etype) {
673 if (
len+
l >= path_count )
675 if (
l + 1 > path_count )
678 len = path_count -
l - 1;
681 if (
l+1 >= path_count )
692 if (
len+
l+1 >= path_count )
695 if (
l + 2 > path_count )
698 len = path_count -
l - 2;
702 if (
l+2 >= path_count )
719 if (
len+
l >= path_count )
721 if (
l + 1 > path_count )
724 len = path_count -
l - 1;
727 if (
l+1 >= path_count )
733 if ( !
level && (
len+1 < path_count) )
754 entry->free_subentries();
virtual ShellPath create_absolute_pidl() const
#define memmove(s1, s2, n)
BOOL launch_file(HWND hwnd, LPCTSTR cmd, UINT nCmdShow, LPCTSTR parameters)
void read_directory_base(SORT_ORDER sortOrder=SORT_NAME, int scan_flags=0)
void Free([in] LPVOID pv)
virtual HRESULT GetUIObjectOf(HWND hWnd, REFIID riid, LPVOID *ppvOut)
static int compareDate(const void *arg1, const void *arg2)
BY_HANDLE_FILE_INFORMATION _bhfi
static int compareType(const Entry *entry1, const Entry *entry2)
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
IShellFolder smart pointer.
virtual bool get_path(PTSTR path, size_t path_count) const =0
#define cmp(status, error)
virtual HRESULT do_context_menu(HWND hwnd, const POINT &pos, CtxMenuInterfaces &cm_ifs)
Entry * read_tree(LPCTSTR path, int scan_flags=0)
static int compareName(const void *arg1, const void *arg2)
Exception with context information.
GLuint GLuint GLuint GLuint GLuint GLuint GLuint arg2
const Icon & extract(LPCTSTR path, ICONCACHE_FLAGS flags=ICF_NORMAL)
int extract_icon(ICONCACHE_FLAGS flags=ICF_NORMAL)
void free_icon(int icon_id)
void WINAPI SHAddToRecentDocs(UINT uFlags, LPCVOID pv)
virtual void read_directory(int scan_flags=0)
GLuint GLuint GLuint GLuint arg1
void __cdecl qsort(_Inout_updates_bytes_(_NumOfElements *_SizeOfElements) void *_Base, _In_ size_t _NumOfElements, _In_ size_t _SizeOfElements, _In_ int(__cdecl *_PtFuncCompare)(const void *, const void *))
GLenum GLuint GLenum GLsizei length
size_t __cdecl _tcslen(const _TCHAR *str)
static HRESULT my_SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, VOID **ppv, LPCITEMIDLIST *ppidlLast)
void sort_directory(SORT_ORDER sortOrder)
#define FILE_ATTRIBUTE_DIRECTORY
root entry for file system trees
int safe_extract_icon(ICONCACHE_FLAGS flags=ICF_NORMAL)
LONG WINAPI CompareFileTime(IN CONST FILETIME *lpFileTime1, IN CONST FILETIME *lpFileTime2)
void smart_scan(SORT_ORDER sortOrder=SORT_NAME, int scan_flags=0)
Entry * read_tree(const void *path, SORT_ORDER sortOrder=SORT_NAME, int scan_flags=0)
static int compareNothing(const void *arg1, const void *arg2)
HRESULT QueryInterface(REFIID riid, I *p)
static int compareExt(const void *arg1, const void *arg2)
#define memcpy(s1, s2, n)
ExplorerGlobals g_Globals
ShellFolder & GetDesktopFolder()
virtual BOOL launch_entry(HWND hwnd, UINT nCmdShow=SW_SHOWNORMAL)
static unsigned __int64 next
bool get_path_base(PTSTR path, size_t path_count, ENTRY_TYPE etype) const
static int(* sortFunctions[])(const void *arg1, const void *arg2)
HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast)
static int compareSize(const void *arg1, const void *arg2)
#define MultiByteToWideChar
static TYPE_ORDER TypeOrderFromDirname(LPCTSTR name)
_TCHAR * _tcsrchr(const _TCHAR *s, _XINT c)
wrapper class for IMalloc with usage of common allocator
ITEMIDLIST UNALIGNED * LPITEMIDLIST
HRESULT ShellFolderContextMenu(IShellFolder *shell_folder, HWND hwndParent, int cidl, LPCITEMIDLIST *apidl, int x, int y, CtxMenuInterfaces &cm_ifs)
wrapper class for item ID lists
base of all file and directory entries
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint GLenum GLenum GLenum GLint GLuint GLenum GLenum GLfloat GLenum GLfloat GLenum GLint const GLfloat GLenum GLint const GLushort GLint GLint GLsizei GLsizei GLenum GLsizei GLsizei GLenum GLenum const GLvoid GLenum GLdouble GLenum GLint GLenum GLenum GLint GLenum GLenum GLfloat GLenum GLenum GLfloat GLenum GLfloat GLenum GLushort const GLubyte GLenum GLenum GLenum GLint GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLvoid GLenum GLenum GLint GLenum GLint GLenum GLint GLuint GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble const GLfloat GLenum const GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLint GLint GLsizei GLsizei GLenum GLuint GLenum array
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *