13 public CComObjectRootEx<CComMultiThreadModelNoCS>,
14 public IShellFolderViewCB
61 public CComObjectRootEx<CComMultiThreadModelNoCS>,
90 ULONG *pdwAttributes)
override
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);
172 void **ppvOut)
override
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,
237 void **ppvObj)
override
253 hr = GetInfoFromPidl(pidl1, &id1);
258 hr = GetInfoFromPidl(pidl2, &id2);
271 bool isEmpty1 = (rest1->mkid.cb == 0);
272 bool isEmpty2 = (rest2->mkid.cb == 0);
274 if (isEmpty1 || isEmpty2)
281 CComPtr<IShellFolder> psfNext;
286 return psfNext->CompareIDs(
lParam, rest1, rest2);
292 const TItemId *
first,
293 const TItemId * second)
296 bool f2 = IsFolder(second);
310 int minlength =
min(
first->entryNameLength, second->entryNameLength);
321 int minlength =
min(
first->entryNameLength, second->entryNameLength);
336 void **ppvOut)
override
341 _CComObject<CFolderViewCB> *pcb;
343 HRESULT hr = _CComObject<CFolderViewCB>::CreateInstance(&pcb);
361 pcb->Initialize(
view);
373 SFGAOF *rgfInOut)
override
375 const TItemId *
info;
377 TRACE(
"GetAttributesOf %d\n", cidl);
381 *rgfInOut &= SFGAO_FOLDER | SFGAO_HASSUBFOLDER | SFGAO_BROWSABLE;
385 for (
int i = 0;
i < (
int)cidl;
i++)
394 *rgfInOut = ConvertAttributes(
info, rgfInOut);
406 void **ppvOut)
override
409 TRACE(
"GetUIObjectOf\n");
415 CComPtr<IContextMenu> pcm;
421 CComPtr<IShellFolder> psfParent =
this;
428 const TItemId *
info;
438 CComPtr<IShellFolder> psfTarget;
448 psfParent = psfTarget;
453 if (cidl == 1 && IsFolder(apidl[0]))
473 return ShellObjectCreatorInit<TExtractIcon>(m_NtPath, m_shellPidl, cidl, apidl,
riid, ppvOut);
483 if (cidl == 1 && IsFolder(apidl[0]))
485 CComPtr<IQueryAssociations> pqa;
506 const TItemId *
info;
508 TRACE(
"GetDisplayNameOf %p\n", pidl);
536 if (pidlNext && pidlNext->mkid.cb > 0)
540 CComPtr<IShellFolder> psfChild;
548 hr = psfChild->GetDisplayNameOf(pidlNext,
uFlags | SHGDN_INFOLDER, &childName);
595 ULONG *pDisplay)
override
656 const TItemId *
first,
657 const TItemId * second)
PURE;
660 const TItemId *
entry,
665 const TItemId *
info;
671 return IsFolder(
info);
678 const TItemId *
info;
HRESULT WINAPI SHCreateShellFolderView(const SFV_CREATE *pcsfv, IShellView **ppsv)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
static BOOL CompareName(LPCWSTR pszName1, LPCWSTR pszName2)
STDMETHODIMP GetDisplayNameOf(LPCITEMIDLIST pidl, SHGDNF uFlags, STRRET *lpName) override
STDMETHODIMP SetNameOf(HWND hwnd, LPCITEMIDLIST pidl, LPCOLESTR lpszName, SHGDNF uFlags, LPITEMIDLIST *ppidlOut) override
STDMETHOD_(BOOL, IsSymLink)(const TItemId *info)
STDMETHODIMP GetDefaultColumn(DWORD dwReserved, ULONG *pSort, ULONG *pDisplay) override
STDMETHODIMP CreateViewObject(HWND hwndOwner, REFIID riid, void **ppvOut) override
STDMETHODIMP GetCurFolder(PIDLIST_ABSOLUTE *pidl) override
STDMETHODIMP CompareIDs(LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) override
STDMETHODIMP Initialize(PCIDLIST_ABSOLUTE pidl) override
STDMETHODIMP BindToStorage(LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void **ppvObj) override
STDMETHOD_(BOOL, IsFolder)(const TItemId *info) PURE
STDMETHODIMP GetDefaultSearchGUID(GUID *lpguid) override
static HRESULT CALLBACK DefCtxMenuCallback(IShellFolder *, HWND, IDataObject *, UINT uMsg, WPARAM, LPARAM)
STDMETHODIMP ParseDisplayName(HWND hwndOwner, LPBC pbcReserved, LPOLESTR lpszDisplayName, ULONG *pchEaten, LPITEMIDLIST *ppidl, ULONG *pdwAttributes) override
STDMETHODIMP EnumSearches(IEnumExtraSearch **ppenum) override
STDMETHOD_(ULONG, ConvertAttributes)(const TItemId *entry
STDMETHODIMP GetClassID(CLSID *lpClassId) override
STDMETHOD_(BOOL, IsFolder)(LPCITEMIDLIST pcidl)
STDMETHODIMP GetUIObjectOf(HWND hwndOwner, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, REFIID riid, UINT *prgfInOut, void **ppvOut) override
STDMETHODIMP GetAttributesOf(UINT cidl, PCUITEMID_CHILD_ARRAY apidl, SFGAOF *rgfInOut) override
virtual HRESULT GetInfoFromPidl(LPCITEMIDLIST pcidl, const TItemId **pentry) PURE
STDMETHODIMP BindToObject(LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void **ppvOut) override
STDMETHOD_(BOOL, IsSymLink)(LPCITEMIDLIST pcidl)
STDMETHODIMP MessageSFVCB(UINT uMsg, WPARAM wParam, LPARAM lParam) override
#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)
#define FAILED_UNEXPECTEDLY(hr)
HRESULT WINAPI AssocCreate(CLSID clsid, REFIID refiid, void **lpInterface)
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 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)