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

admintools.h
Go to the documentation of this file.
00001 /*
00002  *    Virtual Admin Tools Folder
00003  *
00004  *    Copyright 2008                Johannes Anderwald
00005  *    Copyright 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 Street, Fifth Floor, Boston, MA  02110-1301  USA
00020  */
00021 
00022 #ifndef _SHFLDR_ADMINTOOLS_H_
00023 #define _SHFLDR_ADMINTOOLS_H_
00024 
00025 class CAdminToolsFolder :
00026     public CComCoClass<CAdminToolsFolder, &CLSID_AdminFolderShortcut>,
00027     public CComObjectRootEx<CComMultiThreadModelNoCS>,
00028     public IShellFolder2,
00029     public IPersistFolder2
00030 {
00031     private:
00032         CLSID *pclsid;
00033 
00034         LPITEMIDLIST pidlRoot;  /* absolute pidl */
00035         LPWSTR szTarget;
00036 
00037         int dwAttributes;        /* attributes returned by GetAttributesOf FIXME: use it */
00038     public:
00039         CAdminToolsFolder();
00040         ~CAdminToolsFolder();
00041         HRESULT WINAPI FinalConstruct();
00042 
00043         // IShellFolder
00044         virtual HRESULT WINAPI ParseDisplayName (HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, DWORD *pchEaten, LPITEMIDLIST *ppidl, DWORD *pdwAttributes);
00045         virtual HRESULT WINAPI EnumObjects(HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST *ppEnumIDList);
00046         virtual HRESULT WINAPI BindToObject(LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut);
00047         virtual HRESULT WINAPI BindToStorage(LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut);
00048         virtual HRESULT WINAPI CompareIDs(LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2);
00049         virtual HRESULT WINAPI CreateViewObject(HWND hwndOwner, REFIID riid, LPVOID *ppvOut);
00050         virtual HRESULT WINAPI GetAttributesOf (UINT cidl, LPCITEMIDLIST *apidl, DWORD *rgfInOut);
00051         virtual HRESULT WINAPI GetUIObjectOf(HWND hwndOwner, UINT cidl, LPCITEMIDLIST *apidl, REFIID riid, UINT * prgfInOut, LPVOID * ppvOut);
00052         virtual HRESULT WINAPI GetDisplayNameOf(LPCITEMIDLIST pidl, DWORD dwFlags, LPSTRRET strRet);
00053         virtual HRESULT WINAPI SetNameOf(HWND hwndOwner, LPCITEMIDLIST pidl, LPCOLESTR lpName, DWORD dwFlags, LPITEMIDLIST *pPidlOut);
00054 
00055         /* ShellFolder2 */
00056         virtual HRESULT WINAPI GetDefaultSearchGUID(GUID *pguid);
00057         virtual HRESULT WINAPI EnumSearches(IEnumExtraSearch **ppenum);
00058         virtual HRESULT WINAPI GetDefaultColumn(DWORD dwRes, ULONG *pSort, ULONG *pDisplay);
00059         virtual HRESULT WINAPI GetDefaultColumnState(UINT iColumn, DWORD *pcsFlags);
00060         virtual HRESULT WINAPI GetDetailsEx(LPCITEMIDLIST pidl, const SHCOLUMNID *pscid, VARIANT *pv);
00061         virtual HRESULT WINAPI GetDetailsOf(LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS *psd);
00062         virtual HRESULT WINAPI MapColumnToSCID(UINT column, SHCOLUMNID *pscid);
00063 
00064         // IPersist
00065         virtual HRESULT WINAPI GetClassID(CLSID *lpClassId);
00066 
00067         // IPersistFolder
00068         virtual HRESULT WINAPI Initialize(LPCITEMIDLIST pidl);
00069 
00070         // IPersistFolder2
00071         virtual HRESULT WINAPI GetCurFolder(LPITEMIDLIST * pidl);
00072 
00073         DECLARE_REGISTRY_RESOURCEID(IDR_ADMINFOLDERSHORTCUT)
00074         DECLARE_NOT_AGGREGATABLE(CAdminToolsFolder)
00075 
00076         DECLARE_PROTECT_FINAL_CONSTRUCT()
00077 
00078         BEGIN_COM_MAP(CAdminToolsFolder)
00079         COM_INTERFACE_ENTRY_IID(IID_IShellFolder2, IShellFolder2)
00080         COM_INTERFACE_ENTRY_IID(IID_IShellFolder, IShellFolder)
00081         COM_INTERFACE_ENTRY_IID(IID_IPersistFolder, IPersistFolder)
00082         COM_INTERFACE_ENTRY_IID(IID_IPersistFolder2, IPersistFolder2)
00083         COM_INTERFACE_ENTRY_IID(IID_IPersist, IPersist)
00084         END_COM_MAP()
00085 };
00086 
00087 #endif // _SHFLDR_ADMINTOOLS_H_

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