Commit graph

31 commits

Author SHA1 Message Date
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 <hermes.belusca-maito@reactos.org>

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 <julliard@winehq.org>
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
Renamed from reactos/dll/win32/shell32/wine/shellpath.c (Browse further)