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 CRegistryFolder
:
13 public CComCoClass
<CRegistryFolder
, &CLSID_RegistryFolder
>,
14 public CComObjectRootEx
<CComMultiThreadModelNoCS
>,
16 public IPersistFolder2
,
17 public IShellFolderViewCB
20 WCHAR m_NtPath
[MAX_PATH
];
22 LPITEMIDLIST m_shellPidl
;
27 virtual ~CRegistryFolder();
30 virtual HRESULT STDMETHODCALLTYPE
ParseDisplayName(
33 LPOLESTR lpszDisplayName
,
36 ULONG
*pdwAttributes
);
38 virtual HRESULT STDMETHODCALLTYPE
EnumObjects(
41 IEnumIDList
**ppenumIDList
);
43 virtual HRESULT STDMETHODCALLTYPE
BindToObject(
49 virtual HRESULT STDMETHODCALLTYPE
BindToStorage(
55 virtual HRESULT STDMETHODCALLTYPE
CompareIDs(
60 virtual HRESULT STDMETHODCALLTYPE
CreateViewObject(
65 virtual HRESULT STDMETHODCALLTYPE
GetAttributesOf(
67 PCUITEMID_CHILD_ARRAY apidl
,
70 virtual HRESULT STDMETHODCALLTYPE
GetUIObjectOf(
73 PCUITEMID_CHILD_ARRAY apidl
,
78 virtual HRESULT STDMETHODCALLTYPE
GetDisplayNameOf(
83 virtual HRESULT STDMETHODCALLTYPE
SetNameOf(
88 LPITEMIDLIST
*ppidlOut
);
91 virtual HRESULT STDMETHODCALLTYPE
GetDefaultSearchGUID(
94 virtual HRESULT STDMETHODCALLTYPE
EnumSearches(
95 IEnumExtraSearch
**ppenum
);
97 virtual HRESULT STDMETHODCALLTYPE
GetDefaultColumn(
102 virtual HRESULT STDMETHODCALLTYPE
GetDefaultColumnState(
104 SHCOLSTATEF
*pcsFlags
);
106 virtual HRESULT STDMETHODCALLTYPE
GetDetailsEx(
108 const SHCOLUMNID
*pscid
,
111 virtual HRESULT STDMETHODCALLTYPE
GetDetailsOf(
116 virtual HRESULT STDMETHODCALLTYPE
MapColumnToSCID(
121 virtual HRESULT STDMETHODCALLTYPE
GetClassID(CLSID
*lpClassId
);
124 virtual HRESULT STDMETHODCALLTYPE
Initialize(LPCITEMIDLIST pidl
);
127 virtual HRESULT STDMETHODCALLTYPE
GetCurFolder(LPITEMIDLIST
* pidl
);
129 // IShellFolderViewCB
130 virtual HRESULT STDMETHODCALLTYPE
MessageSFVCB(UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
133 HRESULT STDMETHODCALLTYPE
Initialize(LPCITEMIDLIST pidl
, PCWSTR ntPath
, HKEY hRoot
);
135 static HRESULT CALLBACK
DefCtxMenuCallback(IShellFolder
*, HWND
, IDataObject
*, UINT
, WPARAM
, LPARAM
);
137 DECLARE_REGISTRY_RESOURCEID(IDR_REGISTRYFOLDER
)
138 DECLARE_NOT_AGGREGATABLE(CRegistryFolder
)
139 DECLARE_PROTECT_FINAL_CONSTRUCT()
141 BEGIN_COM_MAP(CRegistryFolder
)
142 COM_INTERFACE_ENTRY_IID(IID_IShellFolder
, IShellFolder
)
143 COM_INTERFACE_ENTRY_IID(IID_IShellFolder2
, IShellFolder2
)
144 COM_INTERFACE_ENTRY_IID(IID_IPersist
, IPersist
)
145 COM_INTERFACE_ENTRY_IID(IID_IPersistFolder
, IPersistFolder
)
146 COM_INTERFACE_ENTRY_IID(IID_IPersistFolder2
, IPersistFolder2
)
147 COM_INTERFACE_ENTRY_IID(IID_IShellFolderViewCB
, IShellFolderViewCB
)