ReactOS  0.4.15-dev-439-g292f67a
ntobjfolder.h
Go to the documentation of this file.
1 /*
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>
7  */
8 #pragma once
9 
10 extern const GUID CLSID_NtObjectFolder;
11 
13  public CComObjectRootEx<CComMultiThreadModelNoCS>,
14  public IExtractIconW
15 {
18 
19 public:
21 
23 
25 
27  UINT uFlags,
28  LPWSTR szIconFile,
29  UINT cchMax,
30  INT *piIndex,
31  UINT *pwFlags);
32 
34  LPCWSTR pszFile,
35  UINT nIconIndex,
36  HICON *phiconLarge,
37  HICON *phiconSmall,
38  UINT nIconSize);
39 
42 
44  COM_INTERFACE_ENTRY_IID(IID_IExtractIconW, IExtractIconW)
45  END_COM_MAP()
46 
47 };
48 
50  public CComCoClass<CNtObjectFolder, &CLSID_NtObjectFolder>,
52 {
53 public:
55 
57  virtual ~CNtObjectFolder();
58 
59  // IShellFolder
60 
62  HWND hwndOwner,
63  SHCONTF grfFlags,
64  IEnumIDList **ppenumIDList);
65 
66 protected:
67  virtual HRESULT STDMETHODCALLTYPE InternalBindToObject(
68  PWSTR path,
69  const NtPidlEntry * info,
71  LPCITEMIDLIST rest,
72  LPITEMIDLIST fullPidl,
73  LPBC pbcReserved,
74  IShellFolder** ppsfChild);
75 
76  virtual HRESULT STDMETHODCALLTYPE ResolveSymLink(
77  const NtPidlEntry * info,
78  LPITEMIDLIST * fullPidl);
79 
80 public:
81  virtual HRESULT STDMETHODCALLTYPE GetDefaultColumnState(
82  UINT iColumn,
83  SHCOLSTATEF *pcsFlags);
84 
85  virtual HRESULT STDMETHODCALLTYPE GetDetailsEx(
86  LPCITEMIDLIST pidl,
87  const SHCOLUMNID *pscid,
88  VARIANT *pv);
89 
90  virtual HRESULT STDMETHODCALLTYPE GetDetailsOf(
91  LPCITEMIDLIST pidl,
92  UINT iColumn,
93  SHELLDETAILS *psd);
94 
95  virtual HRESULT STDMETHODCALLTYPE MapColumnToSCID(
96  UINT iColumn,
97  SHCOLUMNID *pscid);
98 
99  // IPersistFolder
101 
102  // Internal
104 
105 protected:
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);
110 
111  virtual HRESULT GetInfoFromPidl(LPCITEMIDLIST pcidl, const NtPidlEntry ** pentry);
112 
113  HRESULT FormatValueData(DWORD contentType, PVOID td, DWORD contentsLength, PCWSTR * strContents);
114 
115  HRESULT FormatContentsForDisplay(const NtPidlEntry * info, HKEY rootKey, LPCWSTR ntPath, PCWSTR * strContents);
116 };
const uint16_t * PCWSTR
Definition: typedefs.h:56
static HICON
Definition: imagelist.c:84
#define IsSymLink(Fcb)
Definition: ext2fs.h:280
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
interface IBindCtx * LPBC
Definition: objfwd.h:18
virtual ~CNtObjectFolderExtractIcon()
Definition: ntobjfolder.cpp:34
uint16_t * PWSTR
Definition: typedefs.h:55
const GLint * first
Definition: glext.h:5794
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
Definition: shtypes.idl:42
PCITEMID_CHILD m_pcidlChild
Definition: ntobjfolder.h:17
#define DECLARE_NOT_AGGREGATABLE(x)
Definition: atlcom.h:611
UINT uFlags
Definition: api.c:59
int32_t INT
Definition: typedefs.h:57
int WINAPI EnumObjects(_In_ HDC, _In_ int, _In_ GOBJENUMPROC, _In_ LPARAM)
DWORD SHCONTF
Definition: shobjidl.idl:187
const PCUITEMID_CHILD * PCUITEMID_CHILD_ARRAY
Definition: shtypes.idl:71
unsigned int BOOL
Definition: ntddk_ex.h:94
LONG_PTR LPARAM
Definition: windef.h:208
HRESULT Initialize(LPCWSTR ntPath, PCIDLIST_ABSOLUTE parent, UINT cidl, PCUITEMID_CHILD_ARRAY apidl)
Definition: ntobjfolder.cpp:40
#define BEGIN_COM_MAP(x)
Definition: atlcom.h:541
r parent
Definition: btrfs.c:2944
LONG HRESULT
Definition: typedefs.h:78
#define STDMETHODCALLTYPE
Definition: bdasup.h:9
unsigned long DWORD
Definition: ntddk_ex.h:95
UINT cchMax
const GUID CLSID_NtObjectFolder
Definition: ntobjfolder.cpp:14
DWORD SHCOLSTATEF
Definition: shtypes.idl:142
uint32_t entry
Definition: isohybrid.c:63
#define DECLARE_REGISTRY_RESOURCEID(x)
Definition: atlcom.h:605
virtual HRESULT STDMETHODCALLTYPE Extract(LPCWSTR pszFile, UINT nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIconSize)
Definition: ntobjfolder.cpp:94
#define COM_INTERFACE_ENTRY_IID(iid, x)
Definition: atlcom.h:561
unsigned int * PULONG
Definition: retypes.h:1
unsigned int UINT
Definition: ndis.h:50
#define DECLARE_PROTECT_FINAL_CONSTRUCT()
Definition: atlcom.h:639
#define IDR_NTOBJECTFOLDER
Definition: resource.h:15
const WCHAR * class
Definition: main.c:68
unsigned int ULONG
Definition: retypes.h:1
#define END_COM_MAP()
Definition: atlcom.h:552
WCHAR * LPWSTR
Definition: xmlstorage.h:184
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41
LPARAM lParam
Definition: combotst.c:139
virtual HRESULT STDMETHODCALLTYPE GetIconLocation(UINT uFlags, LPWSTR szIconFile, UINT cchMax, INT *piIndex, UINT *pwFlags)
Definition: ntobjfolder.cpp:49