2 * PROJECT: ReactOS shell extensions
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: dll/shellext/ntobjshex/ntobjfolder.h
5 * PURPOSE: NT Object Namespace shell extension
6 * PROGRAMMERS: David Quintana <gigaherz@gmail.com>
10 extern const GUID CLSID_NtObjectFolder
;
12 class CNtObjectFolderExtractIcon
:
13 public CComObjectRootEx
<CComMultiThreadModelNoCS
>,
17 PCITEMID_CHILD m_pcidlChild
;
20 CNtObjectFolderExtractIcon();
22 virtual ~CNtObjectFolderExtractIcon();
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(CNtObjectFolderExtractIcon
)
41 DECLARE_PROTECT_FINAL_CONSTRUCT()
43 BEGIN_COM_MAP(CNtObjectFolderExtractIcon
)
44 COM_INTERFACE_ENTRY_IID(IID_IExtractIconW
, IExtractIconW
)
49 class CNtObjectFolder
:
50 public CComCoClass
<CNtObjectFolder
, &CLSID_NtObjectFolder
>,
51 public CCommonFolder
<CNtObjectFolder
, NtPidlEntry
, CNtObjectFolderExtractIcon
>
54 DECLARE_REGISTRY_RESOURCEID(IDR_NTOBJECTFOLDER
)
57 virtual ~CNtObjectFolder();
61 virtual HRESULT STDMETHODCALLTYPE
EnumObjects(
64 IEnumIDList
**ppenumIDList
);
67 virtual HRESULT STDMETHODCALLTYPE
InternalBindToObject(
69 const NtPidlEntry
* info
,
72 LPITEMIDLIST fullPidl
,
74 IShellFolder
** ppsfChild
);
76 virtual HRESULT STDMETHODCALLTYPE
ResolveSymLink(
77 const NtPidlEntry
* info
,
78 LPITEMIDLIST
* fullPidl
);
81 virtual HRESULT STDMETHODCALLTYPE
GetDefaultColumnState(
83 SHCOLSTATEF
*pcsFlags
);
85 virtual HRESULT STDMETHODCALLTYPE
GetDetailsEx(
87 const SHCOLUMNID
*pscid
,
90 virtual HRESULT STDMETHODCALLTYPE
GetDetailsOf(
95 virtual HRESULT STDMETHODCALLTYPE
MapColumnToSCID(
100 virtual HRESULT STDMETHODCALLTYPE
Initialize(LPCITEMIDLIST pidl
);
103 HRESULT STDMETHODCALLTYPE
Initialize(LPCITEMIDLIST pidl
, PCWSTR ntPath
);
106 virtual HRESULT STDMETHODCALLTYPE
CompareIDs(LPARAM lParam
, const NtPidlEntry
* first
, const NtPidlEntry
* second
);
107 virtual ULONG STDMETHODCALLTYPE
ConvertAttributes(const NtPidlEntry
* entry
, PULONG inMask
);
108 virtual BOOL STDMETHODCALLTYPE
IsFolder(const NtPidlEntry
* info
);
109 virtual BOOL STDMETHODCALLTYPE
IsSymLink(const NtPidlEntry
* info
);
111 virtual HRESULT
GetInfoFromPidl(LPCITEMIDLIST pcidl
, const NtPidlEntry
** pentry
);
113 HRESULT
FormatValueData(DWORD contentType
, PVOID td
, DWORD contentsLength
, PCWSTR
* strContents
);
115 HRESULT
FormatContentsForDisplay(const NtPidlEntry
* info
, HKEY rootKey
, LPCWSTR ntPath
, PCWSTR
* strContents
);