[SHELL32] Add line bar to About dialog for consistence
[reactos.git] / dll / win32 / shell32 / CFolderOptions.h
1 /*
2 * Folder options.
3 *
4 * Copyright (C) 2016 Mark Jansen
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21 #ifndef _CFOLDEROPTIONS_H_
22 #define _CFOLDEROPTIONS_H_
23
24 class CFolderOptions :
25 public CComCoClass<CFolderOptions, &CLSID_ShellFldSetExt>,
26 public CComObjectRootEx<CComMultiThreadModelNoCS>,
27 public IShellPropSheetExt,
28 public IShellExtInit,
29 public IObjectWithSite
30 {
31 private:
32 CComPtr<IUnknown> m_pSite;
33 //LPITEMIDLIST pidl;
34 //INT iIdEmpty;
35 //UINT cfShellIDList;
36 //void SF_RegisterClipFmt();
37 //BOOL fAcceptFmt; /* flag for pending Drop */
38 //BOOL QueryDrop (DWORD dwKeyState, LPDWORD pdwEffect);
39 //BOOL RecycleBinIsEmpty();
40
41 public:
42 CFolderOptions();
43 ~CFolderOptions();
44
45 // IShellPropSheetExt
46 virtual HRESULT STDMETHODCALLTYPE AddPages(LPFNSVADDPROPSHEETPAGE pfnAddPage, LPARAM lParam);
47 virtual HRESULT STDMETHODCALLTYPE ReplacePage(EXPPS uPageID, LPFNSVADDPROPSHEETPAGE pfnReplaceWith, LPARAM lParam);
48
49 // IShellExtInit
50 virtual HRESULT STDMETHODCALLTYPE Initialize(LPCITEMIDLIST pidlFolder, IDataObject *pdtobj, HKEY hkeyProgID);
51
52 // IObjectWithSite
53 virtual HRESULT STDMETHODCALLTYPE SetSite(IUnknown *pUnkSite);
54 virtual HRESULT STDMETHODCALLTYPE GetSite(REFIID riid, void **ppvSite);
55
56 DECLARE_REGISTRY_RESOURCEID(IDR_FOLDEROPTIONS)
57 DECLARE_NOT_AGGREGATABLE(CFolderOptions)
58
59 DECLARE_PROTECT_FINAL_CONSTRUCT()
60
61 BEGIN_COM_MAP(CFolderOptions)
62 COM_INTERFACE_ENTRY_IID(IID_IShellPropSheetExt, IShellPropSheetExt)
63 COM_INTERFACE_ENTRY_IID(IID_IShellExtInit, IShellExtInit)
64 COM_INTERFACE_ENTRY_IID(IID_IObjectWithSite, IObjectWithSite)
65 END_COM_MAP()
66 };
67
68 #endif /* _CFOLDEROPTIONS_H_ */