Commit Graph

131 Commits

Author SHA1 Message Date
Gabriel Ivăncescu 4e633f9244 shell32/iconcache: Prevent the imagelists from going out of sync when loading an icon.
When populating the imagelists cache with icons of different sizes, it
can happen that only some icon sizes actually succeed the extraction,
with others failing with a NULL handle. This is especially true with some
broken "executable packers" where for example, a 32x32 icon loads okay,
but a 16x16 fails. Even when PrivateExtractIconsW succeeds, the returned
handle can still be NULL, leading to the ImageLists becoming out of sync.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45696
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-29 17:48:33 +01:00
Alex Henrie 4b5d0f2f43 shell32: Rename IDI_SHELL_DOCUMENT to IDI_SHELL_FILE.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-17 09:46:36 +02:00
Nikolay Sivov e51c9b47b8 shell32: Add SHIL_JUMBO list.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-21 10:13:43 +01:00
Nikolay Sivov 7db6885da7 shell32: Add support for SHIL_SYSSMALL list.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-21 10:13:36 +01:00
Nikolay Sivov 479dc1d8c3 shell32: Add support for SHIL_EXTRALARGE list.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-21 10:13:32 +01:00
Nikolay Sivov 0075b05adf shell32: Move SHGetImageList() to related source file.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-21 10:13:27 +01:00
Nikolay Sivov 09389c4bab shell32: Pass handle arrays between icon cache helpers.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-21 10:13:23 +01:00
Nikolay Sivov ff5cfaab56 shell32: Use array for icon lists.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-21 10:13:18 +01:00
Nikolay Sivov e3b200bd8a shell32: Use global memory allocation helpers.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-22 14:16:33 +01:00
André Hentschel 460053b8fc shell32: Don't cast return value from DPA_GetPtr.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-02 15:52:22 +01:00
Huw Davies a7d79fe445 shell32: Load icons with the correct size.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-02 17:51:29 +02:00
Huw Davies 3a1b289d66 shell32: Fix the icon sizes of the shell imagelists.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-02 17:51:25 +02:00
Huw Davies 734dc8f200 shell32: Use the imagelist to determine the icon size.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-19 14:20:49 +02:00
Huw Davies 524e316a14 shell32: Avoid leaking icon handles.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-19 14:20:48 +02:00
Francois Gouget cc2a2b0970 shell32: Spelling fixes.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-30 11:55:57 +09:00
Mark Harmstone 77b75ca14b shell32: Don't hardcode icon sizes in SIC_LoadIcon. 2015-08-03 11:00:54 +02:00
Alexandre Julliard e330a128d5 shell32: Use Shell_GetImageLists to retrieve image lists instead of using a global variable. 2014-01-02 11:56:11 +01:00
Nikolay Sivov b5312b70f5 shell32: Don't call comctl32 on unload time if it wasn't used before. 2013-12-11 12:56:07 +01:00
Alexandre Julliard 116e33d50a shell32: Delay initialization of the icon cache until needed. 2013-10-17 20:29:23 +02:00
Francois Gouget 653354ab25 Assorted spelling fixes. 2013-07-03 21:20:04 +02:00
Detlef Riekenberg ea516bfc10 shell32: Fix a copy & paste typo. 2013-04-29 11:42:06 +02:00
Detlef Riekenberg eafc9e84a6 shell32: Add a semi-stub for SHGetStockIconInfo. 2013-04-26 11:55:26 +02:00
David Hedberg be2259dce9 shell32: Shell_GetImageLists should be declared in shlobj.h and exported by name. 2010-07-20 12:35:17 +02:00
Marcus Meissner 265c959ed9 shell32: handle corrupt entry in iconcache registry entry (Coverity). 2009-12-04 14:34:58 +01:00
Vincent Povirk e083dc831c shell32: Handle NULL return icon parameters in SHDefExtractIcon. 2009-05-18 12:31:56 +02:00
Michael Stefaniuc 6c54ad3dba shell32: Remove superfluous pointer casts. 2009-02-19 12:52:02 +01:00
Alexandre Julliard 1abff5afef shell32: Make some functions static. 2008-12-03 12:09:38 +01:00
Michael Stefaniuc b7de266082 shell32: Remove superfluous casts; mostly of void pointers. 2008-11-06 11:09:51 +01:00
Zac Brown 7a42aba9da shell32: Add stub implementation for SHGetIconOverlayIndex[AW]. 2008-06-27 11:32:10 +02:00
Francois Gouget 44b52b128c Assorted spelling fixes. 2008-01-16 12:48:29 +01:00
Andrew Talbot a77715c23b shell32: Exclude unused headers. 2007-05-21 12:31:29 +02:00
Hans Leidekker bab2ddb77e shell32: Add a stub implementation for SHMapIDListToImageListIndexAsync. 2007-04-26 14:24:13 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Martin Fuchs 7114f8c3bd shell32: Fix folder icon index when read from registry.
Change "DWORD dwNr" into "int icon_idx" at several places.
2006-01-11 12:33:24 +01:00
Ge van Geldorp 0991687d3c Load shortcut icon by resource id instead of by icon index. 2005-11-28 10:59:06 +01:00
Martin Fuchs d3521da667 SHGetFileInfoW(): handle SHGFI_LINKOVERLAY and SHGFI_OVERLAYINDEX.
SHMapPIDLToSystemImageListIndex(): determine overlay flag for
PidlToSicIndex() and return -1 in error cases.
Read shell overlay icon settings from registry to allow icon
overrides.
2005-11-21 13:35:06 +00:00
Michael Jung d699222eae Remove iconcache pre-initialization hack, it's not necessary any
more.
2005-10-27 12:08:44 +00:00
Ge van Geldorp 348449a486 Save a few megabytes of memory by loading the default icon only once
into the image lists.
2005-09-13 11:24:52 +00:00
Alexandre Julliard 20a1a203c6 Use a more portable scheme for storing the name of a critical
section.
2005-09-09 10:19:44 +00:00
Michael Jung b0b4777422 Implemented 'My Documents' folder. 2005-08-26 10:05:34 +00:00
Francois Gouget 9769816b6e Fix winapi_check documentation warnings. 2005-06-17 20:58:33 +00:00
Marcus Meissner 96ebd31066 ExtractAssociatedIconA needs to allocate enough space to have EAIW
fill in lpIconPathW.
2005-06-17 09:52:33 +00:00
Michael Jung 82ed0ce999 Consider only the GIL_FORSHORTCUT flag in SIC_CompareEntries. 2005-05-20 18:58:35 +00:00
Ge van Geldorp 40cb98269b Overlay icons for .lnk files with a small arrow in the lower left
corner.
2005-05-13 17:48:33 +00:00
Huw Davies 861282bf28 Fix the icon resource ids (most were off by one).
Fix IExtractIcon_{GetIconLocation,Extract} to use -ve icon resource
ids and fix bugs relating to confusion between resource ids and the
system imagelist indicies.
Extend the system imagelist initialization hack to load both +ve and
-ve resource ids.
Add a printer icon (that'll be used by an upcoming printer folder
patch).
2005-04-11 13:04:41 +00:00
Hans Leidekker c1236fd120 Stub implementations for SHUpdateImageA, SHHandleUpdateImage,
SHObjectProperties, SHGetNewLinkInfo{A,W}, SHStartNetConnectionDialog,
SHEmptyRecycleBin{A,W}, SHFormatDrive, SHQueryRecycleBin{A,W}.
'HeapAlloc can fail' fix for ExtractIconExA.
Implement ExtractAssociatedIconA -> W.
Correct prototype for SHObjectProperties.
Forward SHGetNewLinkInfo to SHGetNewLinkInfoA.
2005-01-03 20:26:06 +00:00
Alexandre Julliard 758b2887e9 Remove some no longer needed AW functions. 2004-12-17 19:20:07 +00:00
Jon Griffiths f82272c92f Remove unneeded headers to reduce unneeded rebuilds. 2004-12-16 14:35:55 +00:00
Francois Gouget 486d020c1b Don't define COBJMACROS in objbase.h.
Update the Wine sources accordingly.
2004-10-07 03:06:48 +00:00
Martin Fuchs 7ccc2d25a2 - Use system metrics to determine icon sizes.
- Move invalid index from 1 to 0.
2004-09-24 01:10:31 +00:00