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 CNtObjectFolder
:
13 public CComCoClass
<CNtObjectFolder
, &CLSID_NtObjectFolder
>,
14 public CComObjectRootEx
<CComMultiThreadModelNoCS
>,
16 public IPersistFolder2
,
17 public IShellFolderViewCB
19 WCHAR m_NtPath
[MAX_PATH
];
21 LPITEMIDLIST m_shellPidl
;
26 virtual ~CNtObjectFolder();
29 virtual HRESULT STDMETHODCALLTYPE
ParseDisplayName(
32 LPOLESTR lpszDisplayName
,
35 ULONG
*pdwAttributes
);
37 virtual HRESULT STDMETHODCALLTYPE
EnumObjects(
40 IEnumIDList
**ppenumIDList
);
42 virtual HRESULT STDMETHODCALLTYPE
BindToObject(
48 virtual HRESULT STDMETHODCALLTYPE
BindToStorage(
54 virtual HRESULT STDMETHODCALLTYPE
CompareIDs(
59 virtual HRESULT STDMETHODCALLTYPE
CreateViewObject(
64 virtual HRESULT STDMETHODCALLTYPE
GetAttributesOf(
66 PCUITEMID_CHILD_ARRAY apidl
,
69 virtual HRESULT STDMETHODCALLTYPE
GetUIObjectOf(
72 PCUITEMID_CHILD_ARRAY apidl
,
77 virtual HRESULT STDMETHODCALLTYPE
GetDisplayNameOf(
82 virtual HRESULT STDMETHODCALLTYPE
SetNameOf(
87 LPITEMIDLIST
*ppidlOut
);
90 virtual HRESULT STDMETHODCALLTYPE
GetDefaultSearchGUID(
93 virtual HRESULT STDMETHODCALLTYPE
EnumSearches(
94 IEnumExtraSearch
**ppenum
);
96 virtual HRESULT STDMETHODCALLTYPE
GetDefaultColumn(
101 virtual HRESULT STDMETHODCALLTYPE
GetDefaultColumnState(
103 SHCOLSTATEF
*pcsFlags
);
105 virtual HRESULT STDMETHODCALLTYPE
GetDetailsEx(
107 const SHCOLUMNID
*pscid
,
110 virtual HRESULT STDMETHODCALLTYPE
GetDetailsOf(
115 virtual HRESULT STDMETHODCALLTYPE
MapColumnToSCID(
120 virtual HRESULT STDMETHODCALLTYPE
GetClassID(CLSID
*lpClassId
);
123 virtual HRESULT STDMETHODCALLTYPE
Initialize(LPCITEMIDLIST pidl
);
126 virtual HRESULT STDMETHODCALLTYPE
GetCurFolder(LPITEMIDLIST
* pidl
);
128 // IShellFolderViewCB
129 virtual HRESULT STDMETHODCALLTYPE
MessageSFVCB(UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
132 HRESULT STDMETHODCALLTYPE
Initialize(LPCITEMIDLIST pidl
, PCWSTR ntPath
);
134 static HRESULT CALLBACK
DefCtxMenuCallback(IShellFolder
*, HWND
, IDataObject
*, UINT
, WPARAM
, LPARAM
);
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
)
146 COM_INTERFACE_ENTRY_IID(IID_IShellFolderViewCB
, IShellFolderViewCB
)