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