https://git.reactos.org/?p=reactos.git;a=commitdiff;h=ba03ffd645520be066ab91f690fe6b840c424ee6

commit ba03ffd645520be066ab91f690fe6b840c424ee6
Author:     Stanislav Motylkov <[email protected]>
AuthorDate: Tue Dec 20 20:08:08 2022 +0300
Commit:     Stanislav Motylkov <[email protected]>
CommitDate: Tue Dec 20 20:08:08 2022 +0300

    [NTOBJSHEX] Formatting only
---
 dll/shellext/ntobjshex/foldercommon.cpp |   9 +-
 dll/shellext/ntobjshex/foldercommon.h   |  47 ++--
 dll/shellext/ntobjshex/ntobjenum.cpp    |  47 ++--
 dll/shellext/ntobjshex/ntobjenum.h      |  22 +-
 dll/shellext/ntobjshex/ntobjfolder.cpp  | 231 ++++++++++---------
 dll/shellext/ntobjshex/ntobjfolder.h    |  12 +-
 dll/shellext/ntobjshex/ntobjshex.cpp    |   9 +-
 dll/shellext/ntobjshex/regfolder.cpp    | 381 +++++++++++++++++---------------
 dll/shellext/ntobjshex/regfolder.h      |  10 +-
 9 files changed, 391 insertions(+), 377 deletions(-)

diff --git a/dll/shellext/ntobjshex/foldercommon.cpp 
b/dll/shellext/ntobjshex/foldercommon.cpp
index b67e01edb23..d5050cd5883 100644
--- a/dll/shellext/ntobjshex/foldercommon.cpp
+++ b/dll/shellext/ntobjshex/foldercommon.cpp
@@ -1,9 +1,8 @@
 /*
- * PROJECT:     ReactOS shell extensions
- * LICENSE:     GPL - See COPYING in the top level directory
- * FILE:        dll/shellext/ntobjshex/ntobjfolder.cpp
- * PURPOSE:     NT Object Namespace shell extension
- * PROGRAMMERS: David Quintana <[email protected]>
+ * PROJECT:     NT Object Namespace shell extension
+ * LICENSE:     GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
+ * PURPOSE:     Folder view class placeholder file
+ * COPYRIGHT:   Copyright 2015-2017 David Quintana <[email protected]>
  */
 
 #include "precomp.h"
diff --git a/dll/shellext/ntobjshex/foldercommon.h 
b/dll/shellext/ntobjshex/foldercommon.h
index 3a6b472ce8c..2983f328198 100644
--- a/dll/shellext/ntobjshex/foldercommon.h
+++ b/dll/shellext/ntobjshex/foldercommon.h
@@ -1,10 +1,10 @@
 /*
- * PROJECT:     ReactOS shell extensions
- * LICENSE:     GPL - See COPYING in the top level directory
- * FILE:        dll/shellext/ntobjshex/ntobjfolder.h
- * PURPOSE:     NT Object Namespace shell extension
- * PROGRAMMERS: David Quintana <[email protected]>
+ * PROJECT:     NT Object Namespace shell extension
+ * LICENSE:     GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
+ * PURPOSE:     Folder view class header and implementation
+ * COPYRIGHT:   Copyright 2015-2017 David Quintana <[email protected]>
  */
+
 #pragma once
 
 extern const GUID CLSID_NtObjectFolder;
@@ -24,16 +24,18 @@ public:
     {
         switch (uMsg)
         {
-        case SFVM_DEFVIEWMODE:
-        {
-            FOLDERVIEWMODE* pViewMode = (FOLDERVIEWMODE*)lParam;
-            *pViewMode = FVM_DETAILS;
-            return S_OK;
-        }
-        case SFVM_COLUMNCLICK:
-            return S_FALSE;
-        case SFVM_BACKGROUNDENUM:
-            return S_OK;
+            case SFVM_DEFVIEWMODE:
+            {
+                FOLDERVIEWMODE* pViewMode = (FOLDERVIEWMODE*)lParam;
+                *pViewMode = FVM_DETAILS;
+                return S_OK;
+            }
+
+            case SFVM_COLUMNCLICK:
+                return S_FALSE;
+
+            case SFVM_BACKGROUNDENUM:
+                return S_OK;
         }
 
         DbgPrint("MessageSFVCB unimplemented %d %08x %08x\n", uMsg, wParam, 
lParam);
@@ -697,12 +699,13 @@ public:
     {
         switch (uMsg)
         {
-        case DFM_MERGECONTEXTMENU:
-            return S_OK;
-        case DFM_INVOKECOMMAND:
-        case DFM_INVOKECOMMANDEX:
-        case DFM_GETDEFSTATICID: // Required for Windows 7 to pick a default
-            return S_FALSE;
+            case DFM_MERGECONTEXTMENU:
+                return S_OK;
+
+            case DFM_INVOKECOMMAND:
+            case DFM_INVOKECOMMANDEX:
+            case DFM_GETDEFSTATICID: // Required for Windows 7 to pick a 
default
+                return S_FALSE;
         }
         return E_NOTIMPL;
     }
@@ -718,4 +721,4 @@ public:
         COM_INTERFACE_ENTRY_IID(IID_IPersistFolder2, IPersistFolder2)
     END_COM_MAP()
 
-};
\ No newline at end of file
+};
diff --git a/dll/shellext/ntobjshex/ntobjenum.cpp 
b/dll/shellext/ntobjshex/ntobjenum.cpp
index 80ae5da6900..62d1b1940b7 100644
--- a/dll/shellext/ntobjshex/ntobjenum.cpp
+++ b/dll/shellext/ntobjshex/ntobjenum.cpp
@@ -1,19 +1,8 @@
 /*
- * Copyright 2004, 2005 Martin Fuchs
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+ * PROJECT:     NT Object Namespace shell extension
+ * LICENSE:     LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
+ * PURPOSE:     NT Object Namespace enumeration functions
+ * COPYRIGHT:   Copyright 2004-2005 Martin Fuchs <[email protected]>
  */
 
 #include "precomp.h"
