Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygendesktop.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
1.7.6.1
|