[SHELL32]
[reactos.git] / dll / win32 / shell32 / folders / mycomp.cpp
index 9239977..4b098d9 100644 (file)
@@ -252,36 +252,7 @@ HRESULT WINAPI CDrivesFolder::ParseDisplayName(HWND hwndOwner, LPBC pbc, LPOLEST
 */
 HRESULT WINAPI CDrivesFolder::EnumObjects(HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST *ppEnumIDList)
 {
-    CComObject<CDrivesFolderEnum> *theEnumerator;
-    CComPtr<IEnumIDList>          result;
-    HRESULT                       hResult;
-
-    TRACE ("(%p)->(HWND=%p flags=0x%08x pplist=%p)\n", this, hwndOwner, dwFlags, ppEnumIDList);
-
-    if (ppEnumIDList == NULL)
-        return E_POINTER;
-
-    *ppEnumIDList = NULL;
-    ATLTRY(theEnumerator = new CComObject<CDrivesFolderEnum>);
-
-    if (theEnumerator == NULL)
-        return E_OUTOFMEMORY;
-
-    hResult = theEnumerator->QueryInterface(IID_IEnumIDList, (void **)&result);
-    if (FAILED(hResult))
-    {
-        delete theEnumerator;
-        return hResult;
-    }
-
-    hResult = theEnumerator->Initialize(hwndOwner, dwFlags);
-    if (FAILED(hResult))
-        return hResult;
-    *ppEnumIDList = result.Detach();
-
-    TRACE("-- (%p)->(new ID List: %p)\n", this, *ppEnumIDList);
-
-    return S_OK;
+    return ShellObjectCreatorInit<CDrivesFolderEnum>(hwndOwner, dwFlags, IID_IEnumIDList, ppEnumIDList);
 }
 
 /**************************************************************************
@@ -520,7 +491,7 @@ HRESULT WINAPI CDrivesFolder::GetDisplayNameOf(PCUITEMID_CHILD pidl, DWORD dwFla
             clsid = _ILGetGUIDPointer (pidl);
             if (clsid)
             {
-                if (GET_SHGDN_FOR (dwFlags) & SHGDN_FORPARSING)
+                if (GET_SHGDN_FOR (dwFlags) == SHGDN_FORPARSING)
                 {
                     static const WCHAR clsidW[] = L"CLSID\\";
                     static const WCHAR shellfolderW[] = L"\\shellfolder";