#ifndef _SHFLDR_RECYCLEBIN_H_
#define _SHFLDR_RECYCLEBIN_H_
-DWORD WINAPI DoDeleteThreadProc(LPVOID lpParameter);
-HRESULT WINAPI DoDeleteDataObject(IDataObject *pda);
-
BOOL TRASH_CanTrashFile(LPCWSTR wszPath);
BOOL TRASH_TrashFile(LPCWSTR wszPath);
+HRESULT CRecyclerDropTarget_CreateInstance(REFIID riid, LPVOID * ppvOut);
class CRecycleBin :
public CComCoClass<CRecycleBin, &CLSID_RecycleBin>,
public IPersistFolder2,
public IContextMenu,
public IShellPropSheetExt,
- public IDropTarget,
public IShellExtInit
{
private:
LPITEMIDLIST pidl;
INT iIdEmpty;
- UINT cfShellIDList;
- void SF_RegisterClipFmt();
- BOOL fAcceptFmt; /* flag for pending Drop */
- BOOL QueryDrop (DWORD dwKeyState, LPDWORD pdwEffect);
+ BOOL RecycleBinIsEmpty();
public:
CRecycleBin();
// IPersistFolder
virtual HRESULT WINAPI GetClassID(CLSID *pClassID);
- virtual HRESULT WINAPI Initialize(LPCITEMIDLIST pidl);
+ virtual HRESULT WINAPI Initialize(PCIDLIST_ABSOLUTE pidl);
// IPersistFolder2
- virtual HRESULT WINAPI GetCurFolder(LPITEMIDLIST * pidl);
+ virtual HRESULT WINAPI GetCurFolder(PIDLIST_ABSOLUTE * pidl);
// IShellFolder
virtual HRESULT WINAPI ParseDisplayName(HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, DWORD *pchEaten, PIDLIST_RELATIVE *ppidl, DWORD *pdwAttributes);
// IShellPropSheetExt
virtual HRESULT WINAPI AddPages(LPFNSVADDPROPSHEETPAGE pfnAddPage, LPARAM lParam);
virtual HRESULT WINAPI ReplacePage(EXPPS uPageID, LPFNSVADDPROPSHEETPAGE pfnReplaceWith, LPARAM lParam);
-
- // IDropTarget
- virtual HRESULT WINAPI DragEnter(IDataObject *pDataObject, DWORD dwKeyState, POINTL pt, DWORD *pdwEffect);
- virtual HRESULT WINAPI DragOver(DWORD dwKeyState, POINTL pt, DWORD *pdwEffect);
- virtual HRESULT WINAPI DragLeave();
- virtual HRESULT WINAPI Drop(IDataObject *pDataObject, DWORD dwKeyState, POINTL pt, DWORD *pdwEffect);
// IShellExtInit
virtual HRESULT STDMETHODCALLTYPE Initialize(LPCITEMIDLIST pidlFolder, IDataObject *pdtobj, HKEY hkeyProgID);
COM_INTERFACE_ENTRY_IID(IID_IShellFolder2, IShellFolder2)
COM_INTERFACE_ENTRY_IID(IID_IContextMenu, IContextMenu)
COM_INTERFACE_ENTRY_IID(IID_IShellPropSheetExt, IShellPropSheetExt)
- COM_INTERFACE_ENTRY_IID(IID_IDropTarget, IDropTarget)
COM_INTERFACE_ENTRY_IID(IID_IShellExtInit, IShellExtInit)
END_COM_MAP()
};