@@ -73,19 +62,19 @@ static DWORD NtOpenObject(OBJECT_TYPE type, PHANDLE 
phandle, DWORD access, LPCWS
 
     switch (type)
     {
-    case DIRECTORY_OBJECT:      return NtOpenDirectoryObject(phandle, access, 
&open_struct);
-    case SYMBOLICLINK_OBJECT:   return NtOpenSymbolicLinkObject(phandle, 
access, &open_struct);
-    case MUTANT_OBJECT:         return NtOpenMutant(phandle, access, 
&open_struct);
-    case SECTION_OBJECT:        return NtOpenSection(phandle, access, 
&open_struct);
-    case EVENT_OBJECT:          return NtOpenEvent(phandle, access, 
&open_struct);
-    case SEMAPHORE_OBJECT:      return NtOpenSemaphore(phandle, access, 
&open_struct);
-    case TIMER_OBJECT:          return NtOpenTimer(phandle, access, 
&open_struct);
-    case KEY_OBJECT:            return NtOpenKey(phandle, access, 
&open_struct);
-    case EVENTPAIR_OBJECT:      return NtOpenEventPair(phandle, access, 
&open_struct);
-    case IOCOMPLETION_OBJECT:   return NtOpenIoCompletion(phandle, access, 
&open_struct);
-    case FILE_OBJECT:           return NtOpenFile(phandle, access, 
&open_struct, &ioStatusBlock, FILE_SHARE_READ | FILE_SHARE_WRITE | 
FILE_SHARE_DELETE, 0);
-    default:
-        return ERROR_INVALID_FUNCTION;
+        case DIRECTORY_OBJECT:      return NtOpenDirectoryObject(phandle, 
access, &open_struct);
+        case SYMBOLICLINK_OBJECT:   return NtOpenSymbolicLinkObject(phandle, 
access, &open_struct);
+        case MUTANT_OBJECT:         return NtOpenMutant(phandle, access, 
&open_struct);
+        case SECTION_OBJECT:        return NtOpenSection(phandle, access, 
&open_struct);
+        case EVENT_OBJECT:          return NtOpenEvent(phandle, access, 
&open_struct);
+        case SEMAPHORE_OBJECT:      return NtOpenSemaphore(phandle, access, 
&open_struct);
+        case TIMER_OBJECT:          return NtOpenTimer(phandle, access, 
&open_struct);
+        case KEY_OBJECT:            return NtOpenKey(phandle, access, 
&open_struct);
+        case EVENTPAIR_OBJECT:      return NtOpenEventPair(phandle, access, 
&open_struct);
+        case IOCOMPLETION_OBJECT:   return NtOpenIoCompletion(phandle, access, 
&open_struct);
+        case FILE_OBJECT:           return NtOpenFile(phandle, access, 
&open_struct, &ioStatusBlock, FILE_SHARE_READ | FILE_SHARE_WRITE | 
FILE_SHARE_DELETE, 0);
+        default:
+            return ERROR_INVALID_FUNCTION;
     }
 }
 
@@ -748,4 +737,4 @@ HRESULT GetEnumRegistryKey(LPCWSTR path, HKEY root, 
IEnumIDList ** ppil)
 HRESULT GetEnumNTDirectory(LPCWSTR path, IEnumIDList ** ppil)
 {
     return ShellObjectCreatorInit<CEnumNTDirectory>(path, 
IID_PPV_ARG(IEnumIDList, ppil));
-}
\ No newline at end of file
+}
diff --git a/dll/shellext/ntobjshex/ntobjenum.h 
b/dll/shellext/ntobjshex/ntobjenum.h
index 2f683696006..b277f94bce4 100644
--- a/dll/shellext/ntobjshex/ntobjenum.h
+++ b/dll/shellext/ntobjshex/ntobjenum.h
@@ -1,20 +1,10 @@
 /*
- * Copyright 2004 Martin Fuchs
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+ * PROJECT:     NT Object Namespace shell extension
+ * LICENSE:     LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
+ * PURPOSE:     NT Object Namespace enumeration header
+ * COPYRIGHT:   Copyright 2004 Martin Fuchs <[email protected]>
  */
+
 #pragma once
 
 
@@ -100,4 +90,4 @@ HRESULT GetEnumRegistryRoot(IEnumIDList ** ppil);
 HRESULT GetEnumRegistryKey(LPCWSTR path, HKEY root, IEnumIDList ** ppil);
 HRESULT GetEnumNTDirectory(LPCWSTR path, IEnumIDList ** ppil);
 
-HRESULT GetNTObjectSymbolicLinkTarget(LPCWSTR path, LPCWSTR entryName, 
PUNICODE_STRING LinkTarget);
\ No newline at end of file
+HRESULT GetNTObjectSymbolicLinkTarget(LPCWSTR path, LPCWSTR entryName, 
PUNICODE_STRING LinkTarget);
diff --git a/dll/shellext/ntobjshex/ntobjfolder.cpp 
b/dll/shellext/ntobjshex/ntobjfolder.cpp
index 056bf67ca87..020dcc35bfe 100644
--- a/dll/shellext/ntobjshex/ntobjfolder.cpp
+++ b/dll/shellext/ntobjshex/ntobjfolder.cpp
@@ -1,9 +1,8 @@
 /*
- * PROJECT:     ReactOS shell extensions
- * LICENSE:     GPL - See COPYING in the top level directory
- * FILE:        dll/shellext/ntobjshex/ntobjfolder.cpp
- * PURPOSE:     NT Object Namespace shell extension
- * PROGRAMMERS: David Quintana <[email protected]>
+ * PROJECT:     NT Object Namespace shell extension
+ * LICENSE:     GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
+ * PURPOSE:     NT Object Namespace folder class implementation
+ * COPYRIGHT:   Copyright 2015-2017 David Quintana <[email protected]>
  */
 
 #include "precomp.h"
