Commit Graph

3857 Commits

Author SHA1 Message Date
Torge Matthies 3dbce69fd4 shell32: Fix getting file attributes from the file system in SHELL32_GetItemAttributes.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52017
Signed-off-by: Torge Matthies <openglfreak@googlemail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-11 21:07:37 +01:00
Zhiyi Zhang 681d2dfd9d shell32: Check This->sPathTarget before calling get_display_name().
Fix Excel 2010 crashing in get_display_name() when clicking the ribbon bar file tab.
The check was removed in 984f608.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-11 21:07:10 +01:00
Alexandre Julliard bc909b1bd5 shell32: Use the standard va_list instead of __ms_va_list.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-22 11:12:47 +02:00
Zhiyi Zhang 32584bb521 shell32: Pass size in bytes to RegLoadMUIStringW() and RegQueryValueExW().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-19 11:29:25 +02:00
Alexandre Julliard 3c81449d16 makefiles: Allow including files with relative paths.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-23 13:54:26 +02:00
Alexandre Julliard 088a787a2c makefiles: Make -mno-cygwin the default.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-20 22:45:48 +02:00
Alexandre Julliard b215536852 shell32: Use wide char string literals.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-20 22:45:48 +02:00
Alexandre Julliard 332b90c006 shell32: Use designated initializers and wide char string literals in known folder table.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-20 22:45:48 +02:00
Alexandre Julliard ac241bf763 shell32: Check for macOS at runtime.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-17 20:24:05 +02:00
Alexandre Julliard 48d62fc623 shell32: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-17 20:24:05 +02:00
Alexandre Julliard d1e1efe0f6 shell32: Use the mount manager for initial shell folders creation.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-17 16:51:31 +02:00
Alexandre Julliard 5803b168ac shell32: Reimplement trash support using Win32 APIs.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-16 22:22:44 +02:00
Alexandre Julliard 0cdb12ae37 shell32: Add a helper to retrieve trash item data without copying it.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-16 17:17:30 +02:00
Alexandre Julliard d603b22a0c shell32: Load the XDG user dirs config file using Win32 APIs.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-16 10:58:12 +02:00
Alexandre Julliard 984f608c28 shell32: Use the standard shell folder implementation for Unix folders.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-15 19:34:22 +02:00
Alexandre Julliard 336c37d5f7 shell32: Allow specifying the child folder CLSID in SHELL32_BindToChild().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-15 19:34:22 +02:00
Alexandre Julliard 23c3391172 shell32: Don't store the short file name in the PIDL.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-14 18:06:56 +02:00
Alexandre Julliard 1dcd1fe613 shell32: Validate the destination name in IShellFolder::SetNameOf.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-14 18:06:56 +02:00
Alexandre Julliard 0ecd807ea6 shell32: Fix the shell folder file attributes.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-14 18:06:56 +02:00
Alexandre Julliard 429154a97d shell32: Create the PIDLs even if IFileSystemBindData::GetFindData returns an error.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-14 18:06:56 +02:00
Alexandre Julliard ed5c882975 shell32: Merge the property bag implementation from the Unix shell folder.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-10 19:01:09 +02:00
Alexandre Julliard df9c67d196 shell32: Merge the drag & drop implementation from the Unix shell folder.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-10 18:52:37 +02:00
Alexandre Julliard aef981df62 shell32: Share more code between the various IShellFolder_GetDetailsOf implementations.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-10 18:50:19 +02:00
Alexandre Julliard 5321428f64 shell32: Don't put shell folders inside My Documents.
Put them all at the same level, like recent Windows versions do.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-06 13:54:34 +02:00
Alexandre Julliard bf811fdcaf shell32: Pass the destination Windows path to _SHCreateSymbolicLink().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-06 13:17:14 +02:00
Alexandre Julliard 0a71ea7381 shell32: Avoid some code duplication.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-06 13:12:45 +02:00
Francois Gouget c10d9d102c shell32: Fix a couple of ASCII / ANSI mixups in comments.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-01 17:07:48 +02:00
André Zwing 9323d33fa4 shell32: Add IApplicationDocumentLists stub.
Lets Cablabel S3 Lite 1.4.0.2 start, otherwise it shows a msgbox with the error and freezes.

