2 * PROJECT: ReactOS shell extensions
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: dll\shellext\ntobjshex\ntobjns.h
5 * PURPOSE: NT Object Namespace shell extension
6 * PROGRAMMERS: David Quintana <gigaherz@gmail.com>
10 extern const GUID CLSID_NtObjectFolder
;
12 class CNtObjectPidlManager
;
14 class CNtObjectFolder
:
15 public CComCoClass
<CNtObjectFolder
, &CLSID_NtObjectFolder
>,
16 public CComObjectRootEx
<CComMultiThreadModelNoCS
>,
18 public IPersistFolder2
20 CNtObjectPidlManager
* m_PidlManager
;
22 WCHAR m_NtPath
[MAX_PATH
];
24 LPITEMIDLIST m_shellPidl
;
29 virtual ~CNtObjectFolder();
31 CNtObjectPidlManager
& GetManager() { return *m_PidlManager
; }
34 virtual HRESULT STDMETHODCALLTYPE
ParseDisplayName(
37 LPOLESTR lpszDisplayName
,
40 ULONG
*pdwAttributes
);
42 virtual HRESULT STDMETHODCALLTYPE
EnumObjects(
45 IEnumIDList
**ppenumIDList
);
47 virtual HRESULT STDMETHODCALLTYPE
BindToObject(
53 virtual HRESULT STDMETHODCALLTYPE
BindToStorage(
59 virtual HRESULT STDMETHODCALLTYPE
CompareIDs(
64 virtual HRESULT STDMETHODCALLTYPE
CreateViewObject(
69 virtual HRESULT STDMETHODCALLTYPE
GetAttributesOf(
71 PCUITEMID_CHILD_ARRAY apidl
,
74 virtual HRESULT STDMETHODCALLTYPE
GetUIObjectOf(
77 PCUITEMID_CHILD_ARRAY apidl
,
82 virtual HRESULT STDMETHODCALLTYPE
GetDisplayNameOf(
87 virtual HRESULT STDMETHODCALLTYPE
SetNameOf(
92 LPITEMIDLIST
*ppidlOut
);
95 virtual HRESULT STDMETHODCALLTYPE
GetDefaultSearchGUID(
98 virtual HRESULT STDMETHODCALLTYPE
EnumSearches(
99 IEnumExtraSearch
**ppenum
);
101 virtual HRESULT STDMETHODCALLTYPE
GetDefaultColumn(
106 virtual HRESULT STDMETHODCALLTYPE
GetDefaultColumnState(
108 SHCOLSTATEF
*pcsFlags
);
110 virtual HRESULT STDMETHODCALLTYPE
GetDetailsEx(
112 const SHCOLUMNID
*pscid
,
115 virtual HRESULT STDMETHODCALLTYPE
GetDetailsOf(
120 virtual HRESULT STDMETHODCALLTYPE
MapColumnToSCID(
125 virtual HRESULT STDMETHODCALLTYPE
GetClassID(CLSID
*lpClassId
);
128 virtual HRESULT STDMETHODCALLTYPE
Initialize(LPCITEMIDLIST pidl
);
131 virtual HRESULT STDMETHODCALLTYPE
GetCurFolder(LPITEMIDLIST
* pidl
);
134 HRESULT STDMETHODCALLTYPE
Initialize(LPCITEMIDLIST pidl
, PCWSTR ntPath
);
136 DECLARE_REGISTRY_RESOURCEID(IDR_NTOBJECTFOLDER
)
137 DECLARE_NOT_AGGREGATABLE(CNtObjectFolder
)
138 DECLARE_PROTECT_FINAL_CONSTRUCT()
140 BEGIN_COM_MAP(CNtObjectFolder
)
141 COM_INTERFACE_ENTRY_IID(IID_IShellFolder
, IShellFolder
)
142 COM_INTERFACE_ENTRY_IID(IID_IShellFolder2
, IShellFolder2
)
143 COM_INTERFACE_ENTRY_IID(IID_IPersist
, IPersist
)
144 COM_INTERFACE_ENTRY_IID(IID_IPersistFolder
, IPersistFolder
)
145 COM_INTERFACE_ENTRY_IID(IID_IPersistFolder2
, IPersistFolder2
)