ReactOS 0.4.16-dev-716-g2b2bdab
CRecycleBin Class Reference

#include <CRecycleBin.h>

Inheritance diagram for CRecycleBin:
Collaboration diagram for CRecycleBin:

Public Member Functions

 CRecycleBin ()
 
 ~CRecycleBin ()
 
STDMETHOD() GetClassID (CLSID *pClassID) override
 
STDMETHOD() Initialize (PCIDLIST_ABSOLUTE pidl) override
 
STDMETHOD() GetCurFolder (PIDLIST_ABSOLUTE *pidl) override
 
STDMETHOD() ParseDisplayName (HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, DWORD *pchEaten, PIDLIST_RELATIVE *ppidl, DWORD *pdwAttributes) override
 
STDMETHOD() EnumObjects (HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST *ppEnumIDList) override
 
STDMETHOD() BindToObject (PCUIDLIST_RELATIVE pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut) override
 
STDMETHOD() BindToStorage (PCUIDLIST_RELATIVE pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut) override
 
STDMETHOD() CompareIDs (LPARAM lParam, PCUIDLIST_RELATIVE pidl1, PCUIDLIST_RELATIVE pidl2) override
 
STDMETHOD() CreateViewObject (HWND hwndOwner, REFIID riid, LPVOID *ppvOut) override
 
STDMETHOD() GetAttributesOf (UINT cidl, PCUITEMID_CHILD_ARRAY apidl, DWORD *rgfInOut) override
 
STDMETHOD() GetUIObjectOf (HWND hwndOwner, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, REFIID riid, UINT *prgfInOut, LPVOID *ppvOut) override
 
STDMETHOD() GetDisplayNameOf (PCUITEMID_CHILD pidl, DWORD dwFlags, LPSTRRET strRet) override
 
STDMETHOD() SetNameOf (HWND hwndOwner, PCUITEMID_CHILD pidl, LPCOLESTR lpName, DWORD dwFlags, PITEMID_CHILD *pPidlOut) override
 
STDMETHOD() GetDefaultSearchGUID (GUID *pguid) override
 
STDMETHOD() EnumSearches (IEnumExtraSearch **ppenum) override
 
STDMETHOD() GetDefaultColumn (DWORD dwRes, ULONG *pSort, ULONG *pDisplay) override
 
STDMETHOD() GetDefaultColumnState (UINT iColumn, DWORD *pcsFlags) override
 
STDMETHOD() GetDetailsEx (PCUITEMID_CHILD pidl, const SHCOLUMNID *pscid, VARIANT *pv) override
 
STDMETHOD() GetDetailsOf (PCUITEMID_CHILD pidl, UINT iColumn, SHELLDETAILS *psd) override
 
STDMETHOD() MapColumnToSCID (UINT column, SHCOLUMNID *pscid) override
 
STDMETHOD() QueryContextMenu (HMENU hMenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) override
 
STDMETHOD() InvokeCommand (LPCMINVOKECOMMANDINFO lpcmi) override
 
STDMETHOD() GetCommandString (UINT_PTR idCommand, UINT uFlags, UINT *lpReserved, LPSTR lpszName, UINT uMaxNameLen) override
 
STDMETHOD() AddPages (LPFNSVADDPROPSHEETPAGE pfnAddPage, LPARAM lParam) override
 
STDMETHOD() ReplacePage (EXPPS uPageID, LPFNSVADDPROPSHEETPAGE pfnReplaceWith, LPARAM lParam) override
 
STDMETHOD() Initialize (PCIDLIST_ABSOLUTE pidlFolder, IDataObject *pdtobj, HKEY hkeyProgID) override
 
- 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 ()
 
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)
 
HRESULT QueryContextMenu ([in] HMENU hmenu, [in] UINT indexMenu, [in] UINT idCmdFirst, [in] UINT idCmdLast, [in] UINT uFlags)
 
HRESULT InvokeCommand ([in] LPCMINVOKECOMMANDINFO lpici)
 
HRESULT GetCommandString ([in] UINT_PTR idCmd, [in] UINT uType, [out] UINT *pwReserved, [out, size_is(cchMax)] LPSTR pszName, [in] UINT cchMax)
 
HRESULT AddPages ([in] LPFNSVADDPROPSHEETPAGE pfnAddPage, [in] LPARAM lParam)
 
HRESULT ReplacePage ([in] EXPPS uPageID, [in] LPFNSVADDPROPSHEETPAGE pfnReplaceWith, [in] LPARAM lParam)
 
HRESULT Initialize ([in] PCIDLIST_ABSOLUTE pidlFolder, [in] IDataObject *pdtobj, [in] HKEY hkeyProgID)
 

Static Public Member Functions

static REFCLSID GetClassID ()
 
- 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)
 

Private Member Functions

IShellFolderGetFSFolderForItem (LPCITEMIDLIST pidl)
 

Private Attributes

LPITEMIDLIST pidl
 
IShellFolderm_pFSFolders [RECYCLEBINMAXDRIVECOUNT]
 
bool m_IsBackgroundMenu
 

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 Types inherited from IContextMenu
typedef IContextMenuLPCONTEXTMENU
 
