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

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

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