33 CONTEXT(
"ShellDirectory::fill_w32fdata_shell()");
35 bool bhfi_valid =
false;
42 STGMEDIUM medium = {0, {0}, 0};
48 hr = pDataObj->GetData(&
fmt, &medium);
100 if (!do_access || !(
attribs&SFGAO_FILESYSTEM))
101 if (
attribs & (SFGAO_FOLDER|SFGAO_HASSUBFOLDER))
107 if (
attribs & SFGAO_COMPRESSED)
116 CONTEXT(
"ShellEntry::create_absolute_pidl()");
123 if (
dir->_pidl->mkid.cb)
135 if (!
path || path_count==0)
157 CONTEXT(
"ShellDirectory::get_path()");
159 if (!
path || path_count==0)
176 if (!(
attribs & SFGAO_FILESYSTEM))
188 CONTEXT(
"ShellEntry::launch_entry()");
199 shexinfo.
nShow = nCmdShow;
255 CONTEXT(
"ShellDirectory::read_directory()");
286 w32fd.cFileName[0]==
TEXT(
'.') &&
287 (w32fd.cFileName[1]==
TEXT(
'\0') ||
288 (w32fd.cFileName[1]==
TEXT(
'.') && w32fd.cFileName[2]==
TEXT(
'\0'))))
314 entry->_bhfi_valid =
true;
316 #ifdef BACKUP_READ_IMPLEMENTED 318 entry->_scanned =
true;
331 attribs |= SFGAO_FOLDER|SFGAO_HASSUBFOLDER;
363 ShellItemEnumerator enumerator(
_folder, SHCONTF_FOLDERS|SHCONTF_NONFOLDERS|SHCONTF_INCLUDEHIDDEN|SHCONTF_SHAREABLE|SHCONTF_STORAGE);
370 #define FETCH_ITEM_COUNT 32 374 memset(pidls, 0,
sizeof(pidls));
388 bool bhfi_valid =
false;
392 SFGAOF attribs_before = ~SFGAO_READONLY & ~SFGAO_VALIDATE;
395 bool removeable =
false;
399 if (
attribs & SFGAO_REMOVABLE) {
403 SFGAOF attribs2 = SFGAO_READONLY;
436 if (!
entry->_data.cFileName[0])
441 if (!
entry->_data.cFileName[0])
452 entry->_bhfi_valid = bhfi_valid;
459 !(
attribs & SFGAO_FILESYSTEM)) {
486 if (!pidl || !pidl->mkid.cb)
516 if (entry_pidl && entry_pidl->mkid.cb==pidl->mkid.cb && !
memcmp(entry_pidl, pidl, entry_pidl->mkid.cb))
bool fill_w32fdata_shell(LPCITEMIDLIST pidl, SFGAOF attribs, WIN32_FIND_DATA *, BY_HANDLE_FILE_INFORMATION *, bool do_access=true)
virtual void read_directory(int scan_flags=0)
virtual ShellPath create_absolute_pidl() const
virtual ShellPath create_absolute_pidl() const
void split(ShellPath &parent, ShellPath &obj) const
UINT WINAPI SetErrorMode(IN UINT uMode)
ShellEntry(Entry *parent, LPITEMIDLIST shell_path)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
Retrieval of file system paths of ShellPath objects.
#define SEM_FAILCRITICALERRORS
FileTypeManager _ftype_mgr
int _tcscmp(const _TCHAR *s1, const _TCHAR *s2)
virtual const void * get_next_path_component(const void *) const
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
SHELLEXECUTEINFOA SHELLEXECUTEINFO
virtual ShellFolder get_shell_folder() const
#define INVALID_HANDLE_VALUE
_TCHAR * _tcscpy(_TCHAR *to, const _TCHAR *from)
DWORD WINAPI GetLastError(VOID)
IShellFolder smart pointer.
const GUID IID_IDataObject
Exception with context information.
SIZE_T NTAPI GlobalSize(HGLOBAL hMem)
HRESULT name_from_pidl(IShellFolder *folder, LPCITEMIDLIST pidl, LPTSTR buffer, int len, SHGDNF flags)
virtual HRESULT GetUIObjectOf(HWND hWnd, REFIID riid, LPVOID *ppvOut)
void WINAPI SHAddToRecentDocs(UINT uFlags, LPCVOID pv)
#define GetFileAttributesEx
virtual BOOL launch_entry(HWND hwnd, UINT nCmdShow=SW_SHOWNORMAL)
size_t __cdecl _tcslen(const _TCHAR *str)
LPITEMIDLIST WINAPI ILFindLastID(LPCITEMIDLIST pidl)
#define FILE_ATTRIBUTE_DIRECTORY
IShellFolder * get_parent_folder() const
void HandleException(COMException &e, HWND hwnd)
Exception Handler for COM exceptions.
BOOL WINAPI GetFileInformationByHandle(HANDLE hFile, LPBY_HANDLE_FILE_INFORMATION lpFileInformation)
static IShellFolder ShellFolder
FILETIME ftLastAccessTime
LPCTSTR set_type(struct Entry *entry, bool dont_hide_ext=false)
#define FILE_ATTRIBUTE_READONLY
HGLOBAL NTAPI GlobalFree(HGLOBAL hMem)
#define FILE_ATTRIBUTE_COMPRESSED
virtual ShellFolder get_shell_folder() const
void display_error(HWND hwnd, DWORD error)
#define FILE_SHARE_DELETE
#define SHGetDataFromIDList
LPVOID NTAPI GlobalLock(HGLOBAL hMem)
#define memcpy(s1, s2, n)
ExplorerGlobals g_Globals
ShellDirectory(ShellFolder &root_folder, const ShellPath &shell_path, HWND hwnd)
Windows file system file-entry.
shell file/directory entry
virtual HRESULT do_context_menu(HWND hwnd, const POINT &pptScreen, CtxMenuInterfaces &cm_ifs)
ShellFolder & GetDesktopFolder()
int extract_icons(ICONCACHE_FLAGS flags)
ShellPath create_absolute_pidl(LPCITEMIDLIST parent_pidl) const
IN OUT PVCB OUT PDIRENT OUT PBCB IN BOOLEAN CreateFile
virtual Entry * find_entry(const void *)
#define FILE_ATTRIBUTE_HIDDEN
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
virtual bool get_path(PTSTR path, size_t path_count) const
#define FILE_FLAG_BACKUP_SEMANTICS
virtual bool get_path(PTSTR path, size_t path_count) const
#define SEE_MASK_INVOKEIDLIST
Windows file system directory-entry.
ITEMIDLIST UNALIGNED * LPITEMIDLIST
HRESULT ShellFolderContextMenu(IShellFolder *shell_folder, HWND hwndParent, int cidl, LPCITEMIDLIST *apidl, int x, int y, CtxMenuInterfaces &cm_ifs)
virtual ShellFolder get_shell_folder() const
wrapper class for item ID lists
int _tcsncmp(const _TCHAR *s1, const _TCHAR *s2, size_t n)
#define ATTRIBUTE_SYMBOLIC_LINK
base of all file and directory entries
static IShellFolder IShellItem **static IBindCtx LPITEMIDLIST SFGAOF
HRESULT GetUIObjectOf([in] HWND hwndOwner, [in] UINT cidl, [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl, [in] REFIID riid, [in, out, unique] UINT *prgfInOut, [out, iid_is(riid)] void **ppvOut)
BOOL WINAPI FindClose(HANDLE hFindFile)