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

desktop.h
Go to the documentation of this file.
00001 /*
00002  *    Virtual Desktop Folder
00003  *
00004  *    Copyright 1997                Marcus Meissner
00005  *    Copyright 1998, 1999, 2002    Juergen Schmied
00006  *    Copyright 2009                Andrew Hill
00007  *
00008  * This library is free software; you can redistribute it and/or
00009  * modify it under the terms of the GNU Lesser General Public
00010  * License as published by the Free Software Foundation; either
00011  * version 2.1 of the License, or (at your option) any later version.
00012  *
00013  * This library is distributed in the hope that it will be useful,
00014  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00016  * Lesser General Public License for more details.
00017  *
00018  * You should have received a copy of the GNU Lesser General Public
00019  * License along with this library; if not, write to the Free Software
00020  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00021  */
00022 
00023 #ifndef _CDESKTOPFOLDER_H_
00024 #define _CDESKTOPFOLDER_H_
00025 
00026 class CDesktopFolder :
00027     public CComCoClass<CDesktopFolder, &CLSID_ShellDesktop>,
00028     public CComObjectRootEx<CComMultiThreadModelNoCS>,
00029     public IShellFolder2,
00030     public IPersistFolder2,
00031     public ISFHelper
00032 {
00033     private:
00034         /* both paths are parsible from the desktop */
00035         LPWSTR sPathTarget;     /* complete path to target used for enumeration and ChangeNotify */
00036         LPITEMIDLIST pidlRoot;  /* absolute pidl */
00037 
00038 //  CComPtr<IShellFolder2>              fDesktopFolder;
00039 //  CComPtr<IShellFolder2>              fCommonDesktopFolder;
00040     public:
00041         CDesktopFolder();
00042         ~CDesktopFolder();
00043         HRESULT WINAPI FinalConstruct();
00044 
00045         // *** IShellFolder methods ***
00046         virtual HRESULT WINAPI ParseDisplayName (HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, DWORD *pchEaten, LPITEMIDLIST *ppidl, DWORD *pdwAttributes);
00047         virtual HRESULT WINAPI EnumObjects(HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST *ppEnumIDList);
00048         virtual HRESULT WINAPI BindToObject(LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut);
00049         virtual HRESULT WINAPI BindToStorage(LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut);
00050         virtual HRESULT WINAPI CompareIDs(LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2);
00051         virtual HRESULT WINAPI CreateViewObject(HWND hwndOwner, REFIID riid, LPVOID *ppvOut);
00052         virtual HRESULT WINAPI GetAttributesOf (UINT cidl, LPCITEMIDLIST *apidl, DWORD *rgfInOut);
00053         virtual HRESULT WINAPI GetUIObjectOf(HWND hwndOwner, UINT cidl, LPCITEMIDLIST *apidl, REFIID riid, UINT * prgfInOut, LPVOID * ppvOut);
00054         virtual HRESULT WINAPI GetDisplayNameOf(LPCITEMIDLIST pidl, DWORD dwFlags, LPSTRRET strRet);
00055         virtual HRESULT WINAPI SetNameOf(HWND hwndOwner, LPCITEMIDLIST pidl, LPCOLESTR lpName, DWORD dwFlags, LPITEMIDLIST *pPidlOut);
00056 
00057         // *** IShellFolder2 methods ***
00058         virtual HRESULT WINAPI GetDefaultSearchGUID(GUID *pguid);
00059         virtual HRESULT WINAPI EnumSearches(IEnumExtraSearch **ppenum);
00060         virtual HRESULT WINAPI GetDefaultColumn(DWORD dwRes, ULONG *pSort, ULONG *pDisplay);
00061         virtual HRESULT WINAPI GetDefaultColumnState(UINT iColumn, DWORD *pcsFlags);
00062         virtual HRESULT WINAPI GetDetailsEx(LPCITEMIDLIST pidl, const SHCOLUMNID *pscid, VARIANT *pv);
00063         virtual HRESULT WINAPI GetDetailsOf(LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS *psd);
00064         virtual HRESULT WINAPI MapColumnToSCID(UINT column, SHCOLUMNID *pscid);
00065 
00066         // *** IPersist methods ***
00067         virtual HRESULT WINAPI GetClassID(CLSID *lpClassId);
00068 
00069         // *** IPersistFolder methods ***
00070         virtual HRESULT WINAPI Initialize(LPCITEMIDLIST pidl);
00071 
00072         // *** IPersistFolder2 methods ***
00073         virtual HRESULT WINAPI GetCurFolder(LPITEMIDLIST * pidl);
00074 
00075         // *** ISFHelper methods ***
00076         virtual HRESULT WINAPI GetUniqueName(LPWSTR pwszName, UINT uLen);
00077         virtual HRESULT WINAPI AddFolder(HWND hwnd, LPCWSTR pwszName, LPITEMIDLIST *ppidlOut);
00078         virtual HRESULT WINAPI DeleteItems(UINT cidl, LPCITEMIDLIST *apidl);
00079         virtual HRESULT WINAPI CopyItems(IShellFolder *pSFFrom, UINT cidl, LPCITEMIDLIST *apidl);
00080 
00081         DECLARE_REGISTRY_RESOURCEID(IDR_SHELLDESKTOP)
00082         DECLARE_NOT_AGGREGATABLE(CDesktopFolder)
00083 
00084         DECLARE_PROTECT_FINAL_CONSTRUCT()
00085 
00086         BEGIN_COM_MAP(CDesktopFolder)
00087         COM_INTERFACE_ENTRY_IID(IID_IShellFolder2, IShellFolder2)
00088         COM_INTERFACE_ENTRY_IID(IID_IShellFolder, IShellFolder)
00089         COM_INTERFACE_ENTRY_IID(IID_IPersistFolder, IPersistFolder)
00090         COM_INTERFACE_ENTRY_IID(IID_IPersistFolder2, IPersistFolder2)
00091         COM_INTERFACE_ENTRY_IID(IID_IPersist, IPersist)
00092         COM_INTERFACE_ENTRY_IID(IID_ISFHelper, ISFHelper)
00093         END_COM_MAP()
00094 };
00095 
00096 #endif // _CDESKTOPFOLDER_H_

Generated on Sat May 26 2012 04:17:27 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.