13 public CComObjectRootEx<CComMultiThreadModelNoCS>,
14 public IShellFolderViewCB
59 public CComObjectRootEx<CComMultiThreadModelNoCS>,
99 TRACE(
"CCommonFolder::ParseDisplayName name=%S (ntPath=%S)\n", lpszDisplayName, m_NtPath);
101 const TItemId *
info;
120 hr = GetInfoFromPidl(*ppidl, &
info);
131 CComPtr<IShellFolder> psfChild;
137 hr = psfChild->ParseDisplayName(hwndOwner, pbcReserved,
end + 1, pchEaten, &
child, pdwAttributes);
152 *pdwAttributes = ConvertAttributes(
info, pdwAttributes);
172 const TItemId *
info;
190 CComPtr<IShellFolder> psfChild;
191 hr = InternalBindToObject(
path,
info,
first, rest, fullPidl, pbcReserved, &psfChild);
202 if (rest->mkid.cb > 0)
204 return psfChild->BindToObject(rest, pbcReserved,
riid, ppvOut);
207 return psfChild->QueryInterface(
riid, ppvOut);
216 const TItemId *
info,
224 const TItemId *
info,
252 hr = GetInfoFromPidl(pidl1, &id1);
257 hr = GetInfoFromPidl(pidl2, &id2);
270 bool isEmpty1 = (rest1->mkid.cb == 0);
271 bool isEmpty2 = (rest2->mkid.cb == 0);
273 if (isEmpty1 || isEmpty2)
280 CComPtr<IShellFolder> psfNext;
285 return psfNext->CompareIDs(
lParam, rest1, rest2);
291 const TItemId *
first,
292 const TItemId * second)
295 bool f2 = IsFolder(second);
309 int minlength =
min(
first->entryNameLength, second->entryNameLength);
320 int minlength =
min(
first->entryNameLength, second->entryNameLength);
340 _CComObject<CFolderViewCB> *pcb;
342 HRESULT hr = _CComObject<CFolderViewCB>::CreateInstance(&pcb);
360 pcb->Initialize(
view);
374 const TItemId *
info;
376 TRACE(
"GetAttributesOf %d\n", cidl);
380 *rgfInOut &= SFGAO_FOLDER | SFGAO_HASSUBFOLDER | SFGAO_BROWSABLE;
384 for (
int i = 0;
i < (
int)cidl;
i++)
393 *rgfInOut = ConvertAttributes(
info, rgfInOut);
408 TRACE(
"GetUIObjectOf\n");
414 CComPtr<IContextMenu> pcm;
420 CComPtr<IShellFolder> psfParent =
this;
427 const TItemId *
info;
437 CComPtr<IShellFolder> psfTarget;
447 psfParent = psfTarget;
452 if (cidl == 1 && IsFolder(apidl[0]))
467 return pcm->QueryInterface(
riid, ppvOut);
472 return ShellObjectCreatorInit<TExtractIcon>(m_NtPath, m_shellPidl, cidl, apidl,
riid, ppvOut);
482 if (cidl == 1 && IsFolder(apidl[0]))
484 CComPtr<IQueryAssociations> pqa;
493 return pqa->QueryInterface(
riid, ppvOut);
505 const TItemId *
info;
507 TRACE(
"GetDisplayNameOf %p\n", pidl);
535 if (pidlNext && pidlNext->mkid.cb > 0)
539 CComPtr<IShellFolder> psfChild;
547 hr = psfChild->GetDisplayNameOf(pidlNext,
uFlags | SHGDN_INFOLDER, &childName);
611 const SHCOLUMNID *pscid,
621 SHCOLUMNID *pscid)
PURE;
657 const TItemId *
first,
658 const TItemId * second)
PURE;
661 const TItemId *
entry,
666 const TItemId *
info;
672 return IsFolder(
info);
679 const TItemId *
info;
virtual BOOL STDMETHODCALLTYPE IsSymLink(const TItemId *info)
#define SHCIDS_CANONICALONLY
virtual HRESULT STDMETHODCALLTYPE BindToObject(LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void **ppvOut)
virtual HRESULT STDMETHODCALLTYPE CompareIDs(LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
void WINAPI ILFree(LPITEMIDLIST pidl)
#define HRESULT_FROM_WIN32(x)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
INT WINAPI StrCmpNW(LPCWSTR lpszStr, LPCWSTR lpszComp, INT iLen)
IShellFolderViewCB * psfvcb
interface IBindCtx * LPBC
#define GET_SHGDN_RELATION(dwFlags)
HRESULT WINAPI StrRetToBufW(LPSTRRET src, const ITEMIDLIST *pidl, LPWSTR dest, UINT len)
virtual HRESULT STDMETHODCALLTYPE GetCurFolder(PIDLIST_ABSOLUTE *pidl)
LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
virtual BOOL STDMETHODCALLTYPE IsSymLink(LPCITEMIDLIST pcidl)
virtual HRESULT STDMETHODCALLTYPE GetClassID(CLSID *lpClassId)
virtual HRESULT STDMETHODCALLTYPE ResolveSymLink(const TItemId *info, LPITEMIDLIST *fullPidl)
static HRESULT CALLBACK DefCtxMenuCallback(IShellFolder *, HWND, IDataObject *, UINT uMsg, WPARAM, LPARAM)
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
LPITEMIDLIST WINAPI ILGetNext(LPCITEMIDLIST pidl)
virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(HWND hwndOwner, LPBC pbcReserved, LPOLESTR lpszDisplayName, ULONG *pchEaten, LPITEMIDLIST *ppidl, ULONG *pdwAttributes)
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
#define DECLARE_NOT_AGGREGATABLE(x)
ITEMIDLIST_RELATIVE UNALIGNED * PUIDLIST_RELATIVE
const GUID IID_IDataObject
#define MAKE_COMPARE_HRESULT(x)
BOOL WINAPI ILRemoveLastID(LPITEMIDLIST pidl)
HRESULT WINAPI SHCreateShellFolderView(const SFV_CREATE *pcsfv, IShellView **ppsv)
virtual HRESULT STDMETHODCALLTYPE Initialize(PCIDLIST_ABSOLUTE pidl)
#define IID_PPV_ARG(Itype, ppType)
int WINAPI EnumObjects(_In_ HDC, _In_ int, _In_ GOBJENUMPROC, _In_ LPARAM)
HRESULT Next([in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] PITEMID_CHILD *rgelt, [out] ULONG *pceltFetched)
virtual HRESULT STDMETHODCALLTYPE CreateViewObject(HWND hwndOwner, REFIID riid, void **ppvOut)
virtual HRESULT STDMETHODCALLTYPE BindToStorage(LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void **ppvObj)
BOOL WINAPI PathAppendW(LPWSTR lpszPath, LPCWSTR lpszAppend)
const PCUITEMID_CHILD * PCUITEMID_CHILD_ARRAY
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
#define GET_SHGDN_FOR(dwFlags)
const GUID CLSID_NtObjectFolder
GLenum GLuint GLenum GLsizei length
#define DFM_INVOKECOMMAND
virtual HRESULT STDMETHODCALLTYPE Initialize(IShellView *psv)
#define ERROR_FILE_NOT_FOUND
virtual HRESULT STDMETHODCALLTYPE GetAttributesOf(UINT cidl, PCUITEMID_CHILD_ARRAY apidl, SFGAOF *rgfInOut)
#define SFVM_BACKGROUNDENUM
#define NT_SUCCESS(StatCode)
#define DFM_GETDEFSTATICID
virtual HRESULT STDMETHODCALLTYPE GetDefaultColumn(DWORD dwReserved, ULONG *pSort, ULONG *pDisplay)
#define HRESULT_FROM_NT(x)
virtual HRESULT STDMETHODCALLTYPE CompareName(LPARAM lParam, const TItemId *first, const TItemId *second)
#define FAILED_UNEXPECTEDLY(hr)
#define DFM_MERGECONTEXTMENU
#define STDMETHODCALLTYPE
HRESULT INLINE GetFullName(PCIDLIST_ABSOLUTE pidl, DWORD uFlags, PWSTR strName, DWORD cchName)
virtual HRESULT STDMETHODCALLTYPE GetDisplayNameOf(LPCITEMIDLIST pidl, SHGDNF uFlags, STRRET *lpName)
virtual HRESULT STDMETHODCALLTYPE EnumSearches(IEnumExtraSearch **ppenum)
LPITEMIDLIST WINAPI ILCloneFirst(LPCITEMIDLIST pidl)
virtual HRESULT STDMETHODCALLTYPE SetNameOf(HWND hwnd, LPCITEMIDLIST pidl, LPCOLESTR lpszName, SHGDNF uFlags, LPITEMIDLIST *ppidlOut)
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
HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast)
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
#define COM_INTERFACE_ENTRY_IID(iid, x)
LPWSTR WINAPI StrChrW(LPCWSTR lpszStr, WCHAR ch)
virtual BOOL STDMETHODCALLTYPE IsFolder(LPCITEMIDLIST pcidl)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define DECLARE_PROTECT_FINAL_CONSTRUCT()
#define DFM_INVOKECOMMANDEX
static IOleDocumentView * view
HRESULT WINAPI AssocCreate(CLSID clsid, REFIID refiid, void **lpInterface)
#define HKEY_CLASSES_ROOT
virtual HRESULT STDMETHODCALLTYPE GetDefaultSearchGUID(GUID *lpguid)
HRESULT WINAPI CIDLData_CreateFromIDArray(PCIDLIST_ABSOLUTE pidlFolder, UINT cpidlFiles, PCUIDLIST_RELATIVE_ARRAY lppidlFiles, LPDATAOBJECT *ppdataObject)
virtual HRESULT STDMETHODCALLTYPE GetUIObjectOf(HWND hwndOwner, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, REFIID riid, UINT *prgfInOut, void **ppvOut)
STRSAFEAPI StringCbCopyW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)
ITEMIDLIST UNALIGNED * LPITEMIDLIST
#define IsEqualIID(riid1, riid2)
static IShellFolder IShellItem **static IBindCtx LPITEMIDLIST SFGAOF
HRESULT INLINE MakeStrRetFromString(LPCWSTR string, DWORD cbLength, STRRET *str)
virtual HRESULT STDMETHODCALLTYPE MessageSFVCB(UINT uMsg, WPARAM wParam, LPARAM lParam)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *