* The Shell.. for a long time we dreamed of having a compatible, properly working...
[reactos.git] / reactos / dll / win32 / shell32 / CShellItem.cpp
similarity index 93%
rename from reactos/dll/win32/shell32/shellitem.cpp
rename to reactos/dll/win32/shell32/CShellItem.cpp
index ce767e0..d684870 100644 (file)
@@ -122,20 +122,24 @@ HRESULT WINAPI CShellItem::GetDisplayName(SIGDN sigdnName, LPWSTR *ppszName)
     hr = get_parent_shellfolder(&parent_folder);
     if (SUCCEEDED(hr))
     {
-        if (sigdnName == SIGDN_PARENTRELATIVEEDITING)
-            uFlags = SHGDN_FOREDITING | SHGDN_INFOLDER;
-        else if (sigdnName == SIGDN_DESKTOPABSOLUTEEDITING)
-            uFlags = SHGDN_FOREDITING;
-        else if (sigdnName == SIGDN_PARENTRELATIVEEDITING)
+        switch (sigdnName)
+        {
+        case SIGDN_PARENTRELATIVEEDITING:
             uFlags = SHGDN_FOREDITING | SHGDN_INFOLDER;
-        else if (sigdnName == SIGDN_DESKTOPABSOLUTEEDITING)
+            break;
+        case SIGDN_DESKTOPABSOLUTEEDITING:
             uFlags = SHGDN_FOREDITING;
-        else if (sigdnName == SIGDN_PARENTRELATIVEPARSING)
+            break;
+        case SIGDN_PARENTRELATIVEPARSING:
             uFlags = SHGDN_FORPARSING | SHGDN_INFOLDER;
-        else if (sigdnName == SIGDN_DESKTOPABSOLUTEPARSING)
+            break;
+        case SIGDN_DESKTOPABSOLUTEPARSING:
             uFlags = SHGDN_FORPARSING;
-        else
+            break;
+        default:
             uFlags = SHGDN_NORMAL;
+            break;
+        }
 
         hr = parent_folder->GetDisplayNameOf(m_pidl, uFlags, &name);
         if (SUCCEEDED(hr))
@@ -240,7 +244,7 @@ HRESULT WINAPI SHCreateShellItem(LPCITEMIDLIST pidlParent,
     IShellFolder *psfParent, LPCITEMIDLIST pidl, IShellItem **ppsi)
 {
     HRESULT hr;
-    IShellItem *newShellItem;
+    CComPtr<IShellItem> newShellItem;
     LPITEMIDLIST new_pidl;
     CComPtr<IPersistIDList>            newPersistIDList;
 
@@ -304,6 +308,8 @@ HRESULT WINAPI SHCreateShellItem(LPCITEMIDLIST pidlParent,
         return hr;
     }
     ILFree(new_pidl);
-    *ppsi = newShellItem;
+
+    *ppsi = newShellItem.Detach();
+
     return hr;
 }