Signed-off-by: André Zwing <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-23 22:14:19 +02:00
Alex Henrie adb4259aa9 shell32: Fix use of uninitialized variable in paste_pidls (Clang).
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-05 23:11:23 +02:00
Dmitry Timoshkov e947844a7e shell32: Implement SHBindToObject.
Based on SHBindToParent implementation.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-26 19:42:25 +02:00
Andrew Eikum c99a406b71 shell32: Fix unused knownfolder definition.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51425
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-08 21:13:17 +02:00
Francois Gouget 0e64e05600 shell32/tests: Fix the PathResolve() tests on Windows 8.1, early 10.
Some Windows 8.1 and Windows 10 1507 versions return PATH_NOT_FOUND
instead of FILE_NOT_FOUND.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-05 11:59:39 +02:00
Francois Gouget 865029ae3f shell32/tests: Use WineTest contexts to simplify shellpath.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-05 11:59:33 +02:00
Francois Gouget d6d46299dd shell32/test: Fix an ok() message.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-05 11:59:24 +02:00
Francois Gouget 8aaf9e6460 shell32/tests: Fix the known folder relative path check for multiple CD drives.
When there is more than one CD drive the extra drives typically get a
folder called "Burn1", etc.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-29 19:55:22 +02:00
Andrew Eikum 978e03ea94 shell32: Always create default known folder directories.
Some applications query for the default path, but this would fail on
older prefixes where the new default path was never created.

Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-17 20:02:29 +02:00
Paul Gofman 6b0b6a093f shell32: Don't specify the startup directory for CreateProcessW() in SHELL_ExecuteW().
Doing so fails process creation for relative current directory as the
directory already made current.

Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-16 23:23:49 +02:00
Haidong Yu 56976159ab shell32: Fix a memory leak.
Signed-off-by: Haidong Yu <yuhaidong@uniontech.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-09 23:38:44 +02:00
Haidong Yu 479b659463 shell32: Fix a memory leak.
Signed-off-by: Haidong Yu <yuhaidong@uniontech.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-07 21:24:08 +02:00
Andrew Eikum 96030ce738 shell32: Use correct environment substitution for FOLDERID_Public.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-01 21:25:17 +02:00
Andrew Eikum 73c08fb638 shell32/tests: Add tests to show relative known folder paths match SHGetKnownFolderPath.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-27 21:40:37 +02:00
Andrew Eikum 98d43c5dcf shell32: Calculate known folder paths from parent and relative path.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-27 21:40:37 +02:00
Andrew Eikum 4111801ab3 shell32: Use winvista+ AppData paths.
Katamari Damacy Reroll makes an assumption that the LocalAppData folder
is a sibling of the LocalAppDataLow folder.

Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-27 21:40:37 +02:00
Andrew Eikum 2a52efb7a3 shell32: Use stored registry path for known folder symlinks.
This allows us to keep the same symlinks for knownfolders after the
upcoming patches. A functional change is that, if a user or
application has redirected one of the known folders, we will now
attempt to create the symlink at the redirected path instead of the
default one.

Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-27 21:28:20 +02:00
Damjan Jovanovic 9bc7d41080 shell32: Use the paste_pidls() helper function for the CFSTR_SHELLIDLISTW format too.
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-26 21:32:24 +02:00
Damjan Jovanovic 91b0340170 shell32: Support the CF_HDROP format too when pasting from the context menu.
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-26 21:31:37 +02:00
Damjan Jovanovic 401de24b89 shell32: Fix a lock leak.
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-26 21:31:22 +02:00
Andrew Eikum 2e6fea0d1c shell32: Avoid gcc 11 misleading-indentation warning.
dlls/shell32/classes.c:315:5: warning: this ‘else’ clause does not guard... [-Wmisleading-indentation]
    dlls/shell32/classes.c:318:9: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘else’

Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-20 21:48:57 +02:00
Damjan Jovanovic a3295e3831 shell32/tests: Fix test failures from ad412b11a7.
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-05 10:18:50 +02:00
Damjan Jovanovic 19379007e5 shell32: Fix pasting from the shellview context menu.
Pasting from the shellview context menu is completely broken,
as the desktop folder's BindToObject() always fails since the CIDA
parent folder PIDL is an empty PIDL. The desktop shell folder
doesn't support the ISFHelper interface either. Rather bind to
each item's immediate parent, and copy each item individually.
Also try get error handling to work a little better.

Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-03 20:42:29 +02:00