typedef struct IContextMenu::tagCMINVOKECOMMANDINFO CMINVOKECOMMANDINFO
 
typedef struct IContextMenu::tagCMINVOKECOMMANDINFOLPCMINVOKECOMMANDINFO
 
typedef struct IContextMenu::tagCMInvokeCommandInfoEx CMINVOKECOMMANDINFOEX
 
typedef struct IContextMenu::tagCMInvokeCommandInfoExLPCMINVOKECOMMANDINFOEX
 
- Public Types inherited from IShellPropSheetExt
enum  tagSHELLPROPSHEETEXTPAGEID { EXPPS_FILETYPES = 0x1 }
 
typedef UINT EXPPS
 
- Public Types inherited from IShellExtInit
typedef IShellExtInitLPSHELLEXTINIT
 
- Public Attributes inherited from ATL::CComObjectRootBase
LONG m_dwRef
 
- Static Public Attributes inherited from IContextMenu
static const WCHAR CMDSTR_NEWFOLDERW [] = {'N','e','w','F','o','l','d','e','r',0}
 
static const WCHAR CMDSTR_VIEWLISTW [] = {'V','i','e','w','L','i','s','t',0}
 
static const WCHAR CMDSTR_VIEWDETAILSW [] = {'V','i','e','w','D','e','t','a','i','l','s',0}
 

Detailed Description

Definition at line 29 of file CRecycleBin.h.

Constructor & Destructor Documentation

◆ CRecycleBin()

CRecycleBin::CRecycleBin ( )

Definition at line 555 of file CRecycleBin.cpp.

556{
557 pidl = NULL;
559}
LPITEMIDLIST pidl
Definition: CRecycleBin.h:39
IShellFolder * m_pFSFolders[RECYCLEBINMAXDRIVECOUNT]
Definition: CRecycleBin.h:40
#define NULL
Definition: types.h:112
#define ZeroMemory
Definition: winbase.h:1737

◆ ~CRecycleBin()

CRecycleBin::~CRecycleBin ( )

Definition at line 561 of file CRecycleBin.cpp.

562{
563 SHFree(pidl);
564 for (SIZE_T i = 0; i < _countof(m_pFSFolders); ++i)
565 {
566 if (m_pFSFolders[i])
568 }
569}
void WINAPI SHFree(LPVOID pv)
Definition: shellole.c:326
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
ULONG Release()
#define _countof(array)
Definition: sndvol32.h:70
ULONG_PTR SIZE_T
Definition: typedefs.h:80

Member Function Documentation

◆ AddPages()

HRESULT WINAPI CRecycleBin::AddPages ( LPFNSVADDPROPSHEETPAGE  pfnAddPage,
LPARAM  lParam 
)
override

Implements IShellPropSheetExt.

Definition at line 1055 of file CRecycleBin.cpp.

1056{
1058 return RecycleBin_AddPropSheetPages(pfnAddPage, lParam);
1059}
LPARAM lParam
Definition: combotst.c:139
HRESULT RecycleBin_AddPropSheetPages(LPFNSVADDPROPSHEETPAGE pfnAddPage, LPARAM lParam)
LPARAM LPFNSVADDPROPSHEETPAGE
Definition: shobjidl.idl:117
LONG_PTR LPARAM
Definition: windef.h:208

◆ BindToObject()

HRESULT WINAPI CRecycleBin::BindToObject ( PCUIDLIST_RELATIVE  pidl,
LPBC  pbcReserved,
REFIID  riid,
LPVOID ppvOut 
)
override

Definition at line 648 of file CRecycleBin.cpp.

649{
650 FIXME("(%p, %p, %p, %s, %p) - stub\n", this, pidl, pbc, debugstr_guid(&riid), ppv);
651 return E_NOTIMPL;
652}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define E_NOTIMPL
Definition: ddrawi.h:99
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define debugstr_guid
Definition: kernel32.h:35

◆ BindToStorage()

HRESULT WINAPI CRecycleBin::BindToStorage ( PCUIDLIST_RELATIVE  pidl,
LPBC  pbcReserved,
REFIID  riid,
LPVOID ppvOut 
)
override

Definition at line 654 of file CRecycleBin.cpp.

655{
656 FIXME("(%p, %p, %p, %s, %p) - stub\n", this, pidl, pbc, debugstr_guid(&riid), ppv);
657 return E_NOTIMPL;
658}

◆ CompareIDs()

HRESULT WINAPI CRecycleBin::CompareIDs ( LPARAM  lParam,
PCUIDLIST_RELATIVE  pidl1,
PCUIDLIST_RELATIVE  pidl2 
)
override

Implements IShellFolder.

Definition at line 670 of file CRecycleBin.cpp.

