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

fs.h
Go to the documentation of this file.
00001 /*
00002  * file system 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 _CFSFOLDER_H_
00024 #define _CFSFOLDER_H_
00025 
00026 WCHAR *BuildPathsList(LPCWSTR wszBasePath, int cidl, LPCITEMIDLIST *pidls);
00027 
00028 class CFSFolder :
00029     public CComCoClass<CFSFolder, &CLSID_ShellFSFolder>,
00030     public CComObjectRootEx<CComMultiThreadModelNoCS>,
00031     public IShellFolder2,
00032     public IPersistFolder3,
00033     public IDropTarget,
00034     public ISFHelper
00035 {
00036     private:
00037         CLSID *pclsid;
00038 
00039         /* both paths are parsible from the desktop */
00040         LPWSTR sPathTarget;     /* complete path to target used for enumeration and ChangeNotify */
00041 
00042         LPITEMIDLIST pidlRoot; /* absolute pidl */
00043 
00044         UINT cfShellIDList;    /* clipboardformat for IDropTarget */
00045         BOOL fAcceptFmt;       /* flag for pending Drop */
00046     public:
00047         CFSFolder();
00048         ~CFSFolder();
00049         void SF_RegisterClipFmt();
00050         BOOL QueryDrop (DWORD dwKeyState, LPDWORD pdwEffect);
00051 
00052         // IShellFolder
00053         virtual HRESULT WINAPI ParseDisplayName(HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, DWORD *pchEaten, LPITEMIDLIST *ppidl, DWORD *pdwAttributes);
00054         virtual HRESULT WINAPI EnumObjects(HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST *ppEnumIDList);
00055         virtual HRESULT WINAPI BindToObject(LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut);
00056         virtual HRESULT WINAPI BindToStorage(LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut);
00057         virtual HRESULT WINAPI CompareIDs(LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2);
00058         virtual HRESULT WINAPI CreateViewObject(HWND hwndOwner, REFIID riid, LPVOID *ppvOut);
00059         virtual HRESULT WINAPI GetAttributesOf(UINT cidl, LPCITEMIDLIST *apidl, DWORD *rgfInOut);
00060         virtual HRESULT WINAPI GetUIObjectOf(HWND hwndOwner, UINT cidl, LPCITEMIDLIST *apidl, REFIID riid, UINT * prgfInOut, LPVOID * ppvOut);
00061         virtual HRESULT WINAPI GetDisplayNameOf(LPCITEMIDLIST pidl, DWORD dwFlags, LPSTRRET strRet);
00062         virtual HRESULT WINAPI SetNameOf(HWND hwndOwner, LPCITEMIDLIST pidl, LPCOLESTR lpName, DWORD dwFlags, LPITEMIDLIST *pPidlOut);
00063 
00064         /* ShellFolder2 */
00065         virtual HRESULT WINAPI GetDefaultSearchGUID(GUID *pguid);
00066         virtual HRESULT WINAPI EnumSearches(IEnumExtraSearch **ppenum);
00067         virtual HRESULT WINAPI GetDefaultColumn(DWORD dwRes, ULONG *pSort, ULONG *pDisplay);
00068         virtual HRESULT WINAPI GetDefaultColumnState(UINT iColumn, DWORD *pcsFlags);
00069         virtual HRESULT WINAPI GetDetailsEx(LPCITEMIDLIST pidl, const SHCOLUMNID *pscid, VARIANT *pv);
00070         virtual HRESULT WINAPI GetDetailsOf(LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS *psd);
00071         virtual HRESULT WINAPI MapColumnToSCID(UINT column, SHCOLUMNID *pscid);
00072 
00073         // IPersist
00074         virtual HRESULT WINAPI GetClassID(CLSID *lpClassId);
00075 
00076         // IPersistFolder
00077         virtual HRESULT WINAPI Initialize(LPCITEMIDLIST pidl);
00078 
00079         // IPersistFolder2
00080         virtual HRESULT WINAPI GetCurFolder(LPITEMIDLIST * pidl);
00081 
00082         // IPersistFolder3
00083         virtual HRESULT WINAPI InitializeEx(IBindCtx *pbc, LPCITEMIDLIST pidlRoot, const PERSIST_FOLDER_TARGET_INFO *ppfti);
00084         virtual HRESULT WINAPI GetFolderTargetInfo(PERSIST_FOLDER_TARGET_INFO *ppfti);
00085 
00086         // IDropTarget
00087         virtual HRESULT WINAPI DragEnter(IDataObject *pDataObject, DWORD dwKeyState, POINTL pt, DWORD *pdwEffect);
00088         virtual HRESULT WINAPI DragOver(DWORD dwKeyState, POINTL pt, DWORD *pdwEffect);
00089         virtual HRESULT WINAPI DragLeave();
00090         virtual HRESULT WINAPI Drop(IDataObject *pDataObject, DWORD dwKeyState, POINTL pt, DWORD *pdwEffect);
00091 
00092         // ISFHelper
00093         virtual HRESULT WINAPI GetUniqueName(LPWSTR pwszName, UINT uLen);
00094         virtual HRESULT WINAPI AddFolder(HWND hwnd, LPCWSTR pwszName, LPITEMIDLIST *ppidlOut);
00095         virtual HRESULT WINAPI DeleteItems(UINT cidl, LPCITEMIDLIST *apidl);
00096         virtual HRESULT WINAPI CopyItems(IShellFolder *pSFFrom, UINT cidl, LPCITEMIDLIST *apidl);
00097 
00098         DECLARE_REGISTRY_RESOURCEID(IDR_SHELLFSFOLDER)
00099         DECLARE_NOT_AGGREGATABLE(CFSFolder)
00100 
00101         DECLARE_PROTECT_FINAL_CONSTRUCT()
00102 
00103         BEGIN_COM_MAP(CFSFolder)
00104         COM_INTERFACE_ENTRY_IID(IID_IShellFolder2, IShellFolder2)
00105         COM_INTERFACE_ENTRY_IID(IID_IShellFolder, IShellFolder)
00106         COM_INTERFACE_ENTRY_IID(IID_IPersistFolder, IPersistFolder)
00107         COM_INTERFACE_ENTRY_IID(IID_IPersistFolder2, IPersistFolder2)
00108         COM_INTERFACE_ENTRY_IID(IID_IPersistFolder3, IPersistFolder3)
00109         COM_INTERFACE_ENTRY_IID(IID_IPersist, IPersist)
00110         COM_INTERFACE_ENTRY_IID(IID_ISFHelper, ISFHelper)
00111         END_COM_MAP()
00112 };
00113 
00114 #endif // _CFSFOLDER_H_

Generated on Sun May 27 2012 04:19:14 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.