mirror of
https://github.com/reactos/reactos.git
synced 2024-10-16 06:04:13 +00:00
Andrew Talbot <Andrew.Talbot@talbotville.com>
- Exclude unused headers. Hans Leidekker <hans@it.vu.nl> - Add a stub implementation for SHMapIDListToImageListIndexAsync. Jonathan Ernst <jonathan@ernstfamily.ch> - Update the address of the Free Software Foundation. Martin Fuchs <martin-fuchs@gmx.net> - Fix folder icon index when read from registry. - Change "DWORD dwNr" into "int icon_idx" at several places. ----------------------------------------- ReactOS specific: - PrivateExtractIconW is an undocumented user32 function. Dynamically get the function with GetProcAddress at runtime (readd) svn path=/trunk/; revision=29488
This commit is contained in:
parent
7d516124e5
commit
4bcdb4d441
|
@ -15,14 +15,13 @@
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
* License along with this library; if not, write to the Free Software
|
* License along with this library; if not, write to the Free Software
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "wine/port.h"
|
#include "wine/port.h"
|
||||||
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#ifdef HAVE_UNISTD_H
|
#ifdef HAVE_UNISTD_H
|
||||||
|
@ -40,7 +39,6 @@
|
||||||
|
|
||||||
#include "shellapi.h"
|
#include "shellapi.h"
|
||||||
#include "objbase.h"
|
#include "objbase.h"
|
||||||
#include "shlguid.h"
|
|
||||||
#include "pidl.h"
|
#include "pidl.h"
|
||||||
#include "shell32_main.h"
|
#include "shell32_main.h"
|
||||||
#include "undocshell.h"
|
#include "undocshell.h"
|
||||||
|
@ -98,7 +96,7 @@ static INT CALLBACK SIC_CompareEntries( LPVOID p1, LPVOID p2, LPARAM lparam)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* declare SIC_LoadOverlayIcon() */
|
/* declare SIC_LoadOverlayIcon() */
|
||||||
static int SIC_LoadOverlayIcon(int idx);
|
static int SIC_LoadOverlayIcon(int icon_idx);
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* SIC_OverlayShortcutImage [internal]
|
* SIC_OverlayShortcutImage [internal]
|
||||||
|
@ -474,6 +472,7 @@ void SIC_Destroy(void)
|
||||||
ShellBigIconList = 0;
|
ShellBigIconList = 0;
|
||||||
|
|
||||||
LeaveCriticalSection(&SHELL32_SicCS);
|
LeaveCriticalSection(&SHELL32_SicCS);
|
||||||
|
//DeleteCriticalSection(&SHELL32_SicCS); //static
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
@ -481,7 +480,7 @@ void SIC_Destroy(void)
|
||||||
*
|
*
|
||||||
* Load a shell overlay icon and return its icon cache index.
|
* Load a shell overlay icon and return its icon cache index.
|
||||||
*/
|
*/
|
||||||
static int SIC_LoadOverlayIcon(int idx)
|
static int SIC_LoadOverlayIcon(int icon_idx)
|
||||||
{
|
{
|
||||||
WCHAR buffer[1024], wszIdx[8];
|
WCHAR buffer[1024], wszIdx[8];
|
||||||
HKEY hKeyShellIcons;
|
HKEY hKeyShellIcons;
|
||||||
|
@ -496,13 +495,13 @@ static int SIC_LoadOverlayIcon(int idx)
|
||||||
static const WCHAR wszNumFmt[] = {'%','d',0};
|
static const WCHAR wszNumFmt[] = {'%','d',0};
|
||||||
|
|
||||||
iconPath = swShell32Name; /* default: load icon from shell32.dll */
|
iconPath = swShell32Name; /* default: load icon from shell32.dll */
|
||||||
iconIdx = idx;
|
iconIdx = icon_idx;
|
||||||
|
|
||||||
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, wszShellIcons, 0, KEY_READ, &hKeyShellIcons) == ERROR_SUCCESS)
|
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, wszShellIcons, 0, KEY_READ, &hKeyShellIcons) == ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
DWORD count = sizeof(buffer);
|
DWORD count = sizeof(buffer);
|
||||||
|
|
||||||
sprintfW(wszIdx, wszNumFmt, idx);
|
sprintfW(wszIdx, wszNumFmt, icon_idx);
|
||||||
|
|
||||||
/* read icon path and index */
|
/* read icon path and index */
|
||||||
if (RegQueryValueExW(hKeyShellIcons, wszIdx, NULL, NULL, (LPBYTE)buffer, &count) == ERROR_SUCCESS)
|
if (RegQueryValueExW(hKeyShellIcons, wszIdx, NULL, NULL, (LPBYTE)buffer, &count) == ERROR_SUCCESS)
|
||||||
|
@ -630,6 +629,19 @@ int WINAPI SHMapPIDLToSystemImageListIndex(
|
||||||
return Index;
|
return Index;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
* SHMapIDListToImageListIndexAsync [SHELL32.148]
|
||||||
|
*/
|
||||||
|
HRESULT WINAPI SHMapIDListToImageListIndexAsync(IUnknown *pts, IShellFolder *psf,
|
||||||
|
LPCITEMIDLIST pidl, UINT flags,
|
||||||
|
void *pfn, void *pvData, void *pvHint,
|
||||||
|
int *piIndex, int *piIndexSel)
|
||||||
|
{
|
||||||
|
FIXME("(%p, %p, %p, 0x%08x, %p, %p, %p, %p, %p)\n",
|
||||||
|
pts, psf, pidl, flags, pfn, pvData, pvHint, piIndex, piIndexSel);
|
||||||
|
return E_FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
* Shell_GetCachedImageIndex [SHELL32.72]
|
* Shell_GetCachedImageIndex [SHELL32.72]
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue