static HRESULT WINAPI RecycleBin_EnumObjects(IShellFolder2 *iface, HWND hwnd, SHCONTF grfFlags, IEnumIDList **ppenumIDList) { RecycleBin *This = impl_from_IShellFolder2(iface); IEnumIDList *list; LPITEMIDLIST *pidls; HRESULT ret; int pidls_count; int i=0; TRACE("(%p, %p, %x, %p)\n", This, hwnd, grfFlags, ppenumIDList); if (grfFlags & SHCONTF_NONFOLDERS) { *ppenumIDList = NULL; if (FAILED(ret = TRASH_EnumItems(&pidls, &pidls_count))) return ret; list = IEnumIDList_Constructor(); if (list == NULL) goto failed; for (i=0; i<pidls_count; i++) if (!AddToEnumList(list, pidls[i])) goto failed; *ppenumIDList = list; } else { *ppenumIDList = IEnumIDList_Constructor(); if (*ppenumIDList == NULL) return E_OUTOFMEMORY; } return S_OK; failed: if (list) IEnumIDList_Release(list); for (; i<pidls_count; i++) ILFree(pidls[i]); SHFree(pidls); return E_OUTOFMEMORY; }
/************************************************************************** * ISF_NetworkPlaces_fnEnumObjects */ static HRESULT WINAPI ISF_NetworkPlaces_fnEnumObjects (IShellFolder2 * iface, HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST * ppEnumIDList) { IGenericSFImpl *This = (IGenericSFImpl *)iface; TRACE ("(%p)->(HWND=%p flags=0x%08x pplist=%p)\n", This, hwndOwner, dwFlags, ppEnumIDList); *ppEnumIDList = IEnumIDList_Constructor(); TRACE ("-- (%p)->(new ID List: %p)\n", This, *ppEnumIDList); return (*ppEnumIDList) ? S_OK : E_OUTOFMEMORY; }
/************************************************************************** * ISF_ControlPanel_fnEnumObjects */ static HRESULT WINAPI ISF_ControlPanel_fnEnumObjects(IShellFolder2 * iface, HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST * ppEnumIDList) { ICPanelImpl *This = (ICPanelImpl *)iface; TRACE("(%p)->(HWND=%p flags=0x%08lx pplist=%p)\n", This, hwndOwner, dwFlags, ppEnumIDList); *ppEnumIDList = IEnumIDList_Constructor(); if (*ppEnumIDList) CreateCPanelEnumList(*ppEnumIDList, dwFlags); TRACE("--(%p)->(new ID List: %p)\n", This, *ppEnumIDList); return(*ppEnumIDList) ? S_OK : E_OUTOFMEMORY; }
/************************************************************************** * ISF_NetworkPlaces_fnEnumObjects */ static HRESULT WINAPI ISF_NetworkPlaces_fnEnumObjects (IShellFolder2 * iface, HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST * ppEnumIDList) { IGenericSFImpl *This = impl_from_IShellFolder2(iface); IEnumIDListImpl *list; TRACE ("(%p)->(HWND=%p flags=0x%08x pplist=%p)\n", This, hwndOwner, dwFlags, ppEnumIDList); if (!(list = IEnumIDList_Constructor())) return E_OUTOFMEMORY; *ppEnumIDList = &list->IEnumIDList_iface; TRACE ("-- (%p)->(new ID List: %p)\n", This, *ppEnumIDList); return S_OK; }