33 CONTEXT(
"ShellDirectory::fill_w32fdata_shell()");
35 bool bhfi_valid =
false;
42 STGMEDIUM medium = {0, {0}, 0};
76 pw32fdata->dwFileAttributes &= ~FILE_ATTRIBUTE_HIDDEN;
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))
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
Retrieval of file system paths of ShellPath objects.
#define INVALID_HANDLE_VALUE
static const WCHAR *const ext[]
UINT WINAPI SetErrorMode(IN UINT uMode)
BOOL WINAPI GetFileInformationByHandle(HANDLE hFile, LPBY_HANDLE_FILE_INFORMATION lpFileInformation)
BOOL WINAPI FindClose(HANDLE hFindFile)
static IShellFolder IShellItem **static IBindCtx LPITEMIDLIST SFGAOF
@ SCAN_DONT_EXTRACT_ICONS
#define ATTRIBUTE_SYMBOLIC_LINK
LPVOID NTAPI GlobalLock(HGLOBAL hMem)
HGLOBAL NTAPI GlobalFree(HGLOBAL hMem)
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
SIZE_T NTAPI GlobalSize(HGLOBAL hMem)
HRESULT GetData([in, unique] FORMATETC *pformatetcIn, [out] STGMEDIUM *pmedium)
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)
#define memcpy(s1, s2, n)
ExplorerGlobals g_Globals
void display_error(HWND hwnd, DWORD error)
#define FILE_FLAG_BACKUP_SEMANTICS
#define SEM_FAILCRITICALERRORS
#define FILE_ATTRIBUTE_READONLY
#define FILE_ATTRIBUTE_COMPRESSED
#define FILE_ATTRIBUTE_HIDDEN
#define FILE_SHARE_DELETE
#define FILE_ATTRIBUTE_DIRECTORY
const GUID IID_IDataObject
LPITEMIDLIST WINAPI ILFindLastID(LPCITEMIDLIST pidl)
static Character const *__cdecl get_path()
SHELLEXECUTEINFOA SHELLEXECUTEINFO
#define SEE_MASK_INVOKEIDLIST
ShellFolder & GetDesktopFolder()
HRESULT name_from_pidl(IShellFolder *folder, LPCITEMIDLIST pidl, LPTSTR buffer, int len, SHGDNF flags)
HRESULT ShellFolderContextMenu(IShellFolder *shell_folder, HWND hwndParent, int cidl, LPCITEMIDLIST *apidl, int x, int y, CtxMenuInterfaces &cm_ifs)
void HandleException(COMException &e, HWND hwnd)
Exception Handler for COM exceptions.
void WINAPI SHAddToRecentDocs(UINT uFlags, LPCVOID pv)
#define SHGetDataFromIDList
ITEMIDLIST UNALIGNED * LPITEMIDLIST
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
Exception with context information.
base of all file and directory entries
virtual ShellPath create_absolute_pidl() const
virtual ShellFolder get_shell_folder() const
FileTypeManager _ftype_mgr
LPCTSTR set_type(struct Entry *entry, bool dont_hide_ext=false)
int extract_icons(ICONCACHE_FLAGS flags)
virtual ShellFolder get_shell_folder() const
virtual void read_directory(int scan_flags=0)
bool fill_w32fdata_shell(LPCITEMIDLIST pidl, SFGAOF attribs, WIN32_FIND_DATA *, BY_HANDLE_FILE_INFORMATION *, bool do_access=true)
virtual const void * get_next_path_component(const void *) const
virtual Entry * find_entry(const void *)
virtual bool get_path(PTSTR path, size_t path_count) const
shell file/directory entry
virtual HRESULT do_context_menu(HWND hwnd, const POINT &pptScreen, CtxMenuInterfaces &cm_ifs)
IShellFolder * get_parent_folder() const
virtual ShellPath create_absolute_pidl() const
virtual bool get_path(PTSTR path, size_t path_count) const
virtual HRESULT GetUIObjectOf(HWND hWnd, REFIID riid, LPVOID *ppvOut)
virtual BOOL launch_entry(HWND hwnd, UINT nCmdShow=SW_SHOWNORMAL)
virtual ShellFolder get_shell_folder() const
IShellFolder smart pointer.
wrapper class for item ID lists
ShellPath create_absolute_pidl(LPCITEMIDLIST parent_pidl) const
void split(ShellPath &parent, ShellPath &obj) const
Windows file system directory-entry.
Windows file system file-entry.
FILETIME ftLastAccessTime
#define GetFileAttributesEx
DWORD WINAPI GetLastError(void)