ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

recyclebin.h
Go to the documentation of this file.
00001 /*
00002  * Trash virtual folder support. The trashing engine is implemented in trash.c
00003  *
00004  * Copyright (C) 2006 Mikolaj Zalewski
00005  * Copyright (C) 2009 Andrew Hill
00006  *
00007  * This library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU Lesser General Public
00009  * License as published by the Free Software Foundation; either
00010  * version 2.1 of the License, or (at your option) any later version.
00011  *
00012  * This library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015  * Lesser General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU Lesser General Public
00018  * License along with this library; if not, write to the Free Software
00019  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00020  */
00021 
00022 #ifndef _SHFLDR_RECYCLEBIN_H_
00023 #define _SHFLDR_RECYCLEBIN_H_
00024 
00025 class CRecycleBin :
00026     public CComCoClass<CRecycleBin, &CLSID_RecycleBin>,
00027     public CComObjectRootEx<CComMultiThreadModelNoCS>,
00028     public IShellFolder2,
00029     public IPersistFolder2,
00030     public IContextMenu,
00031     public IShellPropSheetExt,
00032     public IShellExtInit
00033 {
00034     private:
00035         LPITEMIDLIST pidl;
00036         INT iIdEmpty;
00037 
00038     public:
00039         CRecycleBin();
00040         ~CRecycleBin();
00041 
00042         // IPersistFolder
00043         virtual HRESULT WINAPI GetClassID(CLSID *pClassID);
00044         virtual HRESULT WINAPI Initialize(LPCITEMIDLIST pidl);
00045 
00046         // IPersistFolder2
00047         virtual HRESULT WINAPI GetCurFolder(LPITEMIDLIST * pidl);
00048 
00049         // IShellFolder
00050         virtual HRESULT WINAPI ParseDisplayName(HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, DWORD *pchEaten, LPITEMIDLIST *ppidl, DWORD *pdwAttributes);
00051         virtual HRESULT WINAPI EnumObjects(HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST *ppEnumIDList);
00052         virtual HRESULT WINAPI BindToObject(LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut);
00053         virtual HRESULT WINAPI BindToStorage(LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut);
00054         virtual HRESULT WINAPI CompareIDs(LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2);
00055         virtual HRESULT WINAPI CreateViewObject(HWND hwndOwner, REFIID riid, LPVOID *ppvOut);
00056         virtual HRESULT WINAPI GetAttributesOf(UINT cidl, LPCITEMIDLIST *apidl, DWORD *rgfInOut);
00057         virtual HRESULT WINAPI GetUIObjectOf(HWND hwndOwner, UINT cidl, LPCITEMIDLIST *apidl, REFIID riid, UINT *prgfInOut, LPVOID *ppvOut);
00058         virtual HRESULT WINAPI GetDisplayNameOf(LPCITEMIDLIST pidl, DWORD dwFlags, LPSTRRET strRet);
00059         virtual HRESULT WINAPI SetNameOf(HWND hwndOwner, LPCITEMIDLIST pidl, LPCOLESTR lpName, DWORD dwFlags, LPITEMIDLIST *pPidlOut);
00060 
00061         // IShellFolder2
00062         virtual HRESULT WINAPI GetDefaultSearchGUID(GUID *pguid);
00063         virtual HRESULT WINAPI EnumSearches(IEnumExtraSearch **ppenum);
00064         virtual HRESULT WINAPI GetDefaultColumn(DWORD dwRes, ULONG *pSort, ULONG *pDisplay);
00065         virtual HRESULT WINAPI GetDefaultColumnState(UINT iColumn, DWORD *pcsFlags);
00066         virtual HRESULT WINAPI GetDetailsEx(LPCITEMIDLIST pidl, const SHCOLUMNID *pscid, VARIANT *pv);
00067         virtual HRESULT WINAPI GetDetailsOf(LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS *psd);
00068         virtual HRESULT WINAPI MapColumnToSCID(UINT column, SHCOLUMNID *pscid);
00069 
00070         // IContextMenu
00071         virtual HRESULT WINAPI QueryContextMenu(HMENU hMenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags);
00072         virtual HRESULT WINAPI InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi);
00073         virtual HRESULT WINAPI GetCommandString(UINT_PTR idCommand, UINT uFlags, UINT *lpReserved, LPSTR lpszName, UINT uMaxNameLen);
00074 
00075         // IShellPropSheetExt
00076         virtual HRESULT WINAPI AddPages(LPFNSVADDPROPSHEETPAGE pfnAddPage, LPARAM lParam);
00077         virtual HRESULT WINAPI ReplacePage(EXPPS uPageID, LPFNSVADDPROPSHEETPAGE pfnReplaceWith, LPARAM lParam);
00078 
00079         // IShellExtInit
00080         virtual HRESULT STDMETHODCALLTYPE Initialize(LPCITEMIDLIST pidlFolder, IDataObject *pdtobj, HKEY hkeyProgID);
00081 
00082         DECLARE_REGISTRY_RESOURCEID(IDR_RECYCLEBIN)
00083         DECLARE_NOT_AGGREGATABLE(CRecycleBin)
00084 
00085         DECLARE_PROTECT_FINAL_CONSTRUCT()
00086 
00087         BEGIN_COM_MAP(CRecycleBin)
00088         COM_INTERFACE_ENTRY_IID(IID_IPersistFolder, IPersistFolder)
00089         COM_INTERFACE_ENTRY_IID(IID_IPersistFolder2, IPersistFolder2)
00090         COM_INTERFACE_ENTRY_IID(IID_IShellFolder, IShellFolder)
00091         COM_INTERFACE_ENTRY_IID(IID_IShellFolder2, IShellFolder2)
00092         COM_INTERFACE_ENTRY_IID(IID_IContextMenu, IContextMenu)
00093         COM_INTERFACE_ENTRY_IID(IID_IShellPropSheetExt, IShellPropSheetExt)
00094         COM_INTERFACE_ENTRY_IID(IID_IShellExtInit, IShellExtInit)
00095         END_COM_MAP()
00096 };
00097 
00098 #endif // _SHFLDR_RECYCLEBIN_H_

Generated on Sat May 26 2012 04:25:00 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.