@@ -62,32 +61,36 @@ HRESULT STDMETHODCALLTYPE 
CNtObjectFolderExtractIcon::GetIconLocation(
 
     switch (entry->objectType)
     {
-    case DIRECTORY_OBJECT:
-    case SYMBOLICLINK_OBJECT:
-        GetModuleFileNameW(g_hInstance, szIconFile, cchMax);
-        *piIndex = -((uFlags & GIL_OPENICON) ? IDI_NTOBJECTDIROPEN : 
IDI_NTOBJECTDIR);
-        *pwFlags = flags;
-        return S_OK;
-    case DEVICE_OBJECT:
-        GetModuleFileNameW(g_hInstance, szIconFile, cchMax);
-        *piIndex = -IDI_NTOBJECTDEVICE;
-        *pwFlags = flags;
-        return S_OK;
-    case PORT_OBJECT:
-        GetModuleFileNameW(g_hInstance, szIconFile, cchMax);
-        *piIndex = -IDI_NTOBJECTPORT;
-        *pwFlags = flags;
-        return S_OK;
-    case KEY_OBJECT:
-        GetModuleFileNameW(g_hInstance, szIconFile, cchMax);
-        *piIndex = -IDI_REGISTRYKEY;
-        *pwFlags = flags;
-        return S_OK;
-    default:
-        GetModuleFileNameW(g_hInstance, szIconFile, cchMax);
-        *piIndex = -IDI_NTOBJECTITEM;
-        *pwFlags = flags;
-        return S_OK;
+        case DIRECTORY_OBJECT:
+        case SYMBOLICLINK_OBJECT:
+            GetModuleFileNameW(g_hInstance, szIconFile, cchMax);
+            *piIndex = -((uFlags & GIL_OPENICON) ? IDI_NTOBJECTDIROPEN : 
IDI_NTOBJECTDIR);
+            *pwFlags = flags;
+            return S_OK;
+
+        case DEVICE_OBJECT:
+            GetModuleFileNameW(g_hInstance, szIconFile, cchMax);
+            *piIndex = -IDI_NTOBJECTDEVICE;
+            *pwFlags = flags;
+            return S_OK;
+
+        case PORT_OBJECT:
+            GetModuleFileNameW(g_hInstance, szIconFile, cchMax);
+            *piIndex = -IDI_NTOBJECTPORT;
+            *pwFlags = flags;
+            return S_OK;
+
+        case KEY_OBJECT:
+            GetModuleFileNameW(g_hInstance, szIconFile, cchMax);
+            *piIndex = -IDI_REGISTRYKEY;
+            *pwFlags = flags;
+            return S_OK;
+
+        default:
+            GetModuleFileNameW(g_hInstance, szIconFile, cchMax);
+            *piIndex = -IDI_NTOBJECTITEM;
+            *pwFlags = flags;
+            return S_OK;
     }
 }
 
