40 Commits
Author SHA1 Message Date
095860df57 [SDK][SHELL32] A big bundle of NT6+ shell32 implementations and stubs (#8834)
Split off CShellitemArray
stub out CShellLibrary
stub out CUserEventTimer
rewrite some vista shellitem APIs
Misc stubs for vista
AddITaskbarList3/ITaskbarList4

---------

Co-authored-by: Oleb Dubinskiy <[email protected]>
Co-authored-by: Mikhail Tyukin <[email protected]>
2026-07-21 12:11:29 -07:00
Timo Kreuzer a790beb22b [SHELL32] Fix SHBindToObject
This should have 5 parameters and stdcall convention.
Get rid of SHBindToObjectEx.
2026-06-23 18:10:39 +00:00
Whindmar Saksit bd2d3b8603 [SHELL32] Don't set a desktop.ini folder icon on WinDir and System32 (#7933)
wine 332b90c0064563a9e4f67fb2d9b26a940e5e745c removed the whole icon member on their side.

CORE-19037
2025-04-27 01:06:32 +02:00
Katayama Hirofumi MZ 81d845fb2c [SHELL32] Implement PathProcessCommandW (#7818)
Follow-up of #7815. This function
affects ShellExec_RunDLLA/W
implementation.
JIRA issue: CORE-17659
- Implement PathProcessCommandW
  in shlexec.cpp.
- Adapt utils.h to non-C++.
2025-03-30 20:28:31 +09:00
Katayama Hirofumi MZ 88d9285bd0 [SHELL32] Follow-up of #7805: Improve PathMakeUniqueName (#7809)
JIRA issue: CORE-19278
- Simplify formatString handling.
- Don't use magic number.
- Commonize some code.
2025-03-24 06:23:14 +09:00
Katayama Hirofumi MZ 386fccd02c [SHELL32][SHELL32_APITEST][SDK] Implement PathMakeUniqueName (#7805)
Sideproduct of #7804. Implementing missing features.
JIRA issue: CORE-19278
- Implement PathMakeUniqueName function.
- Add PathMakeUniqueName prototype to <shlobj.h>.
- Add PathMakeUniqueName testcase to shell32_apitest.
2025-03-22 08:23:24 +09:00
Vitaly Orekhov 06024c97fe [SDK][SHELL32] Make CLSID_NetworkConnections the default name (#7266)
- [SDK][INCLUDE] Redirect CLSID_ConnectionFolder to CLSID_NetworkConnections

CLSID_NetworkConnections is the official known name for the class behind it,
thus to avoid breaking current code I 'softlink' CLSID_ConnectionFolder
to the currently used CLSID_NetworkConnections in shlguid_undoc.h.

- [SHELL32] Refer to CLSID_NetworkConnections from PSDK
2024-09-01 11:40:24 +03:00
Katayama Hirofumi MZ ea936478f5 [BROWSEUI][SHELL32] Fix shell path parsing (#7202)
Fix shell path parsing.
JIRA issue: CORE-19693
JIRA issue: CORE-19694
- Fix CACListISF class by using
  PIDL attributes.
- Use min macro instead of max
  macro in Shell_ParseSpecialFolder
  function.
2024-08-02 04:16:02 +09:00
Whindmar Saksit a25a4eb7b8 [SHELL32] Implement CSIDL_CONNECTIONS and fix CSIDL_PRINTERS (#6919) 2024-05-21 21:09:18 +02:00
Katayama Hirofumi MZ d05dcf6a02 [SHELL32][SDK] Fix ParseDisplayName Part 1 (#6721)
JIRA issue: CORE-19495
- Implement SHParseDisplayName and
  CDesktopFolder::ParseDisplayName.
- Add CStubFolderBase, CShellUrlStub, CFileUrlStub,
  CIDListUrlStub, and CHttpUrlStub helper classes.
- Add SHGetSpecialFolderID and
  Shell_ParseSpecialFolder helper functions.
- Add BindCtx_ContainsObject,
  BindCtx_GetUIWindow, 
  BindCtx_RegisterObjectParam, SHBindToObject,
  SHBindToObjectEx, SHCoInitializeAnyApartment,
  SHGetAttributes, SHGetNameAndFlagsW,
  SHIsFileSysBindCtx, SHSkipJunctionBinding,
  Shell_DisplayNameOf, and Shell_FailForceReturn
  helper functions.
- Modify CSIDL data.
2024-04-10 09:32:13 +09:00
Katayama Hirofumi MZ 84f15b15fb [SHELL32][SHELL32_APITEST] FindExecutable: Add PRF_FIRSTDIRDEF flag (#6681)
Follow-up to #6635. The directory search without this flag didn't work.
JIRA issue: CORE-19493
- Add PRF_FIRSTDIRDEF flag for PathResolveW call.
- Delete needless macro definitions in PathQualifyExW.
- Remove an assertion in IsLFNDriveW.
- Fix shell32_apitest:FindExecutable testcase.
2024-03-29 11:15:38 +09:00
Katayama Hirofumi MZ 11a71418d5 [SHELL32] Implement IsLFNDriveA/W and improve PathResolve (#4866)
- Fix IsLFNDriveA and IsLFNDriveW functions.
- Add IsRemovableDrive helper function.
- Fix PathQualifyExW by using IsLFNDriveW.
CORE-11335
2022-11-10 23:18:04 +09:00
Katayama Hirofumi MZ 1a1a8a8303 [SHELL32][INCLUDE] Fix PathResolve for double-backslash (#4833)
Co-authored-by: Hermès BÉLUSCA - MAÏTO <[email protected]>

Fix shell32!PathResolve and shell32!PathQualifyExW functions for double-backslash. However it doesn't fix CORE-15204.
CORE-18080, CORE-15204
2022-11-04 21:44:46 +09:00
Katayama Hirofumi MZ 6cb1e57a63 [SHELL32] Support CSIDL_FLAG_NO_ALIAS (#4381)
Adding the CSIDL_FLAG_NO_ALIAS flag to SHGetSpecialFolderLocation should return the physical PIDL if possible.
CORE-18079
2022-03-06 15:25:45 +09:00
Hermès Bélusca-Maïto 83be315abf [SHELL32] Use wide char string literals.
Import parts of Wine commit b215536852dc5a132108db92c90a41c70b738e50
shell32: Use wide char string literals.
Signed-off-by: Alexandre Julliard <[email protected]>
2022-01-09 22:39:29 +01:00
Katayama Hirofumi MZ 561fa8d29b [SHELL32] Implement PathResolveA function (#3771)
- Follow-up of #3762.
- Add PathResolveA implementation by ANSI/Unicode string conversion.
CORE-12665
2021-07-01 08:42:29 +09:00
Hermès Bélusca-Maïto 8ec3580123 [SHELL32] Add the handy WHICH_DEFAULT value to the list of flags in shlwapi_undoc.h.
- Add as well the undocumented 0x40 dwFlags value from shlwapi!PathFileExistsDefExtW()
  to the list.

- Fix a bug (also present in Win2k3) in PathResolveW() where, specifying
  the PRF_DONTFINDLNK flag, would also erroneously exclude checking for
  the .cmd extension as well (which was obviously NOT the original
  intention, from the name of the flag and the documentation as well:
  https://docs.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-pathresolve
  ).

Addendum to 3a822e4f.
2021-06-28 02:19:30 +02:00
Katayama Hirofumi MZ 3a822e4f74 [SHELL32] Implement PathResolveW function (#3762)
- Implement PathResolveW function.
- Implement PathQualifyA/W functions using newly-defined PathQualifyExW function.
CORE-12665
2021-06-28 07:53:26 +09:00
Serge Gautherie a7e4d66be5 [SHELL32] DoGetProductType(): Use RegGetValueW()
instead of RegQueryValueExW(), to enforce a null terminator.

Addendum to 9f4e8ef25b.
2020-04-26 14:16:59 +02:00
Katayama Hirofumi MZ 0a626dedf8 [SHELL32] Set read-only for some shell folders and delete Desktop.ini of Desktop and Program Files (#2385)
Set read-only attribute instead of system attribute for some shell folders that has a folder icon.
Delete desktop.ini files in Desktop and Program Files. CORE-16711
2020-02-25 10:07:58 +09:00
Serge Gautherie 9f4e8ef25b [SHELL32] DoGetProductType(): Check RegQueryValueExW() dwType (#2331) 2020-02-11 17:36:12 +01:00
Katayama Hirofumi MZ 9e53e7cd5b [SHELL32] DoGetProductType should check "LanmanNT" value.
CORE-13795
2020-02-11 13:11:58 +09:00
Katayama Hirofumi MZ 48160c74b7 [SHELL32][SYSSETUP] Add Product Options page to ReactOS Setup (#2315)
- Add "Product Options" wizard page into ReactOS Setup.
- Implement CSIDL_Type_InMyDocuments CSIDL type.
- If the product type is workstation, then some special folders will be in My Documents.
CORE-13795
2020-02-10 11:10:42 +09:00
Katayama Hirofumi MZ b582d6ff45 [SHELL32] Improve and fix SendTo (#2122)
Because of timing of SendTo folder initialization, SendTo My Documents didn't work well.
Now My Documents item is working well. CORE-12562
2019-12-02 04:06:20 +09:00
Katayama Hirofumi MZ f1bc04d7e6 [SHELL32][ZIPFLDR] Implement SendTo ZIP folder (#2118)
Follow-up of #2114.
- s/Creater/Creator/
- Add an empty file in the SendTo folder.
- Trick.
CORE-16495
2019-12-02 02:26:34 +09:00
Katayama Hirofumi MZ 79d21f7664 [SHELL32] Fix regression of DoCreateSendToFiles
CoInitializeEx/CoUninitialize added.
CORE-12562
2019-12-01 13:55:43 +09:00
Katayama Hirofumi MZ 2c272a9017 [SHELL32] Add desktop.ini more to some folders (#2101)
Provides special icons for special folders by adding desktop.ini. CORE-10045
2019-11-29 14:40:04 +09:00
Katayama Hirofumi MZ 5538facfdd [SHELL32] Add SendTo DeskLink (Retry) (#2099)
CORE-12562
2019-11-27 20:09:19 +09:00
Katayama Hirofumi MZ a4deb3f8f1 [SHELL32] Change icon of SendTo My Documents (#2083)
Follow-up of #2027. CORE-16496
2019-11-23 14:10:13 +09:00
Katayama Hirofumi MZ d037003511 [SHELL32] Add SendTo My Documents (#2027)
If SendTo folder is empty in SHGetFolderPathAndSubDirW function, then add a shortcut file linked to My Documents. CORE-16496
2019-11-12 16:54:28 +09:00
Hermès Bélusca-Maïto 7ee298bbfc [SHELL32] In _SHExpandEnvironmentStrings(), fall back to SHExpandEnvironmentStringsForUserW() if the simplified code paths failed.
This allows the code to give a last chance for expanding the string.
And if it still fails, we bail out as expected and the caller will
take appropriate actions.

As a by-product, this commit (together with the previous one e2960914)
fixes the regression CORE-14981 (Quick-Launch bar couldn't be opened
in LiveCD).
2018-09-23 00:18:57 +02:00
Hermès Bélusca-Maïto e29609147b [SHELL32] In _SHGetUserShellFolderPath(), check the return value of _SHExpandEnvironmentStrings()
and bail out if it failed. That way we won't use and cache in the registry an invalid-expanded string.

CORE-14981
2018-09-23 00:16:06 +02:00
Hermès Bélusca-Maïto 41a5b11fcd [SHELL32] Partially synchronize wine/shellpath.c with Wine.
- Adjust the code with respect to:
  "shell32: Re-add support for expanding ALLUSERSPROFILE for backward compatibility."
  4a6855a575c02aa1569aab8b2e96720fc02f3f26 (Alexandre Julliard)

- "shell32: Avoid infinite loop in _SHExpandEnvironmentStrings."
  ceea5bda14ecf4c8ce262fc7ab88df49e500bc38 (Alexandre Julliard)

- "shell32: Assume that system directory always contains a drive letter."
  54530bc4933ae1014c3697c95e22b8ca5a275bc4 (Alexandre Julliard)

- "shell32: Use ARRAY_SIZE macro."
  612a1941331485725952d34f3dcd5866fc318dc2 (Nikolay Sivov)

- "shell32: Fix a trace message."
  bb09bb5750d617047aa23635731519a2f9486159 (Nikolay Sivov)

- "shell32: Fix SHGetFolderPathAndSubDir() trace message."
  f75d5625966933562b974540a3f29dfcd720ad50 (Nikolay Sivov)

- "shell32: Pass correct buffer length to RegQueryValueExW()."
  0bfb97dcba29552b51d8609fcc6e7bbc04bb8320 (Nikolay Sivov)

- "shell32: Remove unused string (Clang)."
  8d50a8a246960749afba21eac117b4fcbbf2c79d (André Hentschel)

- "shell32: Use E_NOT_SUFFICIENT_BUFFER definition."
  730e744e3bd6b706612fe0f90a7efb2e600f114f (Nikolay Sivov)
2018-09-23 00:16:02 +02:00
Hermès Bélusca-Maïto 74adcadbd0 [SHELL32] Silence a noisy DPRINT. 2018-07-29 17:39:09 +02:00
Hermès Bélusca-Maïto 2afb483a9e [SHELL32] Shell Profile Folders fixes.
- Fix a regression introduced in r65415 (1795a3bf) where the directory
  paths stored in "Windows\CurrentVersion\Explorer\User Shell Folders"
  were stored in expanded format instead of in unexpanded format:
  _SHGetDefaultValue() *MUST* return unexpanded paths by design!!

- Augment _SHExpandEnvironmentStrings() and _SHGetUserShellFolderPath()
  to take a user token handle to be able to correctly resolve/expand
  user-specific directory paths.

- Fix _SHExpandEnvironmentStrings() so that it always retrieve the
  correct current user / all-users directory paths by calling userenv
  functions, instead of hardcoding a broken logic. As a result this
  removes the "C:\Documents and Settings\SYSTEM" ghost directory we got
  during ReactOS installation.

- Delimit the changes with respect to Wine by #if(n)def __REACTOS__ .
2018-06-30 18:20:08 +02:00
Katayama Hirofumi MZ 3189ec9428 [SHELL32] Add missing desktop.ini files (#640)
Add the "desktop.ini" files to the special folders to realize their custom icons.
CORE-10045
2018-06-27 23:11:31 +02:00
Giannis Adamopoulos ac950ea01d [SHELL32] shellpath: sync a part of _SHGetDefaultValue with wine
on 32bit builds CSIDL_PROGRAM_FILESX86 is treated as CSIDL_PROGRAM_FILES and on wow64 builds CSIDL_PROGRAM_FILES gets treated as CSIDL_PROGRAM_FILESX86
2018-02-20 10:58:14 +02:00
Amine Khaldi e83592920b [SHELL32] Remove unused debug channels and comment out unused variables. Silences some clang-cl warnings. 2017-12-07 23:54:22 +01:00
Serge Gautherie 57aa1f1fc6 [SHELL32] shellpath.c: it is _WIN32_WINNT, not WIN32_WINNT. We even need to use __REACTOS__ instead here. CORE-12580 2017-12-03 21:52:37 +01:00
Colin Finck c2c66aff7d Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00