13 public CComObjectRootEx<CComMultiThreadModelNoCS>,
14 public IShellFolderViewCB
61 public CComObjectRootEx<CComMultiThreadModelNoCS>,
101 TRACE(
"CCommonFolder::ParseDisplayName name=%S (ntPath=%S)\n", lpszDisplayName, m_NtPath);
103 const TItemId *
info;
122 hr = GetInfoFromPidl(*ppidl, &
info);
133 CComPtr<IShellFolder> psfChild;
139 hr = psfChild->ParseDisplayName(hwndOwner, pbcReserved,
end + 1, pchEaten, &
child, pdwAttributes);
154 *pdwAttributes = ConvertAttributes(
info, pdwAttributes);
174 const TItemId *
info;
192 CComPtr<IShellFolder> psfChild;
193 hr = InternalBindToObject(
path,
info,
first, rest, fullPidl, pbcReserved, &psfChild);
204 if (rest->mkid.cb > 0)
206 return psfChild->BindToObject(rest, pbcReserved,
riid, ppvOut);
209 return psfChild->QueryInterface(
riid, ppvOut);
218 const TItemId *
info,
226 const TItemId *
info,
254 hr = GetInfoFromPidl(pidl1, &id1);
259 hr = GetInfoFromPidl(pidl2, &id2);
272 bool isEmpty1 = (rest1->mkid.cb == 0);
273 bool isEmpty2 = (rest2->mkid.cb == 0);
275 if (isEmpty1 || isEmpty2)
282 CComPtr<IShellFolder> psfNext;
287 return psfNext->CompareIDs(
lParam, rest1, rest2);
293 const TItemId *
first,
294 const TItemId * second)
297 bool f2 = IsFolder(second);
311 int minlength =
min(
first->entryNameLength, second->entryNameLength);
322 int minlength =
min(
first->entryNameLength, second->entryNameLength);
342 _CComObject<CFolderViewCB> *pcb;
344 HRESULT hr = _CComObject<CFolderViewCB>::CreateInstance(&pcb);
362 pcb->Initialize(
view);
376 const TItemId *
info;
378 TRACE(
"GetAttributesOf %d\n", cidl);
382 *rgfInOut &= SFGAO_FOLDER | SFGAO_HASSUBFOLDER | SFGAO_BROWSABLE;
386 for (
int i = 0;
i < (
int)cidl;
i++)
395 *rgfInOut = ConvertAttributes(
info, rgfInOut);
410 TRACE(
"GetUIObjectOf\n");
416 CComPtr<IContextMenu> pcm;
422 CComPtr<IShellFolder> psfParent =
this;
429 const TItemId *
info;
439 CComPtr<IShellFolder> psfTarget;
449 psfParent = psfTarget;
454 if (cidl == 1 && IsFolder(apidl[0]))
474 return ShellObjectCreatorInit<TExtractIcon>(m_NtPath, m_shellPidl, cidl, apidl,
riid, ppvOut);
484 if (cidl == 1 && IsFolder(apidl[0]))
486 CComPtr<IQueryAssociations> pqa;
507 const TItemId *
info;
509 TRACE(
"GetDisplayNameOf %p\n", pidl);
537 if (pidlNext && pidlNext->mkid.cb > 0)
541 CComPtr<IShellFolder> psfChild;
549 hr = psfChild->GetDisplayNameOf(pidlNext,
uFlags | SHGDN_INFOLDER, &childName);
659 const TItemId *
first,
660 const TItemId * second)
PURE;
663 const TItemId *
entry,
668 const TItemId *
info;
674 return IsFolder(
info);
681 const TItemId *
info;
HRESULT WINAPI SHCreateShellFolderView(const SFV_CREATE *pcsfv, IShellView **ppsv)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
#define STDMETHODCALLTYPE
virtual HRESULT STDMETHODCALLTYPE CompareName(LPARAM lParam, const TItemId *first, const TItemId *second)
virtual HRESULT STDMETHODCALLTYPE MapColumnToSCID(UINT iColumn, SHCOLUMNID *pscid) PURE
virtual HRESULT STDMETHODCALLTYPE GetDefaultColumn(DWORD dwReserved, ULONG *pSort, ULONG *pDisplay)
virtual HRESULT STDMETHODCALLTYPE BindToObject(LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void **ppvOut)
virtual HRESULT STDMETHODCALLTYPE GetDefaultColumnState(UINT iColumn, SHCOLSTATEF *pcsFlags) PURE
virtual HRESULT STDMETHODCALLTYPE GetAttributesOf(UINT cidl, PCUITEMID_CHILD_ARRAY apidl, SFGAOF *rgfInOut)
virtual HRESULT STDMETHODCALLTYPE ResolveSymLink(const TItemId *info, LPITEMIDLIST *fullPidl)
virtual BOOL STDMETHODCALLTYPE IsFolder(const TItemId *info) PURE
virtual HRESULT STDMETHODCALLTYPE CompareIDs(LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
virtual HRESULT STDMETHODCALLTYPE EnumObjects(HWND hwndOwner, SHCONTF grfFlags, IEnumIDList **ppenumIDList) PURE
virtual HRESULT STDMETHODCALLTYPE GetClassID(CLSID *lpClassId)
virtual BOOL STDMETHODCALLTYPE IsFolder(LPCITEMIDLIST pcidl)
virtual HRESULT STDMETHODCALLTYPE GetDetailsOf(LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS *psd) PURE
virtual ULONG STDMETHODCALLTYPE ConvertAttributes(const TItemId *entry, PULONG inMask) PURE
virtual HRESULT STDMETHODCALLTYPE GetDefaultSearchGUID(GUID *lpguid)
virtual HRESULT STDMETHODCALLTYPE Initialize(PCIDLIST_ABSOLUTE pidl)
virtual HRESULT STDMETHODCALLTYPE BindToStorage(LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void **ppvObj)
virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(HWND hwndOwner, LPBC pbcReserved, LPOLESTR lpszDisplayName, ULONG *pchEaten, LPITEMIDLIST *ppidl, ULONG *pdwAttributes)
virtual HRESULT STDMETHODCALLTYPE GetDetailsEx(LPCITEMIDLIST pidl, const SHCOLUMNID *pscid, VARIANT *pv) PURE
virtual HRESULT STDMETHODCALLTYPE CompareIDs(LPARAM lParam, const TItemId *first, const TItemId *second) PURE
virtual HRESULT STDMETHODCALLTYPE SetNameOf(HWND hwnd, LPCITEMIDLIST pidl, LPCOLESTR lpszName, SHGDNF uFlags, LPITEMIDLIST *ppidlOut)
static HRESULT CALLBACK DefCtxMenuCallback(IShellFolder *, HWND, IDataObject *, UINT uMsg, WPARAM, LPARAM)
virtual HRESULT STDMETHODCALLTYPE GetDisplayNameOf(LPCITEMIDLIST pidl, SHGDNF uFlags, STRRET *lpName)
virtual HRESULT STDMETHODCALLTYPE GetCurFolder(PIDLIST_ABSOLUTE *pidl)
virtual HRESULT STDMETHODCALLTYPE InternalBindToObject(PWSTR path, const TItemId *info, LPITEMIDLIST first, LPCITEMIDLIST rest, LPITEMIDLIST fullPidl, LPBC pbcReserved, IShellFolder **ppsfChild) PURE
virtual BOOL STDMETHODCALLTYPE IsSymLink(LPCITEMIDLIST pcidl)
virtual HRESULT STDMETHODCALLTYPE CreateViewObject(HWND hwndOwner, REFIID riid, void **ppvOut)
virtual HRESULT STDMETHODCALLTYPE EnumSearches(IEnumExtraSearch **ppenum)
virtual BOOL STDMETHODCALLTYPE IsSymLink(const TItemId *info)
virtual HRESULT GetInfoFromPidl(LPCITEMIDLIST pcidl, const TItemId **pentry) PURE
virtual HRESULT STDMETHODCALLTYPE GetUIObjectOf(HWND hwndOwner, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, REFIID riid, UINT *prgfInOut, void **ppvOut)
virtual HRESULT STDMETHODCALLTYPE Initialize(IShellView *psv)
virtual HRESULT STDMETHODCALLTYPE MessageSFVCB(UINT uMsg, WPARAM wParam, LPARAM lParam)
#define NT_SUCCESS(StatCode)
#define DFM_GETDEFSTATICID
#define SHCIDS_CANONICALONLY
#define GET_SHGDN_RELATION(dwFlags)
#define DFM_INVOKECOMMANDEX
#define DFM_MERGECONTEXTMENU
#define DFM_INVOKECOMMAND
#define GET_SHGDN_FOR(dwFlags)
HRESULT INLINE GetFullName(PCIDLIST_ABSOLUTE pidl, DWORD uFlags, PWSTR strName, DWORD cchName)
HRESULT INLINE MakeStrRetFromString(LPCWSTR string, DWORD cbLength, STRRET *str)
LPWSTR WINAPI StrChrW(LPCWSTR lpszStr, WCHAR ch)
INT WINAPI StrCmpNW(LPCWSTR lpszStr, LPCWSTR lpszComp, INT iLen)
HRESULT WINAPI AssocCreate(CLSID clsid, REFIID refiid, void **lpInterface)
BOOL WINAPI PathAppendW(LPWSTR lpszPath, LPCWSTR lpszAppend)
HRESULT WINAPI StrRetToBufW(LPSTRRET src, const ITEMIDLIST *pidl, LPWSTR dest, UINT len)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
const GUID CLSID_NtObjectFolder
GLuint GLsizei GLsizei * length
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 i
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
HRESULT Next([in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] PITEMID_CHILD *rgelt, [out] ULONG *pceltFetched)
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
#define COM_INTERFACE_ENTRY_IID(iid, x)
#define DECLARE_PROTECT_FINAL_CONSTRUCT()
#define DECLARE_NOT_AGGREGATABLE(x)
#define ERROR_FILE_NOT_FOUND
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
interface IBindCtx * LPBC
const GUID IID_IDataObject
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
void WINAPI ILFree(LPITEMIDLIST pidl)
LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
LPITEMIDLIST WINAPI ILCloneFirst(LPCITEMIDLIST pidl)
BOOL WINAPI ILRemoveLastID(LPITEMIDLIST pidl)
HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast)
LPITEMIDLIST WINAPI ILGetNext(LPCITEMIDLIST pidl)
#define IsEqualIID(riid1, riid2)
HRESULT WINAPI CIDLData_CreateFromIDArray(PCIDLIST_ABSOLUTE pidlFolder, UINT cpidlFiles, PCUIDLIST_RELATIVE_ARRAY lppidlFiles, LPDATAOBJECT *ppdataObject)
#define FAILED_UNEXPECTEDLY(hr)
#define MAKE_COMPARE_HRESULT(x)
#define SFVM_BACKGROUNDENUM
@ ASSOCF_INIT_DEFAULTTOFOLDER
ITEMIDLIST UNALIGNED * LPITEMIDLIST
const PCUITEMID_CHILD * PCUITEMID_CHILD_ARRAY
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
ITEMIDLIST_RELATIVE UNALIGNED * PUIDLIST_RELATIVE
STRSAFEAPI StringCbCopyW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)
IShellFolderViewCB * psfvcb
#define HRESULT_FROM_NT(x)
#define HRESULT_FROM_WIN32(x)
int WINAPI EnumObjects(_In_ HDC, _In_ int, _In_ GOBJENUMPROC, _In_ LPARAM)
#define HKEY_CLASSES_ROOT
#define IID_PPV_ARG(Itype, ppType)