@@ -223,15 +226,17 @@ HRESULT STDMETHODCALLTYPE 
CNtObjectFolder::GetDefaultColumnState(
 {
     switch (iColumn)
     {
-    case NTOBJECT_COLUMN_NAME:
-        *pcsFlags = SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT;
-        return S_OK;
-    case NTOBJECT_COLUMN_TYPE:
-        *pcsFlags = SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT;
-        return S_OK;
-    case NTOBJECT_COLUMN_LINKTARGET:
-        *pcsFlags = SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT | 
SHCOLSTATE_SLOW;
-        return S_OK;
+        case NTOBJECT_COLUMN_NAME:
+            *pcsFlags = SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT;
+            return S_OK;
+
+        case NTOBJECT_COLUMN_TYPE:
+            *pcsFlags = SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT;
+            return S_OK;
+
+        case NTOBJECT_COLUMN_LINKTARGET:
+            *pcsFlags = SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT | 
SHCOLSTATE_SLOW;
+            return S_OK;
     }
 
     return E_INVALIDARG;
@@ -321,75 +326,83 @@ HRESULT STDMETHODCALLTYPE CNtObjectFolder::GetDetailsOf(
 
         switch (iColumn)
         {
-        case NTOBJECT_COLUMN_NAME:
-            psd->fmt = LVCFMT_LEFT;
+            case NTOBJECT_COLUMN_NAME:
+            {
+                psd->fmt = LVCFMT_LEFT;
 
-            MakeStrRetFromString(info->entryName, info->entryNameLength, 
&(psd->str));
-            return S_OK;
-        case NTOBJECT_COLUMN_TYPE:
-            psd->fmt = LVCFMT_LEFT;
+                MakeStrRetFromString(info->entryName, info->entryNameLength, 
&(psd->str));
+                return S_OK;
+            }
 
-            if (info->objectType < 0)
+            case NTOBJECT_COLUMN_TYPE:
             {
-                NtPidlTypeData * td = (NtPidlTypeData*) (((PBYTE) info) + 
FIELD_OFFSET(NtPidlEntry, entryName) + info->entryNameLength + sizeof(WCHAR));
+                psd->fmt = LVCFMT_LEFT;
+
+                if (info->objectType < 0)
+                {
+                    NtPidlTypeData * td = (NtPidlTypeData*) (((PBYTE) info) + 
FIELD_OFFSET(NtPidlEntry, entryName) + info->entryNameLength + sizeof(WCHAR));
 
-                if (td->typeNameLength > 0)
-                    MakeStrRetFromString(td->typeName, td->typeNameLength, 
&(psd->str));
+                    if (td->typeNameLength > 0)
+                        MakeStrRetFromString(td->typeName, td->typeNameLength, 
&(psd->str));
+                    else
+                        MakeStrRetFromString(L"Unknown", &(psd->str));
+                }
                 else
-                    MakeStrRetFromString(L"Unknown", &(psd->str));
+                    MakeStrRetFromString(ObjectTypeNames[info->objectType], 
&(psd->str));
+                return S_OK;
             }
-            else
-                MakeStrRetFromString(ObjectTypeNames[info->objectType], 
&(psd->str));
-            return S_OK;
-        case NTOBJECT_COLUMN_LINKTARGET:
-        {
-            psd->fmt = LVCFMT_LEFT;
 
-            if (info->objectType == SYMBOLICLINK_OBJECT)
+            case NTOBJECT_COLUMN_LINKTARGET:
             {
-                WCHAR wbLink[MAX_PATH] = { 0 };
-                UNICODE_STRING link;
-                RtlInitEmptyUnicodeString(&link, wbLink, sizeof(wbLink));
-
-                HRESULT hr = GetNTObjectSymbolicLinkTarget(m_NtPath, 
info->entryName, &link);
+                psd->fmt = LVCFMT_LEFT;
 
-                if (!FAILED_UNEXPECTEDLY(hr) && link.Length > 0)
+                if (info->objectType == SYMBOLICLINK_OBJECT)
                 {
-                    MakeStrRetFromString(link.Buffer, link.Length, 
&(psd->str));
-                    return S_OK;
+                    WCHAR wbLink[MAX_PATH] = { 0 };
+                    UNICODE_STRING link;
+                    RtlInitEmptyUnicodeString(&link, wbLink, sizeof(wbLink));
+
+                    HRESULT hr = GetNTObjectSymbolicLinkTarget(m_NtPath, 
info->entryName, &link);
+
+                    if (!FAILED_UNEXPECTEDLY(hr) && link.Length > 0)
+                    {
+                        MakeStrRetFromString(link.Buffer, link.Length, 
&(psd->str));
+                        return S_OK;
+                    }
                 }
-            }
 
-            MakeStrRetFromString(L"", &(psd->str));
-            return S_OK;
-        }
+                MakeStrRetFromString(L"", &(psd->str));
+                return S_OK;
+            }
         }
     }
     else
     {
         switch (iColumn)
         {
-        case NTOBJECT_COLUMN_NAME:
-            psd->fmt = LVCFMT_LEFT;
-            psd->cxChar = 30;
+            case NTOBJECT_COLUMN_NAME:
+                psd->fmt = LVCFMT_LEFT;
+                psd->cxChar = 30;
 
-            // TODO: Make localizable
-            MakeStrRetFromString(L"Object Name", &(psd->str));
-            return S_OK;
-        case NTOBJECT_COLUMN_TYPE:
-            psd->fmt = LVCFMT_LEFT;
-            psd->cxChar = 20;
+                // TODO: Make localizable
+                MakeStrRetFromString(L"Object Name", &(psd->str));
+                return S_OK;
 
-            // TODO: Make localizable
-            MakeStrRetFromString(L"Object Type", &(psd->str));
-            return S_OK;
-        case NTOBJECT_COLUMN_LINKTARGET:
-            psd->fmt = LVCFMT_LEFT;
-            psd->cxChar = 30;
+            case NTOBJECT_COLUMN_TYPE:
+                psd->fmt = LVCFMT_LEFT;
+                psd->cxChar = 20;
 
-            // TODO: Make localizable
-            MakeStrRetFromString(L"Symlink Target", &(psd->str));
-            return S_OK;
+                // TODO: Make localizable
+                MakeStrRetFromString(L"Object Type", &(psd->str));
+                return S_OK;
+
+            case NTOBJECT_COLUMN_LINKTARGET:
+                psd->fmt = LVCFMT_LEFT;
+                psd->cxChar = 30;
+
+                // TODO: Make localizable
+                MakeStrRetFromString(L"Symlink Target", &(psd->str));
+                return S_OK;
         }
     }
 
@@ -403,18 +416,20 @@ HRESULT STDMETHODCALLTYPE 
CNtObjectFolder::MapColumnToSCID(
     static const GUID storage = PSGUID_STORAGE;
     switch (iColumn)
     {
-    case NTOBJECT_COLUMN_NAME:
-        pscid->fmtid = storage;
-        pscid->pid = PID_STG_NAME;
-        return S_OK;
-    case NTOBJECT_COLUMN_TYPE:
-        pscid->fmtid = storage;
-        pscid->pid = PID_STG_STORAGETYPE;
-        return S_OK;
-    case NTOBJECT_COLUMN_LINKTARGET:
-        pscid->fmtid = GUID_NtObjectColumns;
-        pscid->pid = NTOBJECT_COLUMN_LINKTARGET;
-        return S_OK;
+        case NTOBJECT_COLUMN_NAME:
+            pscid->fmtid = storage;
+            pscid->pid = PID_STG_NAME;
+            return S_OK;
+
+        case NTOBJECT_COLUMN_TYPE:
+            pscid->fmtid = storage;
+            pscid->pid = PID_STG_STORAGETYPE;
+            return S_OK;
+
+        case NTOBJECT_COLUMN_LINKTARGET:
+            pscid->fmtid = GUID_NtObjectColumns;
+            pscid->pid = NTOBJECT_COLUMN_LINKTARGET;
+            return S_OK;
     }
     return E_INVALIDARG;
 }
@@ -441,15 +456,15 @@ HRESULT CNtObjectFolder::CompareIDs(LPARAM lParam, const 
NtPidlEntry * first, co
 
     switch (column)
     {
-    case NTOBJECT_COLUMN_NAME:
-        return CompareName(lParam, first, second);
+        case NTOBJECT_COLUMN_NAME:
+            return CompareName(lParam, first, second);
 
-    case NTOBJECT_COLUMN_TYPE:
-        return MAKE_COMPARE_HRESULT(second->objectType - first->objectType);
+        case NTOBJECT_COLUMN_TYPE:
+            return MAKE_COMPARE_HRESULT(second->objectType - 
first->objectType);
 
-    case NTOBJECT_COLUMN_LINKTARGET:
-        // Can't sort by link target yet
-        return E_INVALIDARG;
+        case NTOBJECT_COLUMN_LINKTARGET:
+            // Can't sort by link target yet
+            return E_INVALIDARG;
     }
 
     DbgPrint("Unsupported sorting mode.\n");
@@ -498,4 +513,4 @@ HRESULT CNtObjectFolder::GetInfoFromPidl(LPCITEMIDLIST 
pcidl, const NtPidlEntry
 
     *pentry = entry;
     return S_OK;
-}
\ No newline at end of file
+}
diff --git a/dll/shellext/ntobjshex/ntobjfolder.h 
b/dll/shellext/ntobjshex/ntobjfolder.h
index 556ce571528..58e3c09990f 100644
--- a/dll/shellext/ntobjshex/ntobjfolder.h
+++ b/dll/shellext/ntobjshex/ntobjfolder.h
@@ -1,10 +1,10 @@
 /*
- * PROJECT:     ReactOS shell extensions
- * LICENSE:     GPL - See COPYING in the top level directory
- * FILE:        dll/shellext/ntobjshex/ntobjfolder.h
- * PURPOSE:     NT Object Namespace shell extension
- * PROGRAMMERS: David Quintana <[email protected]>
+ * PROJECT:     NT Object Namespace shell extension
+ * LICENSE:     GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
+ * PURPOSE:     NT Object Namespace folder class header
+ * COPYRIGHT:   Copyright 2015-2017 David Quintana <[email protected]>
  */
+
 #pragma once
 
 extern const GUID CLSID_NtObjectFolder;
@@ -113,4 +113,4 @@ protected:
     HRESULT FormatValueData(DWORD contentType, PVOID td, DWORD contentsLength, 
PCWSTR * strContents);
 
     HRESULT FormatContentsForDisplay(const NtPidlEntry * info, HKEY rootKey, 
LPCWSTR ntPath, PCWSTR * strContents);
-};
\ No newline at end of file
+};
diff --git a/dll/shellext/ntobjshex/ntobjshex.cpp 
b/dll/shellext/ntobjshex/ntobjshex.cpp
index a3f2ab20b0e..14e4f7b8821 100644
--- a/dll/shellext/ntobjshex/ntobjshex.cpp
+++ b/dll/shellext/ntobjshex/ntobjshex.cpp
@@ -1,9 +1,8 @@
 /*
- * PROJECT:     ReactOS shell extensions
- * LICENSE:     GPL - See COPYING in the top level directory
- * FILE:        dll/shellext/ntobjshex/ntobjshex.cpp
- * PURPOSE:     NT Object Namespace shell extension
- * PROGRAMMERS: David Quintana <[email protected]>
+ * PROJECT:     NT Object Namespace shell extension
+ * LICENSE:     GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
+ * PURPOSE:     Shell extension entry point and exports
+ * COPYRIGHT:   Copyright 2015-2017 David Quintana <[email protected]>
  */
 
 #include "precomp.h"
