Commit 40cb9826 authored by Ge van Geldorp's avatar Ge van Geldorp Committed by Alexandre Julliard

Overlay icons for .lnk files with a small arrow in the lower left

corner.
parent aeea9833
......@@ -15,5 +15,6 @@ printer.ico
ramdisk.ico
shell.spec.c
shell32.dll.dbg.c
shortcut.ico
shres.res
version16.res
......@@ -64,7 +64,8 @@ RC_BINARIES = \
netdrive.ico \
netdrive2.ico \
printer.ico \
ramdisk.ico
ramdisk.ico \
shortcut.ico
C_SRCS16 = shell.c
RC_SRCS16 = version16.rc
......
......@@ -385,7 +385,7 @@ static HRESULT WINAPI IExtractIconW_fnExtract(IExtractIconW * iface, LPCWSTR psz
FIXME("(%p) (file=%p index=%d %p %p size=%08x) semi-stub\n", This, debugstr_w(pszFile), (signed)nIconIndex,
phiconLarge, phiconSmall, nIconSize);
index = SIC_GetIconIndex(pszFile, nIconIndex);
index = SIC_GetIconIndex(pszFile, nIconIndex, 0);
if (phiconLarge)
*phiconLarge = ImageList_GetIcon(ShellBigIconList, index, ILD_TRANSPARENT);
......
......@@ -506,7 +506,7 @@ DWORD WINAPI SHGetFileInfoW(LPCWSTR path,DWORD dwFileAttributes,
lstrcpynW(sTemp, szFullPath, MAX_PATH);
if (dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
psfi->iIcon = SIC_GetIconIndex(swShell32Name, -IDI_SHELL_FOLDER);
psfi->iIcon = SIC_GetIconIndex(swShell32Name, -IDI_SHELL_FOLDER, 0);
else
{
static const WCHAR p1W[] = {'%','1',0};
......@@ -522,7 +522,7 @@ DWORD WINAPI SHGetFileInfoW(LPCWSTR path,DWORD dwFileAttributes,
if (flags & SHGFI_SYSICONINDEX)
{
psfi->iIcon = SIC_GetIconIndex(sTemp,dwNr);
psfi->iIcon = SIC_GetIconIndex(sTemp,dwNr,0);
if (psfi->iIcon == -1)
psfi->iIcon = 0;
}
......
......@@ -53,7 +53,7 @@ BOOL WINAPI Shell_GetImageList(HIMAGELIST * lpBigList, HIMAGELIST * lpSmallList)
BOOL SIC_Initialize(void);
void SIC_Destroy(void);
BOOL PidlToSicIndex (IShellFolder * sh, LPCITEMIDLIST pidl, BOOL bBigIcon, UINT uFlags, int * pIndex);
INT SIC_GetIconIndex (LPCWSTR sSourceFile, INT dwSourceIndex );
INT SIC_GetIconIndex (LPCWSTR sSourceFile, INT dwSourceIndex, DWORD dwFlags );
/* Classes Root */
BOOL HCR_MapTypeToValueW(LPCWSTR szExtension, LPWSTR szFileType, DWORD len, BOOL bPrependDot);
......
......@@ -10053,6 +10053,171 @@ IDI_SHELL_PRINTER ICON printer.ico
'00 00 FF FF 00 00'
} */
/* BINRES shortcut.ico */
IDI_SHELL_SHORTCUT ICON shortcut.ico
/* {
'00 00 01 00 02 00 20 20 00 00 00 00 00 00 A8 08'
'00 00 26 00 00 00 10 10 10 00 00 00 00 00 28 01'
'00 00 CE 08 00 00 28 00 00 00 20 00 00 00 40 00'
'00 00 01 00 08 00 00 00 00 00 00 04 00 00 00 00'
'00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 00'
'00 00 00 00 80 00 00 80 00 00 00 80 80 00 80 00'
'00 00 80 00 80 00 80 80 00 00 C0 C0 C0 00 C0 DC'
'C0 00 F0 CA A6 00 04 04 04 00 08 08 08 00 0C 0C'
'0C 00 11 11 11 00 16 16 16 00 1C 1C 1C 00 22 22'
'22 00 29 29 29 00 55 55 55 00 4D 4D 4D 00 42 42'
'42 00 39 39 39 00 80 7C FF 00 50 50 FF 00 93 00'
'D6 00 FF EC CC 00 C6 D6 EF 00 D6 E7 E7 00 90 A9'
'AD 00 00 00 33 00 00 00 66 00 00 00 99 00 00 00'
'CC 00 00 33 00 00 00 33 33 00 00 33 66 00 00 33'
'99 00 00 33 CC 00 00 33 FF 00 00 66 00 00 00 66'
'33 00 00 66 66 00 00 66 99 00 00 66 CC 00 00 66'
'FF 00 00 99 00 00 00 99 33 00 00 99 66 00 00 99'
'99 00 00 99 CC 00 00 99 FF 00 00 CC 00 00 00 CC'
'33 00 00 CC 66 00 00 CC 99 00 00 CC CC 00 00 CC'
'FF 00 00 FF 66 00 00 FF 99 00 00 FF CC 00 33 00'
'00 00 33 00 33 00 33 00 66 00 33 00 99 00 33 00'
'CC 00 33 00 FF 00 33 33 00 00 33 33 33 00 33 33'
'66 00 33 33 99 00 33 33 CC 00 33 33 FF 00 33 66'
'00 00 33 66 33 00 33 66 66 00 33 66 99 00 33 66'
'CC 00 33 66 FF 00 33 99 00 00 33 99 33 00 33 99'
'66 00 33 99 99 00 33 99 CC 00 33 99 FF 00 33 CC'
'00 00 33 CC 33 00 33 CC 66 00 33 CC 99 00 33 CC'
'CC 00 33 CC FF 00 33 FF 33 00 33 FF 66 00 33 FF'
'99 00 33 FF CC 00 33 FF FF 00 66 00 00 00 66 00'
'33 00 66 00 66 00 66 00 99 00 66 00 CC 00 66 00'
'FF 00 66 33 00 00 66 33 33 00 66 33 66 00 66 33'
'99 00 66 33 CC 00 66 33 FF 00 66 66 00 00 66 66'
'33 00 66 66 66 00 66 66 99 00 66 66 CC 00 66 99'
'00 00 66 99 33 00 66 99 66 00 66 99 99 00 66 99'
'CC 00 66 99 FF 00 66 CC 00 00 66 CC 33 00 66 CC'
'99 00 66 CC CC 00 66 CC FF 00 66 FF 00 00 66 FF'
'33 00 66 FF 99 00 66 FF CC 00 CC 00 FF 00 FF 00'
'CC 00 99 99 00 00 99 33 99 00 99 00 99 00 99 00'
'CC 00 99 00 00 00 99 33 33 00 99 00 66 00 99 33'
'CC 00 99 00 FF 00 99 66 00 00 99 66 33 00 99 33'
'66 00 99 66 99 00 99 66 CC 00 99 33 FF 00 99 99'
'33 00 99 99 66 00 99 99 99 00 99 99 CC 00 99 99'
'FF 00 99 CC 00 00 99 CC 33 00 66 CC 66 00 99 CC'
'99 00 99 CC CC 00 99 CC FF 00 99 FF 00 00 99 FF'
'33 00 99 CC 66 00 99 FF 99 00 99 FF CC 00 99 FF'
'FF 00 CC 00 00 00 99 00 33 00 CC 00 66 00 CC 00'
'99 00 CC 00 CC 00 99 33 00 00 CC 33 33 00 CC 33'
'66 00 CC 33 99 00 CC 33 CC 00 CC 33 FF 00 CC 66'
'00 00 CC 66 33 00 99 66 66 00 CC 66 99 00 CC 66'
'CC 00 99 66 FF 00 CC 99 00 00 CC 99 33 00 CC 99'
'66 00 CC 99 99 00 CC 99 CC 00 CC 99 FF 00 CC CC'
'00 00 CC CC 33 00 CC CC 66 00 CC CC 99 00 CC CC'
'CC 00 CC CC FF 00 CC FF 00 00 CC FF 33 00 99 FF'
'66 00 CC FF 99 00 CC FF CC 00 CC FF FF 00 CC 00'
'33 00 FF 00 66 00 FF 00 99 00 CC 33 00 00 FF 33'
'33 00 FF 33 66 00 FF 33 99 00 FF 33 CC 00 FF 33'
'FF 00 FF 66 00 00 FF 66 33 00 CC 66 66 00 FF 66'
'99 00 FF 66 CC 00 CC 66 FF 00 FF 99 00 00 FF 99'
'33 00 FF 99 66 00 FF 99 99 00 FF 99 CC 00 FF 99'
'FF 00 FF CC 00 00 FF CC 33 00 FF CC 66 00 FF CC'
'99 00 FF CC CC 00 FF CC FF 00 FF FF 33 00 CC FF'
'66 00 FF FF 99 00 FF FF CC 00 66 66 FF 00 66 FF'
'66 00 66 FF FF 00 FF 66 66 00 FF 66 FF 00 FF FF'
'66 00 21 00 A5 00 5F 5F 5F 00 77 77 77 00 86 86'
'86 00 96 96 96 00 CB CB CB 00 B2 B2 B2 00 D7 D7'
'D7 00 DD DD DD 00 E3 E3 E3 00 EA EA EA 00 F1 F1'
'F1 00 F8 F8 F8 00 F0 FB FF 00 A4 A0 A0 00 80 80'
'80 00 00 00 FF 00 00 FF 00 00 00 FF FF 00 FF 00'
'00 00 FF 00 FF 00 FF FF 00 00 FF FF FF 00 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 07 FF'
'FF FF FF FF FF FF FF FF 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 07 FF'
'0A FF FF FF FF FF FF FF 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 07 FF'
'0A 0A FF FF FF FF FF FF 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 07 FF'
'FF 0A 0A FF FF FF FF FF 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 07 FF'
'FF 0A 0A 0A FF 0A FF FF 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 07 FF'
'FF FF 0A 0A 0A 0A FF FF 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 07 FF'
'FF FF FF 0A 0A 0A FF FF 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 07 FF'
'FF FF 0A 0A 0A 0A FF FF 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 07 FF'
'FF FF FF FF FF FF FF FF 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 07 07'
'07 07 07 07 07 07 07 07 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A'
'0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 00 1F'
'FF FF 00 1F FF FF 00 1F FF FF 00 1F FF FF 00 1F'
'FF FF 00 1F FF FF 00 1F FF FF 00 1F FF FF 00 1F'
'FF FF 00 1F FF FF 00 1F FF FF FF FF FF FF FF FF'
'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
'FF FF FF FF FF FF FF FF FF FF FF FF FF FF 28 00'
'00 00 10 00 00 00 20 00 00 00 01 00 04 00 00 00'
'00 00 C0 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 80'
'00 00 00 80 80 00 80 00 00 00 80 00 80 00 80 80'
'00 00 C0 C0 C0 00 80 80 80 00 00 00 FF 00 00 FF'
'00 00 00 FF FF 00 FF 00 00 00 FF 00 FF 00 FF FF'
'00 00 FF FF FF 00 00 00 00 00 00 00 00 00 7F FF'
'FF 00 00 00 00 00 70 FF FF 00 00 00 00 00 7F 00'
'FF 00 00 00 00 00 7F 00 FF 00 00 00 00 00 7F FF'
'FF 00 00 00 00 00 77 77 77 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 01 FF 00 00 01 FF 00 00 01 FF'
'00 00 01 FF 00 00 01 FF 00 00 01 FF 00 00 01 FF'
'00 00 FF FF 00 00 FF FF 00 00 FF FF 00 00 FF FF'
'00 00 FF FF 00 00 FF FF 00 00 FF FF 00 00 FF FF'
'00 00 FF FF 00 00'
} */
/* BINRES desktop.ico */
IDI_SHELL_DESKTOP ICON desktop.ico
/* {
......@@ -10127,8 +10292,6 @@ IDI_SHELL_DESKTOP ICON desktop.ico
} */
/*--------------------- END FIXME ------------------------*/
/*
......
......@@ -110,6 +110,7 @@
#define IDI_SHELL_COMPUTERS_NEAR_ME 19
#define IDI_SHELL_SEARCH 23
#define IDI_SHELL_HELP 24
#define IDI_SHELL_SHORTCUT 30
#define IDI_SHELL_EMPTY_RECYCLE_BIN 32
#define IDI_SHELL_FULL_RECYCLE_BIN 33
#define IDI_SHELL_DESKTOP 35
......
......@@ -69,6 +69,7 @@ HKCR,.jfif,"Content Type",,"image/jpeg"
HKCR,.jpe,"Content Type",,"image/jpeg"
HKCR,.jpeg,"Content Type",,"image/jpeg"
HKCR,.jpg,"Content Type",,"image/jpeg"
HKCR,.lnk,,,"lnkfile"
HKCR,.msi,,,"Msi.Package"
HKCR,.png,"Content Type",,"image/png"
HKCR,.tif,"Content Type",,"image/tiff"
......@@ -84,6 +85,10 @@ HKCR,folder\shell\open\ddeexec,,,"[ViewFolder("%l", %I, %S)]"
HKCR,folder\shell\open\ddeexec,"NoActivateHandler",,""
HKCR,folder\shell\open\ddeexec\application,,,"Folders"
HKCR,htmlfile\shell\open\command,,,"winebrowser %1"
HKCR,lnkfile,"NeverShowExt",,""
HKCR,lnkfile,"IsShortcut",,"yes"
HKCR,lnkfile\CLSID,,,"{00021401-0000-0000-C000-000000000046}"
HKCR,lnkfile\shellex\IconHandler,,,"{00021401-0000-0000-C000-000000000046}"
HKCR,Msi.Package\DefaultIcon,,,"msiexec.exe"
HKCR,Msi.Package\shell\Open\command,,,"msiexec /i %1"
HKCR,Msi.Package\shell\Repair\command,,,"msiexec /f %1"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment