[SHELL32]

Owen Rudge <orudge at codeweavers dot com>:
Implement SHGetImageList
9db87f13d3
Fixes explorer++ main window
patch provided by igorko

svn path=/trunk/; revision=51729
This commit is contained in:
Timo Kreuzer 2011-05-14 12:57:52 +00:00
parent 6e735202f2
commit 69667a5f9b

View file

@ -47,6 +47,7 @@
#include "shlwapi.h"
#include "commdlg.h"
#include "recyclebin.h"
#include "commoncontrols.h"
WINE_DEFAULT_DEBUG_CHANNEL(shell);
WINE_DECLARE_DEBUG_CHANNEL(pidl);
@ -2247,10 +2248,40 @@ void WINAPI SHFlushSFCache(void)
{
}
/*************************************************************************
* SHGetImageList (SHELL32.727)
*
* Returns a copy of a shell image list.
*
* NOTES
* Windows XP features 4 sizes of image list, and Vista 5. Wine currently
* only supports the traditional small and large image lists, so requests
* for the others will currently fail.
*/
HRESULT WINAPI SHGetImageList(int iImageList, REFIID riid, void **ppv)
{
FIXME("STUB: %i %s\n",iImageList,debugstr_guid(riid));
return E_NOINTERFACE;
HIMAGELIST hLarge, hSmall;
HIMAGELIST hNew;
HRESULT ret = E_FAIL;
/* Wine currently only maintains large and small image lists */
if ((iImageList != SHIL_LARGE) && (iImageList != SHIL_SMALL) && (iImageList != SHIL_SYSSMALL))
{
FIXME("Unsupported image list %i requested\n", iImageList);
return E_FAIL;
}
Shell_GetImageLists(&hLarge, &hSmall);
hNew = ImageList_Duplicate(iImageList == SHIL_LARGE ? hLarge : hSmall);
/* Get the interface for the new image list */
if (hNew)
{
ret = HIMAGELIST_QueryInterface(hNew, riid, ppv);
ImageList_Destroy(hNew);
}
return ret;
}
/*************************************************************************