diff --git a/dll/shellext/ntobjshex/regfolder.cpp 
b/dll/shellext/ntobjshex/regfolder.cpp
index 70f1575d513..685a40cf866 100644
--- a/dll/shellext/ntobjshex/regfolder.cpp
+++ b/dll/shellext/ntobjshex/regfolder.cpp
@@ -1,9 +1,8 @@
 /*
- * PROJECT:     ReactOS shell extensions
- * LICENSE:     GPL - See COPYING in the top level directory
- * FILE:        dll/shellext/ntobjshex/regfolder.cpp
- * PURPOSE:     NT Object Namespace shell extension
- * PROGRAMMERS: David Quintana <[email protected]>
+ * PROJECT:     NT Object Namespace shell extension
+ * LICENSE:     GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
+ * PURPOSE:     System Registry folder class implementation
+ * COPYRIGHT:   Copyright 2015-2017 David Quintana <[email protected]>
  */
 
 #include "precomp.h"
@@ -64,22 +63,24 @@ HRESULT STDMETHODCALLTYPE 
CRegistryFolderExtractIcon::GetIconLocation(
 
     switch (entry->entryType)
     {
-    case REG_ENTRY_KEY:
-    case REG_ENTRY_ROOT:
-        GetModuleFileNameW(g_hInstance, szIconFile, cchMax);
-        *piIndex = -IDI_REGISTRYKEY;
-        *pwFlags = flags;
-        return S_OK;
-    case REG_ENTRY_VALUE:
-        GetModuleFileNameW(g_hInstance, szIconFile, cchMax);
-        *piIndex = -IDI_REGISTRYVALUE;
-        *pwFlags = flags;
-        return S_OK;
-    default:
-        GetModuleFileNameW(g_hInstance, szIconFile, cchMax);
-        *piIndex = -IDI_NTOBJECTITEM;
-        *pwFlags = flags;
-        return S_OK;
+        case REG_ENTRY_KEY:
+        case REG_ENTRY_ROOT:
+            GetModuleFileNameW(g_hInstance, szIconFile, cchMax);
+            *piIndex = -IDI_REGISTRYKEY;
+            *pwFlags = flags;
+            return S_OK;
+
+        case REG_ENTRY_VALUE:
+            GetModuleFileNameW(g_hInstance, szIconFile, cchMax);
+            *piIndex = -IDI_REGISTRYVALUE;
+            *pwFlags = flags;
+            return S_OK;
+
+        default:
+            GetModuleFileNameW(g_hInstance, szIconFile, cchMax);
+            *piIndex = -IDI_NTOBJECTITEM;
+            *pwFlags = flags;
+            return S_OK;
     }
 }
 