671{
672 UINT column = UINT(lParam & SHCIDS_COLUMNMASK);
673 if (column >= COLUMNS_COUNT || !_ILGetFSType(pidl1) || !_ILGetFSType(pidl2))
674 return E_INVALIDARG;
675 BBITEMDATA *pData1 = ValidateItem(pidl1), *pData2 = ValidateItem(pidl2);
676 if ((!pData1 || !pData2) && column != COLUMN_NAME)
677 return E_INVALIDARG;
678
679 LPCWSTR pName1, pName2;
680 FILETIME ft1, ft2;
681 SHFILEINFOW shfi1, shfi2;
682 int result;
684 if (SUCCEEDED(hr))
685 return hr;
686 switch (column)
687 {
688 case COLUMN_NAME:
689 if (pData1 && pData2)
690 {
692 return CompareCanonical(*pData1, *pData2);
693 pName1 = GetItemOriginalFileName(*pData1);
694 pName2 = GetItemOriginalFileName(*pData2);
695 result = CFSFolder::CompareUiStrings(pName1, pName2);
696 }
697 else
698 {
699 // We support comparing names even for non-Recycle items because
700 // SHChangeNotify can broadcast regular FS items.
701 if (IShellFolder *pSF = GetFSFolderForItem(pidl1))
702 {
703 hr = pSF->CompareIDs(lParam, pidl1, pidl2);
704 pSF->Release();
705 return hr;
706 }
707 return E_INVALIDARG;
708 }
709 break;
710 case COLUMN_DELFROM:
711 if (SUCCEEDED(hr = GetItemOriginalFolder(*pData1, const_cast<LPWSTR&>(pName1))))
712 {
713 if (SUCCEEDED(hr = GetItemOriginalFolder(*pData2, const_cast<LPWSTR&>(pName2))))
714 {
715 result = CFSFolder::CompareUiStrings(pName1, pName2);
716 SHFree(const_cast<LPWSTR>(pName2));
717 }
718 SHFree(const_cast<LPWSTR>(pName1));
719 }
721 case COLUMN_DATEDEL:
722 result = CompareFileTime(&pData1->DeletionTime, &pData2->DeletionTime);
723 break;
724 case COLUMN_SIZE:
725 result = GetItemFileSize(pidl1) - GetItemFileSize(pidl2);
726 break;
727 case COLUMN_TYPE:
728 GetItemTypeName(pidl1, *pData1, shfi1);
729 GetItemTypeName(pidl2, *pData2, shfi2);
731 break;
732 case COLUMN_MTIME:
733 _ILGetFileDateTime(pidl1, &ft1);
734 _ILGetFileDateTime(pidl2, &ft2);
735 result = CompareFileTime(&ft1, &ft2);
736 break;
737 }
739}
#define COLUMN_SIZE
Definition: CRecycleBin.cpp:55
static HRESULT CompareCanonical(const BBITEMDATA &Data1, const BBITEMDATA &Data2)
static LPCWSTR GetItemOriginalFileName(const BBITEMDATA &Data)
static HRESULT GetItemTypeName(PCUITEMID_CHILD pidl, const BBITEMDATA &Data, SHFILEINFOW &shfi)
#define COLUMNS_COUNT
Definition: CRecycleBin.cpp:59
#define COLUMN_MTIME
Definition: CRecycleBin.cpp:57
static HRESULT GetItemOriginalFolder(const BBITEMDATA &Data, LPWSTR &Out)
static UINT GetItemFileSize(LPCITEMIDLIST pidl)
#define COLUMN_DATEDEL
Definition: CRecycleBin.cpp:54
#define COLUMN_DELFROM
Definition: CRecycleBin.cpp:53
static int CompareUiStrings(LPCWSTR a, LPCWSTR b)
Definition: CFSFolder.h:136
static HRESULT CompareSortFoldersFirst(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
Definition: CFSFolder.cpp:1091
IShellFolder * GetFSFolderForItem(LPCITEMIDLIST pidl)
#define E_INVALIDARG
Definition: ddrawi.h:101
#define SHCIDS_CANONICALONLY
Definition: precomp.h:50
LONG WINAPI CompareFileTime(IN CONST FILETIME *lpFileTime1, IN CONST FILETIME *lpFileTime2)
Definition: time.c:106
GLuint64EXT * result
Definition: glext.h:11304
#define SUCCEEDED(hr)
Definition: intsafe.h:50
unsigned int UINT
Definition: ndis.h:50
BOOL _ILGetFileDateTime(LPCITEMIDLIST pidl, FILETIME *pFt)
Definition: pidl.c:2470
static BYTE _ILGetFSType(LPCITEMIDLIST pidl)
Definition: pidl.h:125
#define MAKE_COMPARE_HRESULT(x)
Definition: shellutils.h:619
#define COLUMN_NAME
#define COLUMN_TYPE
HRESULT hr
Definition: shlfolder.c:183
static BOOL ValidateItem(int index, BOOL bNewState, BOOL bDisplayErrors)
Definition: srvpage.cpp:503
FILETIME DeletionTime
Definition: CRecycleBin.cpp:68
WCHAR szTypeName[80]
Definition: shellapi.h:377
WCHAR * LPWSTR
Definition: xmlstorage.h:184
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185

◆ CreateViewObject()

HRESULT WINAPI CRecycleBin::CreateViewObject ( HWND  hwndOwner,
REFIID  riid,
LPVOID ppvOut 
)
override

Definition at line 741 of file CRecycleBin.cpp.

742{
743 CComPtr<IShellView> pShellView;
745
746 TRACE("(%p, %p, %s, %p)\n", this, hwndOwner, debugstr_guid(&riid), ppv);
747
748 if (!ppv)
749 return hr;
750 *ppv = NULL;
751
752 if (IsEqualIID (riid, IID_IDropTarget))
753 {
755 }
756 else if (IsEqualIID (riid, IID_IContextMenu) || IsEqualIID (riid, IID_IContextMenu2))
757 {
758 m_IsBackgroundMenu = true;
759 hr = this->QueryInterface(riid, ppv);
760 }
761 else if (IsEqualIID (riid, IID_IShellView))
762 {
763 SFV_CREATE sfvparams = { sizeof(SFV_CREATE), this };
764 hr = SHCreateShellFolderView(&sfvparams, (IShellView**)ppv);
765 }
766 else
767 return hr;
768
769 TRACE ("-- (%p)->(interface=%p)\n", this, ppv);
770 return hr;
771
772}
HRESULT WINAPI SHCreateShellFolderView(const SFV_CREATE *pcsfv, IShellView **ppsv)
Definition: CDefView.cpp:4677
HRESULT CRecyclerDropTarget_CreateInstance(REFIID riid, LPVOID *ppvOut)
bool m_IsBackgroundMenu
Definition: CRecycleBin.h:41
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
struct _SFV_CREATE SFV_CREATE
#define TRACE(s)
Definition: solgame.cpp:4
#define E_NOINTERFACE
Definition: winerror.h:2364

◆ EnumObjects()

HRESULT WINAPI CRecycleBin::EnumObjects ( HWND  hwndOwner,
DWORD  dwFlags,
LPENUMIDLIST *  ppEnumIDList 
)
override

Definition at line 643 of file CRecycleBin.cpp.

644{
645 return ShellObjectCreatorInit<CRecycleBinEnum>(dwFlags, IID_PPV_ARG(IEnumIDList, ppEnumIDList));
646}
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1176
#define IID_PPV_ARG(Itype, ppType)

◆ EnumSearches()

HRESULT WINAPI CRecycleBin::EnumSearches ( IEnumExtraSearch **  ppenum)
override

Implements IShellFolder2.

Definition at line 886 of file CRecycleBin.cpp.

887{
888 FIXME("stub\n");
889 *ppEnum = NULL;
890 return E_NOTIMPL;
891}

◆ GetAttributesOf()

HRESULT WINAPI CRecycleBin::GetAttributesOf ( UINT  cidl,
PCUITEMID_CHILD_ARRAY  apidl,
DWORD rgfInOut 
)
override

Definition at line 774 of file CRecycleBin.cpp.

776{
777 TRACE("(%p, %d, {%p, ...}, {%x})\n", this, cidl, apidl ? apidl[0] : NULL, (unsigned int)*rgfInOut);
778 HRESULT hr = S_OK;
779 const SFGAOF ThisFolder = SFGAO_FOLDER | SFGAO_HASPROPSHEET | SFGAO_DROPTARGET | SFGAO_CANRENAME | SFGAO_CANLINK;
780 if (!cidl)
781 {
782 *rgfInOut &= ThisFolder;
784 *rgfInOut &= ~SFGAO_HASPROPSHEET;
785 return hr;
786 }
787 SFGAOF remain = SFGAO_LINK & *rgfInOut;
788 *rgfInOut &= remain | SFGAO_HASPROPSHEET | SFGAO_CANDELETE | SFGAO_FILESYSTEM; // TODO: SFGAO_CANMOVE
789 for (UINT i = 0; (*rgfInOut & remain) && i < cidl && SUCCEEDED(hr); ++i)
790 {
791 if (IShellFolder* pSF = GetFSFolderForItem(apidl[i]))
792 {
793 hr = pSF->GetAttributesOf(1, &apidl[i], rgfInOut);
794 pSF->Release();
795 }
796 }
797 return hr;
798}
ULONG SFGAOF
Definition: shobjidl.idl:222
#define S_OK
Definition: intsafe.h:52
@ REST_BITBUCKNOPROP
Definition: shlobj.h:1810
DWORD WINAPI SHRestricted(RESTRICTIONS rest)
Definition: shpolicy.c:150

◆ GetClassID() [1/2]

static REFCLSID CRecycleBin::GetClassID ( )
inlinestatic

Definition at line 48 of file CRecycleBin.h.

48{ return CLSID_RecycleBin; }

Referenced by GetClassID().

◆ GetClassID() [2/2]

HRESULT WINAPI CRecycleBin::GetClassID ( CLSID pClassID)
override

Implements IPersist.

Definition at line 605 of file CRecycleBin.cpp.

606{
607 TRACE("(%p, %p)\n", this, pClassID);
608 if (pClassID == NULL)
609 return E_INVALIDARG;
610 *pClassID = GetClassID();
611 return S_OK;
612}
static REFCLSID GetClassID()
Definition: CRecycleBin.h:48

◆ GetCommandString()

HRESULT WINAPI CRecycleBin::GetCommandString ( UINT_PTR  idCommand,
UINT  uFlags,
UINT lpReserved,
LPSTR  lpszName,
UINT  uMaxNameLen 
)
override

Implements IContextMenu.

Definition at line 1045 of file CRecycleBin.cpp.

1046{
1047 TRACE("%p %lu %u %p %p %u\n", this, idCommand, uFlags, lpReserved, lpszName, uMaxNameLen);
1048 return SHELL_GetCommandStringImpl(idCommand, uFlags, lpszName, uMaxNameLen, g_BBFolderVerbMap);
1049}
static const CMVERBMAP g_BBFolderVerbMap[]
static DWORD const LPVOID const lpReserved
UINT uFlags
Definition: api.c:59
HRESULT SHELL_GetCommandStringImpl(SIZE_T CmdId, UINT uFlags, LPSTR Buf, UINT cchBuf, const CMVERBMAP *pMap)
Definition: utils.cpp:1780

◆ GetCurFolder()

HRESULT WINAPI CRecycleBin::GetCurFolder ( PIDLIST_ABSOLUTE pidl)
override

Implements IPersistFolder2.

Definition at line 625 of file CRecycleBin.cpp.

626{
627 TRACE("\n");
628 return SHILClone((LPCITEMIDLIST)pidl, ppidl);
629}
HRESULT SHILClone(_In_opt_ LPCITEMIDLIST pidl, _Outptr_ LPITEMIDLIST *ppidl)
Definition: utils.cpp:133
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
Definition: shtypes.idl:42

◆ GetDefaultColumn()

HRESULT WINAPI CRecycleBin::GetDefaultColumn ( DWORD  dwRes,
ULONG pSort,
ULONG pDisplay 
)
override

Implements IShellFolder2.

Definition at line 893 of file CRecycleBin.cpp.

894{
895 TRACE("(%p, %x, %p, %p)\n", this, (unsigned int)dwReserved, pSort, pDisplay);
896 if (pSort)
897 *pSort = 0;
898 if (pDisplay)
899 *pDisplay = 0;
900 return S_OK;
901}
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
Definition: mswsock.h:95

◆ GetDefaultColumnState()

HRESULT WINAPI CRecycleBin::GetDefaultColumnState ( UINT  iColumn,
DWORD pcsFlags 
)
override

Implements IShellFolder2.

Definition at line 903 of file CRecycleBin.cpp.

904{
905 TRACE("(%p, %d, %p)\n", this, iColumn, pcsFlags);
906 if (iColumn >= COLUMNS_COUNT)
907 return E_INVALIDARG;
908 *pcsFlags = RecycleBinColumns[iColumn].pcsFlags;
909 return S_OK;
910}
static const columninfo RecycleBinColumns[]
Definition: CRecycleBin.cpp:40

◆ GetDefaultSearchGUID()

HRESULT WINAPI CRecycleBin::GetDefaultSearchGUID ( GUID pguid)
override

Implements IShellFolder2.

Definition at line 880 of file CRecycleBin.cpp.

881{
882 FIXME("stub\n");
883 return E_NOTIMPL;
884}

◆ GetDetailsEx()

HRESULT WINAPI CRecycleBin::GetDetailsEx ( PCUITEMID_CHILD  pidl,
const SHCOLUMNID pscid,
VARIANT pv 
)
override

Implements IShellFolder2.

Definition at line 912 of file CRecycleBin.cpp.

913{
914 FIXME("stub\n");
915 return E_NOTIMPL;
916}

◆ GetDetailsOf()

HRESULT WINAPI CRecycleBin::GetDetailsOf ( PCUITEMID_CHILD  pidl,
UINT  iColumn,
SHELLDETAILS psd 
)
override

Implements IShellFolder2.

Definition at line 918 of file CRecycleBin.cpp.

919{
920 HRESULT hr;
921 FILETIME ft;
922 SHFILEINFOW shfi;
924
925 TRACE("(%p, %p, %d, %p)\n", this, pidl, iColumn, pDetails);
926 if (iColumn >= COLUMNS_COUNT)
927 return E_FAIL;
928
929 if (pidl == NULL)
930 {
931 pDetails->fmt = RecycleBinColumns[iColumn].fmt;
932 pDetails->cxChar = RecycleBinColumns[iColumn].cxChars;
933 return SHSetStrRet(&pDetails->str, RecycleBinColumns[iColumn].column_name_id);
934 }
935
936 if (iColumn == COLUMN_NAME)
937 return GetDisplayNameOf(pidl, SHGDN_NORMAL | SHGDN_INFOLDER, &pDetails->str);
938
941 return E_INVALIDARG;
942
943 switch (iColumn)
944 {
945 case COLUMN_DATEDEL:
947 break;
948 case COLUMN_DELFROM:
949 if (SUCCEEDED(hr = GetItemOriginalFolder(*pData, pDetails->str.pOleStr)))
950 pDetails->str.uType = STRRET_WSTR;
951 return hr;
952 case COLUMN_SIZE:
954 if (!IsFolder(pidl))
956 break;
957 case COLUMN_MTIME:
960 break;
961 case COLUMN_TYPE:
962 GetItemTypeName(pidl, *pData, shfi);
963 return SHSetStrRet(&pDetails->str, shfi.szTypeName);
964 default:
965 return E_FAIL;
966 }
967 return SHSetStrRet(&pDetails->str, buffer);
968}
static BOOL IsFolder(LPCITEMIDLIST pidl)
Definition: CRecycleBin.cpp:84
static HRESULT FormatSize(UINT64 size, LPWSTR Buf, UINT cchBuf)
Definition: CFSFolder.cpp:2115
static HRESULT FormatDateTime(const FILETIME &ft, LPWSTR Buf, UINT cchBuf)
Definition: CFSFolder.cpp:2099
STDMETHOD() GetDisplayNameOf(PCUITEMID_CHILD pidl, DWORD dwFlags, LPSTRRET strRet) override
#define E_FAIL
Definition: ddrawi.h:102
#define MAX_PATH
Definition: compat.h:34
#define FAILED_UNEXPECTEDLY(hr)
Definition: precomp.h:121
GLuint buffer
Definition: glext.h:5915
#define UNICODE_NULL
@ STRRET_WSTR
Definition: shtypes.idl:85
int column_name_id
Definition: CRecycleBin.cpp:32
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
Definition: twain.h:1830
__wchar_t WCHAR
Definition: xmlstorage.h:180

◆ GetDisplayNameOf()

HRESULT WINAPI CRecycleBin::GetDisplayNameOf ( PCUITEMID_CHILD  pidl,
DWORD  dwFlags,
LPSTRRET  strRet 
)
override

Definition at line 839 of file CRecycleBin.cpp.

840{
841 TRACE("(%p, %p, %x, %p)\n", this, pidl, (unsigned int)uFlags, pName);
843 if (!pData)
844 return E_INVALIDARG;
845
847 {
850 pszName = PathFindFileNameW(pszName);
851 pName->pOleStr = SHStrDupW(pszName);
852 }
853 else
854 {
857 else
859 }
860
861 if (pName->pOleStr)
862 {
863 pName->uType = STRRET_WSTR;
864 if (!IsFolder(pidl))
866 return S_OK;
867 }
868 pName->uType = STRRET_CSTR;
869 pName->cStr[0] = '\0';
870 return E_OUTOFMEMORY;
871}
static LPCWSTR GetItemOriginalFullPath(const BBITEMDATA &Data)
static LPCWSTR GetItemRecycledFullPath(const BBITEMDATA &Data)
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
void SHELL_FS_ProcessDisplayFilename(LPWSTR szPath, DWORD dwFlags)
Definition: CFSFolder.cpp:1472
LPWSTR WINAPI PathFindFileNameW(LPCWSTR lpszPath)
Definition: path.c:394
HRESULT WINAPI SHStrDupW(LPCWSTR src, LPWSTR *dest)
Definition: string.c:2018
static LPSTR pName
Definition: security.c:75
#define IS_SHGDN_FOR_PARSING(flags)
Definition: shfldr.h:77
@ STRRET_CSTR
Definition: shtypes.idl:87

Referenced by GetDetailsOf().

◆ GetFSFolderForItem()

IShellFolder * CRecycleBin::GetFSFolderForItem ( LPCITEMIDLIST  pidl)
private

Definition at line 571 of file CRecycleBin.cpp.

572{
574 if (drive < 0)
577 return NULL;
578
579 if (!m_pFSFolders[drive])
580 {
581 HRESULT hr;
582 PERSIST_FOLDER_TARGET_INFO pfti = {};
583 if (FAILED_UNEXPECTEDLY(hr = GetRecycleBinPathFromDriveNumber(drive, pfti.szTargetParsingName)))
584 return NULL;
585 pfti.dwAttributes = FILE_ATTRIBUTE_DIRECTORY;
586 pfti.csidl = -1;
587 CComHeapPtr<ITEMIDLIST> pidlRoot;
588 pidlRoot.Attach(SHELL32_CreateSimpleIDListFromPath(pfti.szTargetParsingName, pfti.dwAttributes));
589 if (!pidlRoot && FAILED_UNEXPECTEDLY(E_FAIL))
590 return NULL;
591 IShellFolder *psf;
592 hr = SHELL32_CoCreateInitSF(pidlRoot, &pfti, NULL, &CLSID_ShellFSFolder, IID_PPV_ARG(IShellFolder, &psf));
593 if (FAILED(hr))
594 return NULL;
595 m_pFSFolders[drive] = psf; // Reference count is 1 (for the m_pFSFolders cache)
596 }
597 m_pFSFolders[drive]->AddRef(); // AddRef for the caller
598 return m_pFSFolders[drive];
599}
static HRESULT SHELL32_CoCreateInitSF(LPCITEMIDLIST pidlRoot, PERSIST_FOLDER_TARGET_INFO *ppfti, LPCITEMIDLIST pidlChild, const GUID *clsid, REFIID riid, LPVOID *ppvOut)
Definition: CFindFolder.cpp:13
static int GetItemDriveNumber(LPCITEMIDLIST pidl)
static UINT GetDefaultRecycleDriveNumber()
EXTERN_C HRESULT GetRecycleBinPathFromDriveNumber(UINT Drive, LPWSTR Path)
Definition: recyclebin.c:337
ULONG AddRef()
#define FAILED(hr)
Definition: intsafe.h:51
#define FILE_ATTRIBUTE_DIRECTORY
Definition: nt_native.h:705
LPITEMIDLIST SHELL32_CreateSimpleIDListFromPath(LPCWSTR pszPath, DWORD dwAttributes)
Definition: pidl.c:1188

Referenced by CompareIDs(), GetAttributesOf(), and GetUIObjectOf().

◆ GetUIObjectOf()

HRESULT WINAPI CRecycleBin::GetUIObjectOf ( HWND  hwndOwner,
UINT  cidl,
PCUITEMID_CHILD_ARRAY  apidl,
REFIID  riid,
UINT prgfInOut,
LPVOID ppvOut 
)
override

Definition at line 800 of file CRecycleBin.cpp.

802{
803 LPVOID pObj = NULL;
805
806 TRACE ("(%p)->(%p,%u,apidl=%p, %p %p)\n", this,
807 hwndOwner, cidl, apidl, prgfInOut, ppv);
808
809 if (!ppv)
810 return hr;
811
812 *ppv = NULL;
813 assert(!cidl || (apidl && apidl[0]));
814
815 if ((IsEqualIID (riid, IID_IContextMenu) || IsEqualIID(riid, IID_IContextMenu2)) && (cidl >= 1))
816 {
817 // FIXME: Handle multiple items
818 hr = ShellObjectCreatorInit<CRecycleBinItemContextMenu>(apidl[0], riid, &pObj);
819 }
820 else if((IsEqualIID(riid, IID_IExtractIconA) || IsEqualIID(riid, IID_IExtractIconW)) && (cidl == 1))
821 {
822 if (IShellFolder *pSF = GetFSFolderForItem(apidl[0]))
823 {
824 hr = CRecyclerExtractIcon_CreateInstance(*pSF, apidl[0], riid, &pObj);
825 pSF->Release();
826 }
827 }
828 else
830
831 if (SUCCEEDED(hr) && !pObj)
833
834 *ppv = pObj;
835 TRACE ("(%p)->hr=0x%08x\n", this, hr);
836 return hr;
837}
static HRESULT CRecyclerExtractIcon_CreateInstance(IShellFolder &FSFolder, LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppvOut)
#define assert(x)
Definition: debug.h:53

◆ Initialize() [1/2]

HRESULT WINAPI CRecycleBin::Initialize ( PCIDLIST_ABSOLUTE  pidl)
override

Implements IPersistFolder.

Definition at line 614 of file CRecycleBin.cpp.

615{
616 TRACE("(%p, %p)\n", this, pidl);
617
618 SHFree((LPVOID)this->pidl);
619 this->pidl = ILClone(pidl);
620 if (this->pidl == NULL)
621 return E_OUTOFMEMORY;
622 return S_OK;
623}
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
Definition: pidl.c:237

◆ Initialize() [2/2]

HRESULT WINAPI CRecycleBin::Initialize ( PCIDLIST_ABSOLUTE  pidlFolder,
IDataObject pdtobj,
HKEY  hkeyProgID 
)
override

Implements IShellExtInit.

Definition at line 1072 of file CRecycleBin.cpp.

1073{
1074 TRACE("%p %p %p %p\n", this, pidlFolder, pdtobj, hkeyProgID );
1075 m_IsBackgroundMenu = false;
1076 return S_OK;
1077}

◆ InvokeCommand()

HRESULT WINAPI CRecycleBin::InvokeCommand ( LPCMINVOKECOMMANDINFO  lpcmi)
override

Implements IContextMenu.

Definition at line 1019 of file CRecycleBin.cpp.

1020{
1021 TRACE("%p %p verb %p\n", this, lpcmi, lpcmi ? lpcmi->lpVerb : NULL);
1023 if (CmdId == IDC_EMPTYRECYCLEBIN)
1024 {
1025 HRESULT hr = SHEmptyRecycleBinW(lpcmi->hwnd, NULL, 0);
1026 TRACE("result %x\n", hr);
1027 if (hr != S_OK)
1028 return hr;
1029#if 0 // This is a nasty hack because lpcmi->hwnd might not be a shell browser.
1030 // Not required with working SHChangeNotify.
1031 CComPtr<IShellView> pSV;
1032 LPSHELLBROWSER lpSB = (LPSHELLBROWSER)SendMessage(lpcmi->hwnd, CWM_GETISHELLBROWSER, 0, 0);
1033 if (lpSB && SUCCEEDED(lpSB->QueryActiveShellView(&pSV)))
1034 pSV->Refresh();
1035#endif
1036 return hr;
1037 }
1038 else if (CmdId == IDC_PROPERTIES)
1039 {
1041 }
1042 return E_INVALIDARG;
1043}
@ IDC_EMPTYRECYCLEBIN
HRESULT WINAPI SHEmptyRecycleBinW(HWND hwnd, LPCWSTR pszRootPath, DWORD dwFlags)
#define IDC_PROPERTIES
Definition: resource.h:32
HRESULT SHELL_MapContextMenuVerbToCmdId(LPCMINVOKECOMMANDINFO pICI, const CMVERBMAP *pMap)
Definition: utils.cpp:1746
HRESULT SHELL_ShowItemIDListProperties(LPCITEMIDLIST pidl)
Definition: item_prop.cpp:182
#define CSIDL_BITBUCKET
Definition: shlobj.h:2183
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41
#define CWM_GETISHELLBROWSER
Definition: undocshell.h:230
#define SendMessage
Definition: winuser.h:5855

◆ MapColumnToSCID()

HRESULT WINAPI CRecycleBin::MapColumnToSCID ( UINT  column,
SHCOLUMNID pscid 
)
override

Implements IShellFolder2.

Definition at line 970 of file CRecycleBin.cpp.

971{
972 TRACE("(%p, %d, %p)\n", this, iColumn, pscid);
973 if (iColumn >= COLUMNS_COUNT)
974 return E_INVALIDARG;
975 pscid->fmtid = *RecycleBinColumns[iColumn].fmtId;
976 pscid->pid = RecycleBinColumns[iColumn].pid;
977 return S_OK;
978}
const GUID * fmtId
Definition: CRecycleBin.cpp:33

◆ ParseDisplayName()

HRESULT WINAPI CRecycleBin::ParseDisplayName ( HWND  hwndOwner,
LPBC  pbc,
LPOLESTR  lpszDisplayName,
DWORD pchEaten,
PIDLIST_RELATIVE ppidl,
DWORD pdwAttributes 
)
override

Definition at line 635 of file CRecycleBin.cpp.

638{
639 FIXME("stub\n");
640 return E_NOTIMPL; // FIXME: Parse "D<Drive><UniqueId>.ext"
641}

◆ QueryContextMenu()

HRESULT WINAPI CRecycleBin::QueryContextMenu ( HMENU  hMenu,
UINT  indexMenu,
UINT  idCmdFirst,
UINT  idCmdLast,
UINT  uFlags 
)
override

Implements IContextMenu.

Definition at line 992 of file CRecycleBin.cpp.

993{
994 TRACE("QueryContextMenu %p %p %u %u %u %u\n", this, hMenu, indexMenu, idCmdFirst, idCmdLast, uFlags );
995
996 if (!hMenu)
997 return E_INVALIDARG;
998
999 UINT idHigh = 0, id;
1000
1002 id = idCmdFirst + IDC_EMPTYRECYCLEBIN;
1004 {
1005 idHigh = max(idHigh, id);
1007 {
1008 id = idCmdFirst + IDC_PROPERTIES;
1009 if (_InsertMenuItemW(hMenu, ++indexMenu, TRUE, id, MFT_STRING, MAKEINTRESOURCEW(IDS_PROPERTIES), 0))
1010 {
1011 idHigh = max(idHigh, id);
1012 _InsertMenuItemW(hMenu, indexMenu++, TRUE, -1, MFT_SEPARATOR, NULL, 0);
1013 }
1014 }
1015 }
1016 return idHigh ? MAKE_HRESULT(SEVERITY_SUCCESS, 0, idHigh - idCmdFirst + 1) : S_OK;
1017}
static BOOL IsRecycleBinEmpty(IShellFolder *pSF)
static int state
Definition: maze.c:121
#define IDS_PROPERTIES
Definition: resource.h:102
#define TRUE
Definition: types.h:120
#define MAKE_HRESULT(sev, fac, code)
Definition: dmerror.h:30
unsigned short WORD
Definition: ntddk_ex.h:93
GLuint id
Definition: glext.h:5910
void WINAPI _InsertMenuItemW(HMENU hmenu, UINT indexMenu, BOOL fByPosition, UINT wID, UINT fType, LPCWSTR dwTypeData, UINT fState)
#define IDS_EMPTY_BITBUCKET
Definition: shresdef.h:186
#define max(a, b)
Definition: svc.c:63
#define SEVERITY_SUCCESS
Definition: winerror.h:64
#define MFS_DISABLED
Definition: winuser.h:752
#define MFT_SEPARATOR
Definition: winuser.h:747
#define MFS_ENABLED
Definition: winuser.h:753
#define MFT_STRING
Definition: winuser.h:749
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582

◆ ReplacePage()

HRESULT WINAPI CRecycleBin::ReplacePage ( EXPPS  uPageID,
LPFNSVADDPROPSHEETPAGE  pfnReplaceWith,
LPARAM  lParam 
)
override

Implements IShellPropSheetExt.

Definition at line 1061 of file CRecycleBin.cpp.

1062{
1063 FIXME("%p %lu %p %lu\n", this, uPageID, pfnReplaceWith, lParam);
1064
1065 return E_NOTIMPL;
1066}

◆ SetNameOf()

HRESULT WINAPI CRecycleBin::SetNameOf ( HWND  hwndOwner,
PCUITEMID_CHILD  pidl,
LPCOLESTR  lpName,
DWORD  dwFlags,
PITEMID_CHILD pPidlOut 
)
override

Implements IShellFolder.

Definition at line 873 of file CRecycleBin.cpp.

875{
876 TRACE("\n");
877 return E_FAIL; /* not supported */
878}

Member Data Documentation

◆ m_IsBackgroundMenu

bool CRecycleBin::m_IsBackgroundMenu
private

Definition at line 41 of file CRecycleBin.h.

Referenced by CreateViewObject(), Initialize(), and QueryContextMenu().

◆ m_pFSFolders

IShellFolder* CRecycleBin::m_pFSFolders[RECYCLEBINMAXDRIVECOUNT]
private

Definition at line 40 of file CRecycleBin.h.

Referenced by CRecycleBin(), GetFSFolderForItem(), and ~CRecycleBin().

◆ pidl


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