2 * PROJECT: ReactOS system libraries
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: dll\win32\stobject\stobject.cpp
5 * PURPOSE: Systray shell service object
6 * PROGRAMMERS: Robert Naumann
7 David Quintana <gigaherz@gmail.com>
11 extern const GUID CLSID_RegistryFolder
;
13 class CRegistryPidlManager
;
15 class CRegistryFolder
:
16 public CComCoClass
<CRegistryFolder
, &CLSID_RegistryFolder
>,
17 public CComObjectRootEx
<CComMultiThreadModelNoCS
>,
19 public IPersistFolder2
21 CRegistryPidlManager
* m_PidlManager
;
23 WCHAR m_NtPath
[MAX_PATH
];
25 LPITEMIDLIST m_shellPidl
;
30 virtual ~CRegistryFolder();
32 CRegistryPidlManager
& GetManager() { return *m_PidlManager
; }
35 virtual HRESULT STDMETHODCALLTYPE
ParseDisplayName(
38 LPOLESTR lpszDisplayName
,
41 ULONG
*pdwAttributes
);
43 virtual HRESULT STDMETHODCALLTYPE
EnumObjects(
46 IEnumIDList
**ppenumIDList
);
48 virtual HRESULT STDMETHODCALLTYPE
BindToObject(
54 virtual HRESULT STDMETHODCALLTYPE
BindToStorage(
60 virtual HRESULT STDMETHODCALLTYPE
CompareIDs(
65 virtual HRESULT STDMETHODCALLTYPE
CreateViewObject(
70 virtual HRESULT STDMETHODCALLTYPE
GetAttributesOf(
72 PCUITEMID_CHILD_ARRAY apidl
,
75 virtual HRESULT STDMETHODCALLTYPE
GetUIObjectOf(
78 PCUITEMID_CHILD_ARRAY apidl
,
83 virtual HRESULT STDMETHODCALLTYPE
GetDisplayNameOf(
88 virtual HRESULT STDMETHODCALLTYPE
SetNameOf(
93 LPITEMIDLIST
*ppidlOut
);
96 virtual HRESULT STDMETHODCALLTYPE
GetDefaultSearchGUID(
99 virtual HRESULT STDMETHODCALLTYPE
EnumSearches(
100 IEnumExtraSearch
**ppenum
);
102 virtual HRESULT STDMETHODCALLTYPE
GetDefaultColumn(
107 virtual HRESULT STDMETHODCALLTYPE
GetDefaultColumnState(
109 SHCOLSTATEF
*pcsFlags
);
111 virtual HRESULT STDMETHODCALLTYPE
GetDetailsEx(
113 const SHCOLUMNID
*pscid
,
116 virtual HRESULT STDMETHODCALLTYPE
GetDetailsOf(
121 virtual HRESULT STDMETHODCALLTYPE
MapColumnToSCID(
126 virtual HRESULT STDMETHODCALLTYPE
GetClassID(CLSID
*lpClassId
);
129 virtual HRESULT STDMETHODCALLTYPE
Initialize(LPCITEMIDLIST pidl
);
132 virtual HRESULT STDMETHODCALLTYPE
GetCurFolder(LPITEMIDLIST
* pidl
);
135 HRESULT STDMETHODCALLTYPE
Initialize(LPCITEMIDLIST pidl
, PCWSTR ntPath
);
137 DECLARE_REGISTRY_RESOURCEID(IDR_NTOBJECTFOLDER
)
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
)