@@ -160,15 +161,17 @@ HRESULT STDMETHODCALLTYPE 
CRegistryFolder::GetDefaultColumnState(
 {
     switch (iColumn)
     {
-    case REGISTRY_COLUMN_NAME:
-        *pcsFlags = SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT;
-        return S_OK;
-    case REGISTRY_COLUMN_TYPE:
-        *pcsFlags = SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT;
-        return S_OK;
-    case REGISTRY_COLUMN_VALUE:
-        *pcsFlags = SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT | 
SHCOLSTATE_SLOW;
-        return S_OK;
+        case REGISTRY_COLUMN_NAME:
+            *pcsFlags = SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT;
+            return S_OK;
+
+        case REGISTRY_COLUMN_TYPE:
+            *pcsFlags = SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT;
+            return S_OK;
+
+        case REGISTRY_COLUMN_VALUE:
+            *pcsFlags = SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT | 
SHCOLSTATE_SLOW;
+            return S_OK;
     }
 
     return E_INVALIDARG;
@@ -264,83 +267,91 @@ HRESULT STDMETHODCALLTYPE CRegistryFolder::GetDetailsOf(
 
         switch (iColumn)
         {
-        case REGISTRY_COLUMN_NAME:
-            psd->fmt = LVCFMT_LEFT;
-
-            if (info->entryNameLength > 0)
+            case REGISTRY_COLUMN_NAME:
             {
-                return MakeStrRetFromString(info->entryName, 
info->entryNameLength, &(psd->str));
-            }
-            return MakeStrRetFromString(L"(Default)", &(psd->str));
-
-        case REGISTRY_COLUMN_TYPE:
-            psd->fmt = LVCFMT_LEFT;
+                psd->fmt = LVCFMT_LEFT;
 
-            if (info->entryType == REG_ENTRY_ROOT)
-            {
-                return MakeStrRetFromString(L"Key", &(psd->str));
+                if (info->entryNameLength > 0)
+                {
+                    return MakeStrRetFromString(info->entryName, 
info->entryNameLength, &(psd->str));
+                }
+                return MakeStrRetFromString(L"(Default)", &(psd->str));
             }
 
-            if (info->entryType == REG_ENTRY_KEY)
+            case REGISTRY_COLUMN_TYPE:
             {
-                if (info->contentsLength > 0)
+                psd->fmt = LVCFMT_LEFT;
+
+                if (info->entryType == REG_ENTRY_ROOT)
+                {
+                    return MakeStrRetFromString(L"Key", &(psd->str));
+                }
+
+                if (info->entryType == REG_ENTRY_KEY)
                 {
-                    PWSTR td = (PWSTR)(((PBYTE)info) + 
FIELD_OFFSET(RegPidlEntry, entryName) + info->entryNameLength + sizeof(WCHAR));
+                    if (info->contentsLength > 0)
+                    {
+                        PWSTR td = (PWSTR)(((PBYTE)info) + 
FIELD_OFFSET(RegPidlEntry, entryName) + info->entryNameLength + sizeof(WCHAR));
+
+                        return MakeStrRetFromString(td, info->contentsLength, 
&(psd->str));
+                    }
 
-                    return MakeStrRetFromString(td, info->contentsLength, 
&(psd->str));
+                    return MakeStrRetFromString(L"Key", &(psd->str));
                 }
 
-                return MakeStrRetFromString(L"Key", &(psd->str));
+                return 
MakeStrRetFromString(RegistryTypeNames[info->entryType], &(psd->str));
             }
 
-            return MakeStrRetFromString(RegistryTypeNames[info->entryType], 
&(psd->str));
-
-        case REGISTRY_COLUMN_VALUE:
-            psd->fmt = LVCFMT_LEFT;
+            case REGISTRY_COLUMN_VALUE:
+            {
+                psd->fmt = LVCFMT_LEFT;
 
-            PCWSTR strValueContents;
+                PCWSTR strValueContents;
 
-            hr = FormatContentsForDisplay(info, m_hRoot, m_NtPath, 
&strValueContents);
-            if (FAILED_UNEXPECTEDLY(hr))
-                return hr;
+                hr = FormatContentsForDisplay(info, m_hRoot, m_NtPath, 
&strValueContents);
+                if (FAILED_UNEXPECTEDLY(hr))
+                    return hr;
 
-            if (hr == S_FALSE)
-            {
-                return MakeStrRetFromString(L"(Empty)", &(psd->str));
-            }
+                if (hr == S_FALSE)
+                {
+                    return MakeStrRetFromString(L"(Empty)", &(psd->str));
+                }
 
-            hr = MakeStrRetFromString(strValueContents, &(psd->str));
+                hr = MakeStrRetFromString(strValueContents, &(psd->str));
 
-            CoTaskMemFree((PVOID)strValueContents);
+                CoTaskMemFree((PVOID)strValueContents);
 
-            return hr;
+                return hr;
+            }
         }
     }
     else
     {
         switch (iColumn)
         {
-        case REGISTRY_COLUMN_NAME:
-            psd->fmt = LVCFMT_LEFT;
-            psd->cxChar = 30;
+            case REGISTRY_COLUMN_NAME:
+                psd->fmt = LVCFMT_LEFT;
+                psd->cxChar = 30;
 
-            // TODO: Make localizable
-            MakeStrRetFromString(L"Object Name", &(psd->str));
-            return S_OK;
-        case REGISTRY_COLUMN_TYPE:
-            psd->fmt = LVCFMT_LEFT;
-            psd->cxChar = 20;
+                // TODO: Make localizable
+                MakeStrRetFromString(L"Object Name", &(psd->str));
+                return S_OK;
 
-            // TODO: Make localizable
-            MakeStrRetFromString(L"Content Type", &(psd->str));
-            return S_OK;
-        case REGISTRY_COLUMN_VALUE:
-            psd->fmt = LVCFMT_LEFT;
-            psd->cxChar = 20;
+            case REGISTRY_COLUMN_TYPE:
+                psd->fmt = LVCFMT_LEFT;
+                psd->cxChar = 20;
 
-            // TODO: Make localizable
-            MakeStrRetFromString(L"Value", &(psd->str));
-            return S_OK;
+                // TODO: Make localizable
+                MakeStrRetFromString(L"Content Type", &(psd->str));
+                return S_OK;
+
+            case REGISTRY_COLUMN_VALUE:
+                psd->fmt = LVCFMT_LEFT;
+                psd->cxChar = 20;
+
+                // TODO: Make localizable
+                MakeStrRetFromString(L"Value", &(psd->str));
+                return S_OK;
         }
     }
 
@@ -354,18 +365,20 @@ HRESULT STDMETHODCALLTYPE 
CRegistryFolder::MapColumnToSCID(
     static const GUID storage = PSGUID_STORAGE;
     switch (iColumn)
     {
-    case REGISTRY_COLUMN_NAME:
-        pscid->fmtid = storage;
-        pscid->pid = PID_STG_NAME;
-        return S_OK;
-    case REGISTRY_COLUMN_TYPE:
-        pscid->fmtid = storage;
-        pscid->pid = PID_STG_STORAGETYPE;
-        return S_OK;
-    case REGISTRY_COLUMN_VALUE:
-        pscid->fmtid = storage;
-        pscid->pid = PID_STG_CONTENTS;
-        return S_OK;
+        case REGISTRY_COLUMN_NAME:
+            pscid->fmtid = storage;
+            pscid->pid = PID_STG_NAME;
+            return S_OK;
+
+        case REGISTRY_COLUMN_TYPE:
+            pscid->fmtid = storage;
+            pscid->pid = PID_STG_STORAGETYPE;
+            return S_OK;
+
+        case REGISTRY_COLUMN_VALUE:
+            pscid->fmtid = storage;
+            pscid->pid = PID_STG_CONTENTS;
+            return S_OK;
     }
     return E_INVALIDARG;
 }
@@ -392,15 +405,15 @@ HRESULT CRegistryFolder::CompareIDs(LPARAM lParam, const 
RegPidlEntry * first, c
 
     switch (column)
     {
-    case REGISTRY_COLUMN_NAME:
-        return CompareName(lParam, first, second);
+        case REGISTRY_COLUMN_NAME:
+            return CompareName(lParam, first, second);
 
-    case REGISTRY_COLUMN_TYPE:
-        return MAKE_COMPARE_HRESULT(second->contentType - first->contentType);
+        case REGISTRY_COLUMN_TYPE:
+            return MAKE_COMPARE_HRESULT(second->contentType - 
first->contentType);
 
-    case REGISTRY_COLUMN_VALUE:
-        // Can't sort by link target yet
-        return E_INVALIDARG;
+        case REGISTRY_COLUMN_VALUE:
+            // Can't sort by link target yet
+            return E_INVALIDARG;
     }
 
     DbgPrint("Unsupported sorting mode.\n");
@@ -448,99 +461,105 @@ HRESULT CRegistryFolder::FormatValueData(DWORD 
contentType, PVOID td, DWORD cont
 {
     switch (contentType)
     {
-    case 0:
-    {
-        PCWSTR strTodo = L"";
-        DWORD bufferLength = (wcslen(strTodo) + 1) * sizeof(WCHAR);
-        PWSTR strValue = (PWSTR)CoTaskMemAlloc(bufferLength);
-        StringCbCopyW(strValue, bufferLength, strTodo);
-        *strContents = strValue;
-        return S_OK;
-    }
-    case REG_SZ:
-    case REG_EXPAND_SZ:
-    {
-        PWSTR strValue = (PWSTR)CoTaskMemAlloc(contentsLength + sizeof(WCHAR));
-        StringCbCopyNW(strValue, contentsLength + sizeof(WCHAR), (LPCWSTR)td, 
contentsLength);
-        *strContents = strValue;
-        return S_OK;
-    }
-    case REG_MULTI_SZ:
-    {
-        PCWSTR separator = L" "; // To match regedit
-        size_t sepChars = wcslen(separator);
-        int strings = 0;
-        int stringChars = 0;
+        case 0:
+        {
+            PCWSTR strTodo = L"";
+            DWORD bufferLength = (wcslen(strTodo) + 1) * sizeof(WCHAR);
+            PWSTR strValue = (PWSTR)CoTaskMemAlloc(bufferLength);
+            StringCbCopyW(strValue, bufferLength, strTodo);
+            *strContents = strValue;
+            return S_OK;
+        }
 
-        PCWSTR strData = (PCWSTR)td;
-        while (*strData)
+        case REG_SZ:
+        case REG_EXPAND_SZ:
         {
-            size_t len = wcslen(strData);
-            stringChars += len;
-            strData += len + 1; // Skips null-terminator
-            strings++;
+            PWSTR strValue = (PWSTR)CoTaskMemAlloc(contentsLength + 
sizeof(WCHAR));
+            StringCbCopyNW(strValue, contentsLength + sizeof(WCHAR), 
(LPCWSTR)td, contentsLength);
+            *strContents = strValue;
+            return S_OK;
         }
 
-        int cch = stringChars + (strings - 1) * sepChars + 1;
+        case REG_MULTI_SZ:
+        {
+            PCWSTR separator = L" "; // To match regedit
+            size_t sepChars = wcslen(separator);
+            int strings = 0;
+            int stringChars = 0;
+
+            PCWSTR strData = (PCWSTR)td;
+            while (*strData)
+            {
+                size_t len = wcslen(strData);
+                stringChars += len;
+                strData += len + 1; // Skips null-terminator
+                strings++;
+            }
+
+            int cch = stringChars + (strings - 1) * sepChars + 1;
+
+            PWSTR strValue = (PWSTR)CoTaskMemAlloc(cch * sizeof(WCHAR));
 
-        PWSTR strValue = (PWSTR)CoTaskMemAlloc(cch * sizeof(WCHAR));
+            strValue[0] = 0;
 
-        strValue[0] = 0;
+            strData = (PCWSTR)td;
+            while (*strData)
+            {
+                StrCatW(strValue, strData);
+                strData += wcslen(strData) + 1;
+                if (*strData)
+                    StrCatW(strValue, separator);
+            }
 
-        strData = (PCWSTR)td;
-        while (*strData)
+            *strContents = strValue;
+            return S_OK;
+        }
+
+        case REG_DWORD:
         {
-            StrCatW(strValue, strData);
-            strData += wcslen(strData) + 1;
-            if (*strData)
-                StrCatW(strValue, separator);
+            DWORD bufferLength = 64 * sizeof(WCHAR);
+            PWSTR strValue = (PWSTR)CoTaskMemAlloc(bufferLength);
+            StringCbPrintfW(strValue, bufferLength, L"0x%08x (%d)",
+                *(DWORD*)td, *(DWORD*)td);
+            *strContents = strValue;
+            return S_OK;
         }
 
-        *strContents = strValue;
-        return S_OK;
-    }
-    case REG_DWORD:
-    {
-        DWORD bufferLength = 64 * sizeof(WCHAR);
-        PWSTR strValue = (PWSTR)CoTaskMemAlloc(bufferLength);
-        StringCbPrintfW(strValue, bufferLength, L"0x%08x (%d)",
-            *(DWORD*)td, *(DWORD*)td);
-        *strContents = strValue;
-        return S_OK;
-    }
-    case REG_QWORD:
-    {
-        DWORD bufferLength = 64 * sizeof(WCHAR);
-        PWSTR strValue = (PWSTR)CoTaskMemAlloc(bufferLength);
-        StringCbPrintfW(strValue, bufferLength, L"0x%016llx (%lld)",
-            *(LARGE_INTEGER*)td, ((LARGE_INTEGER*)td)->QuadPart);
-        *strContents = strValue;
-        return S_OK;
-    }
-    case REG_BINARY:
-    {
-        DWORD bufferLength = (contentsLength * 3 + 1) * sizeof(WCHAR);
-        PWSTR strValue = (PWSTR)CoTaskMemAlloc(bufferLength);
-        PWSTR strTemp = strValue;
-        PBYTE data = (PBYTE)td;
-        for (DWORD i = 0; i < contentsLength; i++)
+        case REG_QWORD:
         {
-            StringCbPrintfW(strTemp, bufferLength, L"%02x ", data[i]);
-            strTemp += 3;
-            bufferLength -= 3;
+            DWORD bufferLength = 64 * sizeof(WCHAR);
+            PWSTR strValue = (PWSTR)CoTaskMemAlloc(bufferLength);
+            StringCbPrintfW(strValue, bufferLength, L"0x%016llx (%lld)",
+                *(LARGE_INTEGER*)td, ((LARGE_INTEGER*)td)->QuadPart);
+            *strContents = strValue;
+            return S_OK;
+        }
+
+        case REG_BINARY:
+        {
+            DWORD bufferLength = (contentsLength * 3 + 1) * sizeof(WCHAR);
+            PWSTR strValue = (PWSTR)CoTaskMemAlloc(bufferLength);
+            PWSTR strTemp = strValue;
+            PBYTE data = (PBYTE)td;
+            for (DWORD i = 0; i < contentsLength; i++)
+            {
+                StringCbPrintfW(strTemp, bufferLength, L"%02x ", data[i]);
+                strTemp += 3;
+                bufferLength -= 3;
+            }
+            *strContents = strValue;
+            return S_OK;
+        }
+
+        default:
+        {
+            PCWSTR strFormat = L"<Unimplemented value type %d>";
+            DWORD bufferLength = (wcslen(strFormat) + 15) * sizeof(WCHAR);
+            PWSTR strValue = (PWSTR)CoTaskMemAlloc(bufferLength);
+            StringCbPrintfW(strValue, bufferLength, strFormat, contentType);
+            *strContents = strValue;
+            return S_OK;
         }
-        *strContents = strValue;
-        return S_OK;
-    }
-    default:
-    {
-        PCWSTR strFormat = L"<Unimplemented value type %d>";
-        DWORD bufferLength = (wcslen(strFormat) + 15) * sizeof(WCHAR);
-        PWSTR strValue = (PWSTR)CoTaskMemAlloc(bufferLength);
-        StringCbPrintfW(strValue, bufferLength, strFormat, contentType);
-        *strContents = strValue;
-        return S_OK;
-    }
     }
 }
 
diff --git a/dll/shellext/ntobjshex/regfolder.h 
b/dll/shellext/ntobjshex/regfolder.h
index 08f687f8ce7..5780d075f40 100644
--- a/dll/shellext/ntobjshex/regfolder.h
+++ b/dll/shellext/ntobjshex/regfolder.h
@@ -1,10 +1,10 @@
 /*
- * PROJECT:     ReactOS shell extensions
- * LICENSE:     GPL - See COPYING in the top level directory
- * FILE:        dll/shellext/ntobjshex/regfolder.h
- * PURPOSE:     NT Object Namespace shell extension
- * PROGRAMMERS: David Quintana <[email protected]>
+ * PROJECT:     NT Object Namespace shell extension
+ * LICENSE:     GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
+ * PURPOSE:     System Registry folder class header
+ * COPYRIGHT:   Copyright 2015-2017 David Quintana <[email protected]>
  */
+
 #pragma once
 
 extern const GUID CLSID_RegistryFolder;

Reply via email to