ReactOS 0.4.15-dev-5895-g2687c1b
CCommonFolder< TSelf, TItemId, TExtractIcon > Class Template Reference

#include <foldercommon.h>

Inheritance diagram for CCommonFolder< TSelf, TItemId, TExtractIcon >:
Collaboration diagram for CCommonFolder< TSelf, TItemId, TExtractIcon >:

Public Member Functions

 CCommonFolder ()
 
virtual ~CCommonFolder ()
 
virtual HRESULT STDMETHODCALLTYPE ParseDisplayName (HWND hwndOwner, LPBC pbcReserved, LPOLESTR lpszDisplayName, ULONG *pchEaten, LPITEMIDLIST *ppidl, ULONG *pdwAttributes)
 
virtual HRESULT STDMETHODCALLTYPE EnumObjects (HWND hwndOwner, SHCONTF grfFlags, IEnumIDList **ppenumIDList) PURE
 
virtual HRESULT STDMETHODCALLTYPE BindToObject (LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void **ppvOut)
 
virtual HRESULT STDMETHODCALLTYPE BindToStorage (LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void **ppvObj)
 
virtual HRESULT STDMETHODCALLTYPE CompareIDs (LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
 
virtual HRESULT STDMETHODCALLTYPE CreateViewObject (HWND hwndOwner, REFIID riid, void **ppvOut)
 
virtual HRESULT STDMETHODCALLTYPE GetAttributesOf (UINT cidl, PCUITEMID_CHILD_ARRAY apidl, SFGAOF *rgfInOut)
 
virtual HRESULT STDMETHODCALLTYPE GetUIObjectOf (HWND hwndOwner, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, REFIID riid, UINT *prgfInOut, void **ppvOut)
 
virtual HRESULT STDMETHODCALLTYPE GetDisplayNameOf (LPCITEMIDLIST pidl, SHGDNF uFlags, STRRET *lpName)
 
virtual HRESULT STDMETHODCALLTYPE SetNameOf (HWND hwnd, LPCITEMIDLIST pidl, LPCOLESTR lpszName, SHGDNF uFlags, LPITEMIDLIST *ppidlOut)
 
virtual HRESULT STDMETHODCALLTYPE GetDefaultSearchGUID (GUID *lpguid)
 
virtual HRESULT STDMETHODCALLTYPE EnumSearches (IEnumExtraSearch **ppenum)
 
virtual HRESULT STDMETHODCALLTYPE GetDefaultColumn (DWORD dwReserved, ULONG *pSort, ULONG *pDisplay)
 
virtual HRESULT STDMETHODCALLTYPE GetDefaultColumnState (UINT iColumn, SHCOLSTATEF *pcsFlags) PURE
 
virtual HRESULT STDMETHODCALLTYPE GetDetailsEx (LPCITEMIDLIST pidl, const SHCOLUMNID *pscid, VARIANT *pv) PURE
 
virtual HRESULT STDMETHODCALLTYPE GetDetailsOf (LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS *psd) PURE
 
virtual HRESULT STDMETHODCALLTYPE MapColumnToSCID (UINT iColumn, SHCOLUMNID *pscid) PURE
 
virtual HRESULT STDMETHODCALLTYPE GetClassID (CLSID *lpClassId)
 
virtual HRESULT STDMETHODCALLTYPE Initialize (PCIDLIST_ABSOLUTE pidl)
 
virtual HRESULT STDMETHODCALLTYPE GetCurFolder (PIDLIST_ABSOLUTE *pidl)
 
- Public Member Functions inherited from ATL::CComObjectRootEx< CComMultiThreadModelNoCS >
 ~CComObjectRootEx ()
 
ULONG InternalAddRef ()
 
ULONG InternalRelease ()
 
void Lock ()
 
void Unlock ()
 
HRESULT _AtlInitialConstruct ()
 
- Public Member Functions inherited from ATL::CComObjectRootBase
 CComObjectRootBase ()
 
 ~CComObjectRootBase ()
 
void SetVoid (void *)
 
HRESULT _AtlFinalConstruct ()
 
HRESULT FinalConstruct ()
 
void InternalFinalConstructAddRef ()
 
void InternalFinalConstructRelease ()
 
void FinalRelease ()
 
- Public Member Functions inherited from IShellFolder2
HRESULT GetDefaultSearchGUID ([out] GUID *lpguid)
 
HRESULT EnumSearches ([out] IEnumExtraSearch **ppenum)
 
HRESULT GetDefaultColumn ([in] DWORD dwReserved, [out] ULONG *pSort, [out] ULONG *pDisplay)
 
HRESULT GetDefaultColumnState ([in] UINT iColumn, [out] SHCOLSTATEF *pcsFlags)
 
HRESULT GetDetailsEx ([in] PCUITEMID_CHILD pidl, [in] const SHCOLUMNID *pscid, [out] VARIANT *pv)
 
HRESULT GetDetailsOf ([in] PCUITEMID_CHILD pidl, [in] UINT iColumn, [out] SHELLDETAILS *psd)
 
HRESULT MapColumnToSCID ([in] UINT iColumn, [in] SHCOLUMNID *pscid)
 
- Public Member Functions inherited from IShellFolder
HRESULT ParseDisplayName ([in] HWND hwndOwner, [in] LPBC pbcReserved, [in, string] LPOLESTR lpszDisplayName, [out] ULONG *pchEaten, [out] PIDLIST_RELATIVE *ppidl, [in, out, unique] ULONG *pdwAttributes)
 
HRESULT EnumObjects ([in] HWND hwndOwner, [in] SHCONTF grfFlags, [out] IEnumIDList **ppenumIDList)
 
HRESULT BindToObject ([in] PCUIDLIST_RELATIVE pidl, [in] LPBC pbcReserved, [in] REFIID riid, [out, iid_is(riid)] void **ppvOut)
 
HRESULT BindToStorage ([in] PCUIDLIST_RELATIVE pidl, [in] LPBC pbcReserved, [in] REFIID riid, [out, iid_is(riid)] void **ppvObj)
 
HRESULT CompareIDs ([in] LPARAM lParam, [in] PCUIDLIST_RELATIVE pidl1, [in] PCUIDLIST_RELATIVE pidl2)
 
HRESULT CreateViewObject ([in] HWND hwndOwner, [in] REFIID riid, [out, iid_is(riid)] void **ppvOut)
 
HRESULT GetAttributesOf ([in] UINT cidl, [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl, [in, out] SFGAOF *rgfInOut)
 
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)
 
HRESULT GetDisplayNameOf ([in] PCUITEMID_CHILD pidl, [in] SHGDNF uFlags, [out] STRRET *lpName)
 
HRESULT SetNameOf ([in] HWND hwnd, [in] PCUITEMID_CHILD pidl, [in, string] LPCOLESTR lpszName, [in] SHGDNF uFlags, [out] PITEMID_CHILD *ppidlOut)
 
- Public Member Functions inherited from IUnknown
HRESULT QueryInterface ([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
 
ULONG AddRef ()
 
ULONG Release ()
 
HRESULT GetCurFolder ([out] PIDLIST_ABSOLUTE *ppidl)
 
HRESULT Initialize ([in] PCIDLIST_ABSOLUTE pidl)
 
HRESULT GetClassID ([out] CLSID *pClassID)
 

Static Public Member Functions

static HRESULT CALLBACK DefCtxMenuCallback (IShellFolder *, HWND, IDataObject *, UINT uMsg, WPARAM, LPARAM)
 
- Static Public Member Functions inherited from ATL::CComObjectRootBase
static void WINAPI ObjectMain (bool)
 
static const struct _ATL_CATMAP_ENTRYGetCategoryMap ()
 
static HRESULT WINAPI InternalQueryInterface (void *pThis, const _ATL_INTMAP_ENTRY *pEntries, REFIID iid, void **ppvObject)
 

Protected Member Functions

virtual HRESULT STDMETHODCALLTYPE InternalBindToObject (PWSTR path, const TItemId *info, LPITEMIDLIST first, LPCITEMIDLIST rest, LPITEMIDLIST fullPidl, LPBC pbcReserved, IShellFolder **ppsfChild) PURE
 
virtual HRESULT STDMETHODCALLTYPE ResolveSymLink (const TItemId *info, LPITEMIDLIST *fullPidl)
 
virtual HRESULT STDMETHODCALLTYPE CompareName (LPARAM lParam, const TItemId *first, const TItemId *second)
 
virtual HRESULT STDMETHODCALLTYPE CompareIDs (LPARAM lParam, const TItemId *first, const TItemId *second) PURE
 
virtual ULONG STDMETHODCALLTYPE ConvertAttributes (const TItemId *entry, PULONG inMask) PURE
 
virtual BOOL STDMETHODCALLTYPE IsFolder (LPCITEMIDLIST pcidl)
 
virtual BOOL STDMETHODCALLTYPE IsFolder (const TItemId *info) PURE
 
virtual BOOL STDMETHODCALLTYPE IsSymLink (LPCITEMIDLIST pcidl)
 
virtual BOOL STDMETHODCALLTYPE IsSymLink (const TItemId *info)
 
virtual HRESULT GetInfoFromPidl (LPCITEMIDLIST pcidl, const TItemId **pentry) PURE
 

Protected Attributes

WCHAR m_NtPath [MAX_PATH]
 
LPITEMIDLIST m_shellPidl
 

Additional Inherited Members

- Public Types inherited from IShellFolder2
typedef struct IShellFolder2::SHCOLUMNIDLPSHCOLUMNID
 
typedef const SHCOLUMNIDLPCSHCOLUMNID
 
- Public Types inherited from IShellFolder
enum  tagSHGDN {
  SHGDN_NORMAL = 0 , SHGDN_INFOLDER = 1 , SHGDN_FOREDITING = 0x1000 , SHGDN_INCLUDE_NONFILESYS = 0x2000 ,
  SHGDN_FORADDRESSBAR = 0x4000 , SHGDN_FORPARSING = 0x8000
}
 
enum  tagSHCONTF {
  SHCONTF_FOLDERS = 32 , SHCONTF_NONFOLDERS = 64 , SHCONTF_INCLUDEHIDDEN = 128 , SHCONTF_INIT_ON_FIRST_NEXT = 256 ,
  SHCONTF_NETPRINTERSRCH = 512 , SHCONTF_SHAREABLE = 1024 , SHCONTF_STORAGE = 2048 , SHCONTF_NAVIGATION_ENUM = 0x01000 ,
  SHCONTF_FASTITEMS = 0x02000 , SHCONTF_FLATLIST = 0x04000 , SHCONTF_ENABLE_ASYNC = 0x08000 , SHCONTF_INCLUDESUPERHIDDEN = 0x10000
}
 
typedef IShellFolderLPSHELLFOLDER
 
typedef enum IShellFolder::tagSHGDN SHGNO
 
typedef DWORD SHGDNF
 
typedef DWORD SHCONTF
 
typedef ULONG SFGAOF
 
- Public Types inherited from IUnknown
typedef IUnknownLPUNKNOWN
 
- Public Types inherited from IPersistFolder2
typedef IPersistFolder2LPPERSISTFOLDER2
 
- Public Types inherited from IPersistFolder
typedef IPersistFolderLPPERSISTFOLDER
 
- Public Types inherited from IPersist
typedef IPersistLPPERSIST
 
- Public Attributes inherited from ATL::CComObjectRootBase
LONG m_dwRef
 

Detailed Description

template<class TSelf, typename TItemId, class TExtractIcon>
class CCommonFolder< TSelf, TItemId, TExtractIcon >

Definition at line 60 of file foldercommon.h.

Constructor & Destructor Documentation

◆ CCommonFolder()

template<class TSelf , typename TItemId , class TExtractIcon >
CCommonFolder< TSelf, TItemId, TExtractIcon >::CCommonFolder ( )
inline

Definition at line 72 of file foldercommon.h.

72 :
74 {
75 }
LPITEMIDLIST m_shellPidl
Definition: foldercommon.h:68
#define NULL
Definition: types.h:112

◆ ~CCommonFolder()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual CCommonFolder< TSelf, TItemId, TExtractIcon >::~CCommonFolder ( )
inlinevirtual

Definition at line 77 of file foldercommon.h.

78 {
79 if (m_shellPidl)
81 }
void WINAPI ILFree(LPITEMIDLIST pidl)
Definition: pidl.c:925

Member Function Documentation

◆ BindToObject()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::BindToObject ( LPCITEMIDLIST  pidl,
LPBC  pbcReserved,
REFIID  riid,
void **  ppvOut 
)
inlinevirtual

Definition at line 168 of file foldercommon.h.

173 {
174 const TItemId * info;
175
176 if (IsEqualIID(riid, IID_IShellFolder))
177 {
178 HRESULT hr = GetInfoFromPidl(pidl, &info);
180 return hr;
181
183
184 StringCbCopyW(path, sizeof(path), m_NtPath);
185 PathAppendW(path, info->entryName);
186
188 LPCITEMIDLIST rest = ILGetNext(pidl);
189
191
192 CComPtr<IShellFolder> psfChild;
193 hr = InternalBindToObject(path, info, first, rest, fullPidl, pbcReserved, &psfChild);
194
195 ILFree(fullPidl);
196 ILFree(first);
197
198 if (FAILED(hr))
199 return hr;
200
201 if (hr == S_FALSE)
202 return S_OK;
203
204 if (rest->mkid.cb > 0)
205 {
206 return psfChild->BindToObject(rest, pbcReserved, riid, ppvOut);
207 }
208
209 return psfChild->QueryInterface(riid, ppvOut);
210 }
211
212 return E_NOTIMPL;
213 }
virtual HRESULT STDMETHODCALLTYPE InternalBindToObject(PWSTR path, const TItemId *info, LPITEMIDLIST first, LPCITEMIDLIST rest, LPITEMIDLIST fullPidl, LPBC pbcReserved, IShellFolder **ppsfChild) PURE
virtual HRESULT GetInfoFromPidl(LPCITEMIDLIST pcidl, const TItemId **pentry) PURE
WCHAR m_NtPath[MAX_PATH]
Definition: foldercommon.h:66
#define E_NOTIMPL
Definition: ddrawi.h:99
#define MAX_PATH
Definition: compat.h:34
BOOL WINAPI PathAppendW(LPWSTR lpszPath, LPCWSTR lpszAppend)
Definition: path.c:126
const GLint * first
Definition: glext.h:5794
REFIID riid
Definition: atlbase.h:39
#define S_OK
Definition: intsafe.h:52
#define FAILED(hr)
Definition: intsafe.h:51
LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
Definition: pidl.c:699
LPITEMIDLIST WINAPI ILCloneFirst(LPCITEMIDLIST pidl)
Definition: pidl.c:253
LPITEMIDLIST WINAPI ILGetNext(LPCITEMIDLIST pidl)
Definition: pidl.c:851
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
#define FAILED_UNEXPECTEDLY(hr)
Definition: shellutils.h:82
HRESULT hr
Definition: shlfolder.c:183
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
Definition: shtypes.idl:42
STRSAFEAPI StringCbCopyW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)
Definition: strsafe.h:166
#define S_FALSE
Definition: winerror.h:2357
__wchar_t WCHAR
Definition: xmlstorage.h:180

◆ BindToStorage()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::BindToStorage ( LPCITEMIDLIST  pidl,
LPBC  pbcReserved,
REFIID  riid,
void **  ppvObj 
)
inlinevirtual

Definition at line 234 of file foldercommon.h.

239 {
241 return E_NOTIMPL;
242 }
#define UNIMPLEMENTED
Definition: debug.h:115

◆ CompareIDs() [1/2]

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::CompareIDs ( LPARAM  lParam,
const TItemId *  first,
const TItemId *  second 
)
protectedvirtual

Reimplemented in CNtObjectFolder, and CRegistryFolder.

◆ CompareIDs() [2/2]

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::CompareIDs ( LPARAM  lParam,
LPCITEMIDLIST  pidl1,
LPCITEMIDLIST  pidl2 
)
inlinevirtual

Definition at line 244 of file foldercommon.h.

248 {
249 HRESULT hr;
250
251 TRACE("CompareIDs %d\n", lParam);
252
253 const TItemId * id1;
254 hr = GetInfoFromPidl(pidl1, &id1);
255 if (FAILED(hr))
256 return E_INVALIDARG;
257
258 const TItemId * id2;
259 hr = GetInfoFromPidl(pidl2, &id2);
260 if (FAILED(hr))
261 return E_INVALIDARG;
262
263 hr = CompareIDs(lParam, id1, id2);
264 if (hr != S_EQUAL)
265 return hr;
266
267 // The wollowing snipped is basically SHELL32_CompareChildren
268
269 PUIDLIST_RELATIVE rest1 = ILGetNext(pidl1);
270 PUIDLIST_RELATIVE rest2 = ILGetNext(pidl2);
271
272 bool isEmpty1 = (rest1->mkid.cb == 0);
273 bool isEmpty2 = (rest2->mkid.cb == 0);
274
275 if (isEmpty1 || isEmpty2)
276 return MAKE_COMPARE_HRESULT(isEmpty2 - isEmpty1);
277
278 LPCITEMIDLIST first1 = ILCloneFirst(pidl1);
279 if (!first1)
280 return E_OUTOFMEMORY;
281
282 CComPtr<IShellFolder> psfNext;
283 hr = BindToObject(first1, NULL, IID_PPV_ARG(IShellFolder, &psfNext));
285 return hr;
286
287 return psfNext->CompareIDs(lParam, rest1, rest2);
288 }
virtual HRESULT STDMETHODCALLTYPE BindToObject(LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void **ppvOut)
Definition: foldercommon.h:168
virtual HRESULT STDMETHODCALLTYPE CompareIDs(LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
Definition: foldercommon.h:244
LPARAM lParam
Definition: combotst.c:139
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define E_INVALIDARG
Definition: ddrawi.h:101
#define MAKE_COMPARE_HRESULT(x)
Definition: shellutils.h:561
#define S_EQUAL
Definition: shellutils.h:559
ITEMIDLIST_RELATIVE UNALIGNED * PUIDLIST_RELATIVE
Definition: shtypes.idl:55
#define TRACE(s)
Definition: solgame.cpp:4
#define IID_PPV_ARG(Itype, ppType)

◆ CompareName()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::CompareName ( LPARAM  lParam,
const TItemId *  first,
const TItemId *  second 
)
inlineprotectedvirtual

Definition at line 291 of file foldercommon.h.

295 {
296 bool f1 = IsFolder(first);
297 bool f2 = IsFolder(second);
298
300 if (hr != S_EQUAL)
301 return hr;
302
303 bool canonical = (lParam & 0xFFFF0000) == SHCIDS_CANONICALONLY;
304 if (canonical)
305 {
306 // Shortcut: avoid comparing contents if not necessary when the results are not for display.
307 hr = MAKE_COMPARE_HRESULT(second->entryNameLength - first->entryNameLength);
308 if (hr != S_EQUAL)
309 return hr;
310
311 int minlength = min(first->entryNameLength, second->entryNameLength);
312 if (minlength > 0)
313 {
314 hr = MAKE_COMPARE_HRESULT(memcmp(first->entryName, second->entryName, minlength));
315 if (hr != S_EQUAL)
316 return hr;
317 }
318
319 return S_EQUAL;
320 }
321
322 int minlength = min(first->entryNameLength, second->entryNameLength);
323 if (minlength > 0)
324 {
325 hr = MAKE_COMPARE_HRESULT(StrCmpNW(first->entryName, second->entryName, minlength / sizeof(WCHAR)));
326 if (hr != S_EQUAL)
327 return hr;
328 }
329
330 return MAKE_COMPARE_HRESULT(second->entryNameLength - first->entryNameLength);
331 }
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
Definition: utclib.c:112
virtual BOOL STDMETHODCALLTYPE IsFolder(LPCITEMIDLIST pcidl)
Definition: foldercommon.h:666
#define SHCIDS_CANONICALONLY
Definition: precomp.h:50
INT WINAPI StrCmpNW(LPCWSTR lpszStr, LPCWSTR lpszComp, INT iLen)
Definition: string.c:504
#define min(a, b)
Definition: monoChain.cc:55
#define f2(x, y, z)
Definition: sha1.c:31
#define f1(x, y, z)
Definition: sha1.c:30

◆ ConvertAttributes()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual ULONG STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::ConvertAttributes ( const TItemId *  entry,
PULONG  inMask 
)
protectedvirtual

Reimplemented in CNtObjectFolder, and CRegistryFolder.

◆ CreateViewObject()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::CreateViewObject ( HWND  hwndOwner,
REFIID  riid,
void **  ppvOut 
)
inlinevirtual

Implements IShellFolder.

Definition at line 334 of file foldercommon.h.

338 {
339 if (!IsEqualIID(riid, IID_IShellView))
340 return E_NOINTERFACE;
341
342 _CComObject<CFolderViewCB> *pcb;
343
344 HRESULT hr = _CComObject<CFolderViewCB>::CreateInstance(&pcb);
345 if (FAILED(hr))
346 return hr;
347
348 pcb->AddRef();
349
350 SFV_CREATE sfv;
351 sfv.cbSize = sizeof(sfv);
352 sfv.pshf = this;
353 sfv.psvOuter = NULL;
354 sfv.psfvcb = pcb;
355
357
359 if (FAILED(hr))
360 return hr;
361
362 pcb->Initialize(view);
363
364 pcb->Release();
365
366 *ppvOut = view;
367
368 return S_OK;
369 }
HRESULT WINAPI SHCreateShellFolderView(const SFV_CREATE *pcsfv, IShellView **ppsv)
Definition: CDefView.cpp:3931
ULONG AddRef()
ULONG Release()
IShellFolderViewCB * psfvcb
Definition: shlobj.h:1285
IShellView * psvOuter
Definition: shlobj.h:1284
UINT cbSize
Definition: shlobj.h:1282
IShellFolder * pshf
Definition: shlobj.h:1283
#define E_NOINTERFACE
Definition: winerror.h:2364

◆ DefCtxMenuCallback()

template<class TSelf , typename TItemId , class TExtractIcon >
static HRESULT CALLBACK CCommonFolder< TSelf, TItemId, TExtractIcon >::DefCtxMenuCallback ( IShellFolder ,
HWND  ,
IDataObject ,
UINT  uMsg,
WPARAM  ,
LPARAM   
)
inlinestatic

Definition at line 698 of file foldercommon.h.

699 {
700 switch (uMsg)
701 {
703 return S_OK;
704
707 case DFM_GETDEFSTATICID: // Required for Windows 7 to pick a default
708 return S_FALSE;
709 }
710 return E_NOTIMPL;
711 }
#define DFM_GETDEFSTATICID
Definition: precomp.h:47
#define DFM_INVOKECOMMANDEX
Definition: precomp.h:46
#define DFM_MERGECONTEXTMENU
Definition: precomp.h:44
#define DFM_INVOKECOMMAND
Definition: precomp.h:45

◆ EnumObjects()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::EnumObjects ( HWND  hwndOwner,
SHCONTF  grfFlags,
IEnumIDList **  ppenumIDList 
)
virtual

Implements IShellFolder.

Reimplemented in CNtObjectFolder, and CRegistryFolder.

◆ EnumSearches()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::EnumSearches ( IEnumExtraSearch **  ppenum)
inlinevirtual

Implements IShellFolder2.

Definition at line 588 of file foldercommon.h.

590 {
592 return E_NOTIMPL;
593 }

◆ GetAttributesOf()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::GetAttributesOf ( UINT  cidl,
PCUITEMID_CHILD_ARRAY  apidl,
SFGAOF rgfInOut 
)
inlinevirtual

Implements IShellFolder.

Definition at line 371 of file foldercommon.h.

375 {
376 const TItemId * info;
377
378 TRACE("GetAttributesOf %d\n", cidl);
379
380 if (cidl == 0)
381 {
382 *rgfInOut &= SFGAO_FOLDER | SFGAO_HASSUBFOLDER | SFGAO_BROWSABLE;
383 return S_OK;
384 }
385
386 for (int i = 0; i < (int)cidl; i++)
387 {
388 PCUITEMID_CHILD pidl = apidl[i];
389
390 HRESULT hr = GetInfoFromPidl(pidl, &info);
392 return hr;
393
394 // Update attributes.
395 *rgfInOut = ConvertAttributes(info, rgfInOut);
396 }
397
398 return S_OK;
399 }
virtual ULONG STDMETHODCALLTYPE ConvertAttributes(const TItemId *entry, PULONG inMask) PURE
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
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
Definition: glfuncs.h:248
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
Definition: shtypes.idl:70

◆ GetClassID()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::GetClassID ( CLSID lpClassId)
inlinevirtual

Implements IPersist.

Definition at line 626 of file foldercommon.h.

627 {
628 if (!lpClassId)
629 return E_POINTER;
630
631 *lpClassId = CLSID_NtObjectFolder;
632 return S_OK;
633 }
const GUID CLSID_NtObjectFolder
Definition: ntobjfolder.cpp:13
#define E_POINTER
Definition: winerror.h:2365

◆ GetCurFolder()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::GetCurFolder ( PIDLIST_ABSOLUTE pidl)
inlinevirtual

Implements IPersistFolder2.

Definition at line 646 of file foldercommon.h.

647 {
648 if (pidl)
649 *pidl = ILClone(m_shellPidl);
650 if (!m_shellPidl)
651 return S_FALSE;
652 return S_OK;
653 }
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
Definition: pidl.c:228

◆ GetDefaultColumn()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::GetDefaultColumn ( DWORD  dwReserved,
ULONG pSort,
ULONG pDisplay 
)
inlinevirtual

Implements IShellFolder2.

Definition at line 595 of file foldercommon.h.

599 {
600 if (pSort)
601 *pSort = 0;
602 if (pDisplay)
603 *pDisplay = 0;
604 return S_OK;
605 }

◆ GetDefaultColumnState()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::GetDefaultColumnState ( UINT  iColumn,
SHCOLSTATEF pcsFlags 
)
virtual

Implements IShellFolder2.

Reimplemented in CNtObjectFolder, and CRegistryFolder.

◆ GetDefaultSearchGUID()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::GetDefaultSearchGUID ( GUID lpguid)
inlinevirtual

Implements IShellFolder2.

Definition at line 581 of file foldercommon.h.

583 {
585 return E_NOTIMPL;
586 }

◆ GetDetailsEx()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::GetDetailsEx ( LPCITEMIDLIST  pidl,
const SHCOLUMNID pscid,
VARIANT pv 
)
virtual

Reimplemented in CNtObjectFolder, and CRegistryFolder.

◆ GetDetailsOf()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::GetDetailsOf ( LPCITEMIDLIST  pidl,
UINT  iColumn,
SHELLDETAILS psd 
)
virtual

Reimplemented in CNtObjectFolder, and CRegistryFolder.

◆ GetDisplayNameOf()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::GetDisplayNameOf ( LPCITEMIDLIST  pidl,
SHGDNF  uFlags,
STRRET lpName 
)
inlinevirtual

Definition at line 502 of file foldercommon.h.

506 {
507 const TItemId * info;
508
509 TRACE("GetDisplayNameOf %p\n", pidl);
510
511 HRESULT hr = GetInfoFromPidl(pidl, &info);
513 return hr;
514
516 {
517 hr = MakeStrRetFromString(info->entryName, info->entryNameLength, lpName);
519 return hr;
520 }
521
522 WCHAR path[MAX_PATH] = { 0 };
523
525 {
527 {
530 return hr;
531 }
532 }
533
534 PathAppendW(path, info->entryName);
535
536 LPCITEMIDLIST pidlNext = ILGetNext(pidl);
537 if (pidlNext && pidlNext->mkid.cb > 0)
538 {
539 LPITEMIDLIST pidlFirst = ILCloneFirst(pidl);
540
541 CComPtr<IShellFolder> psfChild;
542 hr = BindToObject(pidlFirst, NULL, IID_PPV_ARG(IShellFolder, &psfChild));
544 return hr;
545
547 STRRET childName;
548
549 hr = psfChild->GetDisplayNameOf(pidlNext, uFlags | SHGDN_INFOLDER, &childName);
551 return hr;
552
553 hr = StrRetToBufW(&childName, pidlNext, temp, _countof(temp));
555 return hr;
556
558
559 ILFree(pidlFirst);
560 }
561
564 return hr;
565
566 return S_OK;
567 }
#define GET_SHGDN_RELATION(dwFlags)
Definition: precomp.h:53
#define GET_SHGDN_FOR(dwFlags)
Definition: precomp.h:52
HRESULT INLINE GetFullName(PCIDLIST_ABSOLUTE pidl, DWORD uFlags, PWSTR strName, DWORD cchName)
Definition: util.h:29
HRESULT INLINE MakeStrRetFromString(LPCWSTR string, DWORD cbLength, STRRET *str)
Definition: util.h:7
UINT uFlags
Definition: api.c:59
HRESULT WINAPI StrRetToBufW(LPSTRRET src, const ITEMIDLIST *pidl, LPWSTR dest, UINT len)
Definition: string.c:1522
static calc_node_t temp
Definition: rpn_ieee.c:38
#define _countof(array)
Definition: sndvol32.h:68
_In_ LPCSTR lpName
Definition: winbase.h:2776

◆ GetInfoFromPidl()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT CCommonFolder< TSelf, TItemId, TExtractIcon >::GetInfoFromPidl ( LPCITEMIDLIST  pcidl,
const TItemId **  pentry 
)
protectedvirtual

Reimplemented in CNtObjectFolder, and CRegistryFolder.

◆ GetUIObjectOf()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::GetUIObjectOf ( HWND  hwndOwner,
UINT  cidl,
PCUITEMID_CHILD_ARRAY  apidl,
REFIID  riid,
UINT prgfInOut,
void **  ppvOut 
)
inlinevirtual

Implements IShellFolder.

Definition at line 401 of file foldercommon.h.

408 {
409 DWORD res;
410 TRACE("GetUIObjectOf\n");
411
412 if (IsEqualIID(riid, IID_IContextMenu) ||
413 IsEqualIID(riid, IID_IContextMenu2) ||
414 IsEqualIID(riid, IID_IContextMenu3))
415 {
416 CComPtr<IContextMenu> pcm;
417
418 HKEY keys[1];
419
421
422 CComPtr<IShellFolder> psfParent = this;
423
425
426 int nkeys = _countof(keys);
427 if (cidl == 1 && IsSymLink(apidl[0]))
428 {
429 const TItemId * info;
430 HRESULT hr = GetInfoFromPidl(apidl[0], &info);
431 if (FAILED(hr))
432 return hr;
433
436 if (FAILED(hr))
437 return hr;
438
439 CComPtr<IShellFolder> psfTarget;
441 if (FAILED(hr))
442 {
443 ILFree(target);
444 return hr;
445 }
446
449 psfParent = psfTarget;
450
451 apidl = &child;
452 }
453
454 if (cidl == 1 && IsFolder(apidl[0]))
455 {
456 res = RegOpenKey(HKEY_CLASSES_ROOT, L"Folder", keys + 0);
457 if (!NT_SUCCESS(res))
458 return HRESULT_FROM_NT(res);
459 }
460 else
461 {
462 nkeys = 0;
463 }
464
465 HRESULT hr = CDefFolderMenu_Create2(parent, hwndOwner, cidl, apidl, psfParent, DefCtxMenuCallback, nkeys, keys, &pcm);
467 return hr;
468
469 return pcm->QueryInterface(riid, ppvOut);
470 }
471
472 if (IsEqualIID(riid, IID_IExtractIconW))
473 {
474 return ShellObjectCreatorInit<TExtractIcon>(m_NtPath, m_shellPidl, cidl, apidl, riid, ppvOut);
475 }
476
478 {
479 return CIDLData_CreateFromIDArray(m_shellPidl, cidl, apidl, (IDataObject**)ppvOut);
480 }
481
482 if (IsEqualIID(riid, IID_IQueryAssociations))
483 {
484 if (cidl == 1 && IsFolder(apidl[0]))
485 {
486 CComPtr<IQueryAssociations> pqa;
487 HRESULT hr = AssocCreate(CLSID_QueryAssociations, IID_PPV_ARG(IQueryAssociations, &pqa));
489 return hr;
490
491 hr = pqa->Init(ASSOCF_INIT_DEFAULTTOFOLDER, L"NTObjShEx.NTDirectory", NULL, hwndOwner);
493 return hr;
494
495 return pqa->QueryInterface(riid, ppvOut);
496 }
497 }
498
499 return E_NOTIMPL;
500 }
HRESULT WINAPI CDefFolderMenu_Create2(PCIDLIST_ABSOLUTE pidlFolder, HWND hwnd, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, IShellFolder *psf, LPFNDFMCALLBACK lpfn, UINT nKeys, const HKEY *ahkeyClsKeys, IContextMenu **ppcm)
virtual HRESULT STDMETHODCALLTYPE ResolveSymLink(const TItemId *info, LPITEMIDLIST *fullPidl)
Definition: foldercommon.h:225
static HRESULT CALLBACK DefCtxMenuCallback(IShellFolder *, HWND, IDataObject *, UINT uMsg, WPARAM, LPARAM)
Definition: foldercommon.h:698
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
HRESULT WINAPI AssocCreate(CLSID clsid, REFIID refiid, void **lpInterface)
Definition: assoc.c:89
r parent
Definition: btrfs.c:3010
#define IsSymLink(Fcb)
Definition: ext2fs.h:280
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint res
Definition: glext.h:9613
GLenum target
Definition: glext.h:7315
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
static HWND child
Definition: cursoricon.c:298
#define L(x)
Definition: ntvdm.h:50
const GUID IID_IDataObject
BOOL WINAPI ILRemoveLastID(LPITEMIDLIST pidl)
Definition: pidl.c:212
HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast)
Definition: pidl.c:1337
HRESULT WINAPI CIDLData_CreateFromIDArray(PCIDLIST_ABSOLUTE pidlFolder, UINT cpidlFiles, PCUIDLIST_RELATIVE_ARRAY lppidlFiles, LPDATAOBJECT *ppdataObject)
Definition: shellord.c:2173
@ ASSOCF_INIT_DEFAULTTOFOLDER
Definition: shlwapi.h:586
#define HRESULT_FROM_NT(x)
Definition: winerror.h:94
#define RegOpenKey
Definition: winreg.h:519
#define HKEY_CLASSES_ROOT
Definition: winreg.h:10

◆ Initialize()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::Initialize ( PCIDLIST_ABSOLUTE  pidl)
inlinevirtual

Implements IPersistFolder.

Reimplemented in CNtObjectFolder, and CRegistryFolder.

Definition at line 636 of file foldercommon.h.

637 {
638 m_shellPidl = ILClone(pidl);
639
640 StringCbCopyW(m_NtPath, sizeof(m_NtPath), L"\\");
641
642 return S_OK;
643 }

◆ InternalBindToObject()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::InternalBindToObject ( PWSTR  path,
const TItemId *  info,
LPITEMIDLIST  first,
LPCITEMIDLIST  rest,
LPITEMIDLIST  fullPidl,
LPBC  pbcReserved,
IShellFolder **  ppsfChild 
)
protectedvirtual

Reimplemented in CNtObjectFolder, and CRegistryFolder.

◆ IsFolder() [1/2]

template<class TSelf , typename TItemId , class TExtractIcon >
virtual BOOL STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::IsFolder ( const TItemId *  info)
protectedvirtual

Reimplemented in CNtObjectFolder, and CRegistryFolder.

◆ IsFolder() [2/2]

template<class TSelf , typename TItemId , class TExtractIcon >
virtual BOOL STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::IsFolder ( LPCITEMIDLIST  pcidl)
inlineprotectedvirtual

Definition at line 666 of file foldercommon.h.

667 {
668 const TItemId * info;
669
670 HRESULT hr = GetInfoFromPidl(pcidl, &info);
671 if (FAILED(hr))
672 return hr;
673
674 return IsFolder(info);
675 }

◆ IsSymLink() [1/2]

template<class TSelf , typename TItemId , class TExtractIcon >
virtual BOOL STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::IsSymLink ( const TItemId *  info)
inlineprotectedvirtual

Reimplemented in CNtObjectFolder.

Definition at line 690 of file foldercommon.h.

691 {
692 return FALSE;
693 }
#define FALSE
Definition: types.h:117

◆ IsSymLink() [2/2]

template<class TSelf , typename TItemId , class TExtractIcon >
virtual BOOL STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::IsSymLink ( LPCITEMIDLIST  pcidl)
inlineprotectedvirtual

Definition at line 679 of file foldercommon.h.

680 {
681 const TItemId * info;
682
683 HRESULT hr = GetInfoFromPidl(pcidl, &info);
684 if (FAILED(hr))
685 return hr;
686
687 return IsSymLink(info);
688 }

◆ MapColumnToSCID()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::MapColumnToSCID ( UINT  iColumn,
SHCOLUMNID pscid 
)
virtual

Implements IShellFolder2.

Reimplemented in CNtObjectFolder, and CRegistryFolder.

◆ ParseDisplayName()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::ParseDisplayName ( HWND  hwndOwner,
LPBC  pbcReserved,
LPOLESTR  lpszDisplayName,
ULONG pchEaten,
LPITEMIDLIST ppidl,
ULONG pdwAttributes 
)
inlinevirtual

Definition at line 84 of file foldercommon.h.

91 {
92 if (!ppidl)
93 return E_POINTER;
94
95 if (pchEaten)
96 *pchEaten = 0;
97
98 if (pdwAttributes)
99 *pdwAttributes = 0;
100
101 TRACE("CCommonFolder::ParseDisplayName name=%S (ntPath=%S)\n", lpszDisplayName, m_NtPath);
102
103 const TItemId * info;
104 IEnumIDList * it;
106 if (FAILED(hr))
107 return hr;
108
109 PWSTR end = StrChrW(lpszDisplayName, '\\');
110 int length = end ? end - lpszDisplayName : wcslen(lpszDisplayName);
111
112 while (TRUE)
113 {
114 hr = it->Next(1, ppidl, NULL);
115
116 if (FAILED(hr))
117 return hr;
118
119 if (hr != S_OK)
121
122 hr = GetInfoFromPidl(*ppidl, &info);
124 return hr;
125
126 if (StrCmpNW(info->entryName, lpszDisplayName, length) == 0)
127 break;
128 }
129
130 // if has remaining path to parse (and the path didn't just terminate in a backslash)
131 if (end && wcslen(end) > 1)
132 {
133 CComPtr<IShellFolder> psfChild;
134 hr = BindToObject(*ppidl, pbcReserved, IID_PPV_ARG(IShellFolder, &psfChild));
136 return hr;
137
139 hr = psfChild->ParseDisplayName(hwndOwner, pbcReserved, end + 1, pchEaten, &child, pdwAttributes);
140 if (FAILED(hr))
141 return hr;
142
143 LPITEMIDLIST old = *ppidl;
144 *ppidl = ILCombine(old, child);
145 ILFree(old);
146
147 // Count the path separator
148 if (pchEaten)
149 (*pchEaten) += 1;
150 }
151 else
152 {
153 if (pdwAttributes)
154 *pdwAttributes = ConvertAttributes(info, pdwAttributes);
155 }
156
157 if (pchEaten)
158 *pchEaten += wcslen(info->entryName);
159
160 return S_OK;
161 }
virtual HRESULT STDMETHODCALLTYPE EnumObjects(HWND hwndOwner, SHCONTF grfFlags, IEnumIDList **ppenumIDList) PURE
#define TRUE
Definition: types.h:120
LPWSTR WINAPI StrChrW(LPCWSTR lpszStr, WCHAR ch)
Definition: string.c:468
GLuint GLuint end
Definition: gl.h:1545
GLuint GLsizei GLsizei * length
Definition: glext.h:6040
_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)
@ SHCONTF_NONFOLDERS
Definition: shobjidl.idl:174
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
uint16_t * PWSTR
Definition: typedefs.h:56
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92

◆ ResolveSymLink()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::ResolveSymLink ( const TItemId *  info,
LPITEMIDLIST fullPidl 
)
inlineprotectedvirtual

Reimplemented in CNtObjectFolder.

Definition at line 225 of file foldercommon.h.

228 {
229 return E_NOTIMPL;
230 }

◆ SetNameOf()

template<class TSelf , typename TItemId , class TExtractIcon >
virtual HRESULT STDMETHODCALLTYPE CCommonFolder< TSelf, TItemId, TExtractIcon >::SetNameOf ( HWND  hwnd,
LPCITEMIDLIST  pidl,
LPCOLESTR  lpszName,
SHGDNF  uFlags,
LPITEMIDLIST ppidlOut 
)
inlinevirtual

Definition at line 569 of file foldercommon.h.

575 {
577 return E_NOTIMPL;
578 }

Member Data Documentation

◆ m_NtPath

template<class TSelf , typename TItemId , class TExtractIcon >
WCHAR CCommonFolder< TSelf, TItemId, TExtractIcon >::m_NtPath[MAX_PATH]
protected

Definition at line 66 of file foldercommon.h.

◆ m_shellPidl

template<class TSelf , typename TItemId , class TExtractIcon >
LPITEMIDLIST CCommonFolder< TSelf, TItemId, TExtractIcon >::m_shellPidl
protected

Definition at line 68 of file foldercommon.h.


The documentation for this class was generated from the following file: