2 * PROJECT: ReactOS shell extensions
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: dll/shellext/ntobjshex/regfolder.h
5 * PURPOSE: NT Object Namespace shell extension
6 * PROGRAMMERS: David Quintana <gigaherz@gmail.com>
10 extern const GUID CLSID_RegistryFolder
;
12 class CRegistryFolderExtractIcon
:
13 public CComObjectRootEx
<CComMultiThreadModelNoCS
>,
16 PCIDLIST_ABSOLUTE m_pcidlFolder
;
17 PCITEMID_CHILD m_pcidlChild
;
20 CRegistryFolderExtractIcon();
22 virtual ~CRegistryFolderExtractIcon();
24 HRESULT
Initialize(LPCWSTR ntPath
, PCIDLIST_ABSOLUTE parent
, UINT cidl
, PCUITEMID_CHILD_ARRAY apidl
);
26 virtual HRESULT STDMETHODCALLTYPE
GetIconLocation(
33 virtual HRESULT STDMETHODCALLTYPE
Extract(
40 DECLARE_NOT_AGGREGATABLE(CRegistryFolderExtractIcon
)
41 DECLARE_PROTECT_FINAL_CONSTRUCT()
43 BEGIN_COM_MAP(CRegistryFolderExtractIcon
)
44 COM_INTERFACE_ENTRY_IID(IID_IExtractIconW
, IExtractIconW
)
49 class CRegistryFolder
:
50 public CComCoClass
<CRegistryFolder
, &CLSID_RegistryFolder
>,
51 public CCommonFolder
<CRegistryFolder
, RegPidlEntry
, CRegistryFolderExtractIcon
>
58 virtual ~CRegistryFolder();
61 virtual HRESULT STDMETHODCALLTYPE
EnumObjects(
64 IEnumIDList
**ppenumIDList
);
66 virtual HRESULT STDMETHODCALLTYPE
InternalBindToObject(
68 const RegPidlEntry
* info
,
71 LPITEMIDLIST fullPidl
,
73 IShellFolder
** ppsfChild
);
75 virtual HRESULT STDMETHODCALLTYPE
GetDefaultColumnState(
77 SHCOLSTATEF
*pcsFlags
);
79 virtual HRESULT STDMETHODCALLTYPE
GetDetailsEx(
81 const SHCOLUMNID
*pscid
,
84 virtual HRESULT STDMETHODCALLTYPE
GetDetailsOf(
89 virtual HRESULT STDMETHODCALLTYPE
MapColumnToSCID(
94 virtual HRESULT STDMETHODCALLTYPE
Initialize(LPCITEMIDLIST pidl
);
97 virtual HRESULT STDMETHODCALLTYPE
Initialize(LPCITEMIDLIST pidl
, PCWSTR ntPath
, HKEY hRoot
);
100 virtual HRESULT STDMETHODCALLTYPE
CompareIDs(LPARAM lParam
, const RegPidlEntry
* first
, const RegPidlEntry
* second
);
101 virtual ULONG STDMETHODCALLTYPE
ConvertAttributes(const RegPidlEntry
* entry
, PULONG inMask
);
102 virtual BOOL STDMETHODCALLTYPE
IsFolder(LPCITEMIDLIST pcidl
);
103 virtual BOOL STDMETHODCALLTYPE
IsFolder(const RegPidlEntry
* info
);
105 virtual HRESULT
GetInfoFromPidl(LPCITEMIDLIST pcidl
, const RegPidlEntry
** pentry
);
107 HRESULT
FormatValueData(DWORD contentType
, PVOID td
, DWORD contentsLength
, PCWSTR
* strContents
);
109 HRESULT
FormatContentsForDisplay(const RegPidlEntry
* info
, HKEY rootKey
, LPCWSTR ntPath
, PCWSTR
* strContents
);