Commit graph

85236 commits

Author SHA1 Message Date
Hermès Bélusca-Maïto ea3e66d748
[SHELL32:WINE] Improve ROS-specific registry opening in SHRestricted() (#4275) 2024-02-29 13:29:10 +01:00
Hermès Bélusca-Maïto 9513d18f93
[SHELL32:WINE] Update the table of policy restrictions (#4275)
Our shell32's wine/shpolicy.c file, synced with Wine code (and which is
currently in master still up to date with Wine!), contains outdated or
incomplete definitions that date back from Windows 98/2000.

Update the restrictions with those from shell32 v6.0 of Windows Server 2003 SP2.

References:
https://www.geoffchappell.com/studies/windows/shell/shell32/api/util/restrictions.htm
https://docs.microsoft.com/en-us/windows/win32/api/shlobj_core/ne-shlobj_core-restrictions

"NoLogoff": http://systemmanager.ru/win2k_regestry.en/93519.htm
"StartMenuLogOff": http://systemmanager.ru/win2k_regestry.en/92884.htm
"GreyMSIAds": http://systemmanager.ru/win2k_regestry.en/93177.htm
2024-02-29 13:29:08 +01:00
Hermès Bélusca-Maïto ea8ce25944
[SHELL32:WINE] Add Wine-version info to the Wine's shell32_main header. 2024-02-29 13:27:33 +01:00
Hermès Bélusca-Maïto 52dd07febd
[SHELL32:WINE] Make the wine-imported files include shell32_main.h 2024-02-29 13:26:46 +01:00
Hermès Bélusca-Maïto 72b405549c
[SHELL32] SHAddToRecentDocs(): Just use SHRestricted() to get the NoRecentDocsHistory policy...
... instead of redoing the manual work.
2024-02-29 12:54:10 +01:00
Hermès Bélusca-Maïto fc1712e494
[SHELL32] Set a sane SHELL32 versioning, when compiled for NT 5.2 and NT 6+.
i.e. don't keep using version from Windows 2000...

Values taken from
https://www.geoffchappell.com/studies/windows/shell/shell32/history/index.htm
2024-02-29 12:38:50 +01:00
Katayama Hirofumi MZ ac870f986d
[SHLWAPI_APITEST] Add SHGetRestriction testcase (#6557)
I have a plan to implement
shell32!SHRestricted correctly.
JIRA issue: CORE-11515
In the testcase:
- Get procedure SHGetRestriction
  from shlwapi.dll.
- Call SHGetRestriction to test and
  check the results.
2024-02-29 20:28:10 +09:00
Katayama Hirofumi MZ b944563c7b
[SHELL32_APITEST] Add SHRestricted testcase (#6558)
I have a plan to implement
shell32!SHRestricted correctly.
JIRA issue: CORE-11515
- Get SHRestricted and
  SHSettingsChanged procedures
  from shell32.dll.
- Use them and check the results.
2024-02-29 20:26:01 +09:00
Katayama Hirofumi MZ d0e29248e3 [SHELL32] Update Japanese (ja-JP) translation
Follow-up to #6544. CORE-18706
2024-02-29 09:23:46 +09:00
Joachim Henze e341162dd1
[RASDLG] *.rc Trim unintended spaces (#6540)
- trim unintended spaces
- uk-UA.rc tweak the header (Ukraianian typo, strip FILE:)
2024-02-28 22:34:29 +01:00
Oleg Dubinskiy f9a5344254
[SHELL32] Allow using custom desktop/folders/drives icons (#6421)
Implement proper reading the current user's icons from registry.

CORE-14758

- Load the icons specified by user in registry in the following keys:
  "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}\DefaultIcon"
  (virtual namespace folders)
  "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons"
  (filesystem folders and drives)
- Implement two functions HCU/HLM_GetIconW for reading the icons
  from mentioned HKCU and HKLM keys accordingly.
- Use HCR_RegGetIconW for falling back to default icons.
  This function always loads only default icons, even when
  the custom ones are specified by user.
- Refactor SIC_LoadOverlayIcon to use newly implemented HLM_GetIconW.

These changes apply to:
- virtual namespace folders and other desktop items (like My Computer,
  My Documents, Network Places, Recycle Bin, Web Browser (aka Internet
  Explorer), Control Panel and some of its items);
- normal filesystem directories;
- all types of drives (fixed disk drives, removable drives, CD-ROMs,
  RamDisks and network drives). Handle invalid drives, setting blank
  icon for them, since they cannot be recognized or mounted correctly.
  Also, load the autorun icons first to avoid overriding them by the
  icons defined in registry.

I've rechecked twice: excluding Start Menu icons, Desktop Workspace icon
and some FS folder icons that have their own desktop.ini configuration
files (we probably should write the custom icons we load to these configs,
as Windows does it, perhaps with WritePrivateProfileStringW), all other
icons can be changed now (only ones that can be changed on XP SP3 / 2003
SP2) via built-in system tools (like Desktop icons in desk.cpl) or any
3rd-party tools without modifying system resources.

Also all icons for the known file types can be changed,
same as before my changes.

Regarding Start Menu icons:
- changing them should be correctly implemented in explorer
  instead of shell32, as the former is responsible for the Start Menu
  and partially for the taskbar;
- in order to actually use all of them, we need to implement modern
  Start Menu first.

Useful reference: http://www.winfaq.de/faq_html/Content/tip0000/onlinefaq.php?h=tip0162.htm
2024-02-29 00:20:47 +03:00
Piotr Hetnarowicz 45321706dc
[SHELL32] Update Polish (pl-PL) translation (#6553) 2024-02-28 21:26:15 +03:00
Stanislav Motylkov 29a5108a4d [MSPAINT] Update Russian (ru-RU) translation
Addendum to f53d7eeb4c. CORE-19466
2024-02-28 21:16:05 +03:00
Stanislav Motylkov 91caceaf02 [SHELL32] Update Russian (ru-RU) translation
Addendum to d1ac33a9bd. CORE-16956
2024-02-28 21:14:53 +03:00
Hermès Bélusca-Maïto 0d8a6a30cc
[PSDK] Remove unused file; it doesn't also exist in official MS PSDK 2024-02-28 17:23:17 +01:00
Katayama Hirofumi MZ e928b42758
[MSPAINT] Improve GetSelectionContents for free-shape selection (#6554)
Follow-up to #6552. There was
a bug that the cropped selection
image is not the shape of selection.
JIRA issue: CORE-19466
- Extend SelectionModel::
  DrawSelection for drawing
  selection flexibly.
- Improve SelectionModel::
  GetSelectionContents method.
2024-02-28 22:01:08 +09:00
Katayama Hirofumi MZ f0e45f07e1 [MSPAINT] Update Japanese (ja-JP) translation
CORE-18706
2024-02-28 20:36:21 +09:00
Katayama Hirofumi MZ f53d7eeb4c
[MSPAINT] Implement 'Crop Selection' (#6552)
Improve usability.
JIRA issue: CORE-19466
- Add IDM_CROPSELECTION command in "Edit" menu.
- If no selection, then disable IDM_CROPSELECTION.
2024-02-28 19:27:37 +09:00
Katayama Hirofumi MZ 059fd8e551
[SHELL32] Fix CMenuBand's context menu (#6548)
JIRA issue: CORE-17453, CORE-12328
In CMenuBand::_TrackContextMenu method:
- Use 100 for idCmdFirst, instead of zero.
- Use uCommand - idCmdFirst for cmi.lpVerb.
Zero is an invalid command ID.
2024-02-28 16:54:15 +09:00
Katayama Hirofumi MZ 1d1472c78e
[APPWIZ][SHELL32] Improve 'Create Shortcut' dialog (#6550)
Now we can open special folder shortcut, thanks to #6546.
Let's allow users to create various shortcut files.
JIRA issue: CORE-5866
- Remove BIF_RETURNONLYFSDIRS flag because
  the system can open special folder shortcuts now.
- Add LPITEMIDLIST pidlTarget to CREATE_LINK_CONTEXT
  structure.
- Use pidlTarget if the target is a special folder.
- Fix CShellLink::DoOpen for arguments.
2024-02-28 15:22:44 +09:00
Katayama Hirofumi MZ 776c3a3495
[SHELL32] SHBrowseForFolder: Fix pszDisplayName (#6549)
pszDisplayName is for display name, not for full path.
JIRA issue: CORE-5866
- If lpBrowseInfo->pszDisplayName is valid,
  use SHGetFileInfoW to get display name.
- Don't use SHGetPathFromIDListW to get
  display name. It's wrong.
2024-02-28 13:23:27 +09:00
Katayama Hirofumi MZ d634ef54e4
[SHELL32] Opening Special Folder shortcut (#6546)
Fix opening special folder.
JIRA issue: CORE-19464
In CShellLink::DoOpen, if there is a PIDL, then use it and set SEE_MASK_IDLIST flag.
2024-02-28 12:17:04 +09:00
Katayama Hirofumi MZ d1ac33a9bd
[EXPLORER][SHELL32] Strengthen Start Menu Customize Part 1 (#6544)
Strengthen customization of Start menu.
JIRA issue: CORE-16956
- Modify IDD_CLASSICSTART_CUSTOMIZE dialog.
- Add some resource strings to shell32.dll.
- Add some helper functions.
- Disable Clear button if necessary.
- Add "Display Favorites" and "Display Log Off"
  items into IDC_CLASSICSTART_SETTINGS treeview
  control.
- Implement two items' action.
- Recreate the start menu if WM_SETTINGCHANGE
  message received.
2024-02-27 20:41:43 +09:00
Katayama Hirofumi MZ 281f7c4e38
[BROWSEUI] Implement 'Add to Favorites' (#6543)
Implement Explorer's "Add to Favorites" feature.
JIRA issue: CORE-16857
- Add CreateShortcut helper function.
- Add CShellBrowser::OnAddToFavorites.
2024-02-27 19:55:57 +09:00
Katayama Hirofumi MZ 8209aa528b
[BROWSEUI] Enable Address bar access key (Alt+D) (#6534)
Retrial of #5052. Improve keyboard
interface usability.
JIRA issue: CORE-18823
- Add GetAddressBarAccessKey
  helper function to get the
  accelerator of Address bar from
  resource string
  IDS_ADDRESSBANDLABEL.
- Implement Alt+D (or something)
  accelerator in CAddressBand::
  TranslateAcceleratorIO method by
  handling WM_SYSKEYDOWN and
  WM_SYSCHAR messages.
2024-02-26 21:54:51 +09:00
Joachim Henze a08b83a90b
[SHELL32] Fix 2 compiler warnings for the rls-cfg 'unused variable' (#6539)
I noticed it on releases/0.4.10 with the RosBEWin2.1.6 GCC4.7.2 *rls* configuration:

C:/0410rls/reactos/dll/win32/shell32/dialogs/filetypes.cpp: In function 'BOOL FileTypesDlg_InsertToLV(HWND, LPCWSTR, INT, LPCWSTR)':
C:/0410rls/reactos/dll/win32/shell32/dialogs/filetypes.cpp:663:9: warning: variable 'iLargeImage' set but not used [-Wunused-but-set-variable]
C:/0410rls/reactos/dll/win32/shell32/dialogs/filetypes.cpp: In function 'BOOL EditTypeDlg_UpdateEntryIcon(HWND, PEDITTYPE_DIALOG, LPCWSTR, INT)':
C:/0410rls/reactos/dll/win32/shell32/dialogs/filetypes.cpp:1040:9: warning: unused variable 'iLargeImage' [-Wunused-variable]

But I do assume, that MSVC compilers would also complain about that in *rls* cfg.

Please notice that before 0.4.10-dev-202-g 698cbc6184 which did splitup and restructure the code
this function was placed within the file folder_options.cpp and was named
InsertFileType(HWND hDlgCtrl, WCHAR * szName, PINT iItem, WCHAR * szFile)
and not yet within file_types.cpp with the new name
FileTypesDlg_InsertToLV(HWND hListView, LPCWSTR szName, INT iItem, LPCWSTR szFile)
Back then it did not have the iLargeImage variable yet, and it also didn't warn upon rls-cfg-compilation.
Therefore 0.4.10-dev-202-g 698cbc6184 from (#582) is indeed the *guilty revision* (2018-06-06).
It was done in the very first commit of that PR 2fe0eab721
It's bad practice to move and refactor/extend code in functionality within the very same commit, as it makes reviewing the changes much harder.

That assert never fired for the last 6 years, therefore it would have been okay also to strip it together with the variable, but using DBG_UNREFERENCED_LOCAL_VARIABLE(iLargeImage); allows to keep the assert for master.
2024-02-26 13:42:13 +01:00
Hermès Bélusca-Maïto ed7dc31103
[SETUP:REACTOS] Set the default language and keyboard layout at startup
Retrieve the current ambient language and keyboard layout, that has been
chosen in the "General language and keyboard layout selection" dialog
when starting the LiveCD.

A more robust solution will be developed later.
2024-02-26 12:45:43 +01:00
Katayama Hirofumi MZ c0b4db14de
[BOOTDATA][NTUSER] Prepare for CTF IME Part 1 (#6524)
Supporting TIPs...
JIRA issue: CORE-19360
- Add "IME File" registry value
  as "msctfime.ime" at
  HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IMM.
- Modify UserIsCiceroEnabled
  function for preparation of
  CTF IME.
2024-02-24 01:53:16 +09:00
Katayama Hirofumi MZ 3768f0893d
[WIN32SS] Fix const-ness of registry helper functions (#6525)
Improve code quality.
JIRA issue: CORE-19360
- Fix const-ness of the arguments
  of win32k registry helper functions.
- Compact UserIsIMMEnabled function.
2024-02-23 21:26:12 +09:00
Katayama Hirofumi MZ febb589e00
[MSCTFIME] Finish msctfime.cpp (#6523)
Supporting TIPs...
JIRA issue: CORE-19360
- Add some CicBridge methods (stub).
- Implement ImeProcessKey,
  ImeToAsciiEx, ImeSetCompositionString,
  CtfImeEscapeEx, and CtfImeIsIME
  functions.
2024-02-23 19:58:21 +09:00
Katayama Hirofumi MZ 980ebf0694
[MSCTFIME] Implement CtfImeSetActiveContextAlways (#6522)
Supporting TIPs...
JIRA issue: CORE-19360
- Move code of functions.cpp
  into misc.cpp and delete functions.cpp.
- Add implementation to
  CicBridge::GetDocumentManager,
  CicBridge::CreateInputContext, and
  CicBridge::SetActiveContextAlways
  methods.
- Implement NotifyIME,
  CtfImeSetActiveContextAlways, and
  CtfImeCreateInputContext functions.
2024-02-23 17:43:13 +09:00
Katayama Hirofumi MZ 69b08be0e0
[MSCTFIME][CICERO] Half-implement CIMEUIWindowHandler (#6521)
Supporting TIPs...
JIRA issue: CORE-19360
- Add implementation to
  CIMEUIWindowHandler class.
2024-02-23 13:45:00 +09:00
Katayama Hirofumi MZ 353edbd3f4
[MSCTFIME] Add UIComposition Part 2 (#6520)
Supporting TIPs...
JIRA issue: CORE-19360
- Add implementation to
  UIComposition class.
2024-02-23 11:18:52 +09:00
Hermès Bélusca-Maïto 14d3b53cc6
[NTFS] Typo fix: "Steam" -> "Stream" 2024-02-22 22:43:40 +01:00
Hermès Bélusca-Maïto 59f8611321
[WINSRV] Delay-load psapi.dll
Note that it is used only in debug builds in order to display the list
of processes being terminated in the debug log.
2024-02-22 22:41:06 +01:00
Hermès Bélusca-Maïto 2c0af91ba1
[WINSRV] Use ARRAYSIZE() instead of hardcoding buffer size in GetProcessImageFileNameW call 2024-02-22 22:41:05 +01:00
Hermès Bélusca-Maïto e5db85276e
[PSAPI] Don't make the dll depend on MSVCRT
psapi.dll can also used by low-level DLLs, such as winsrv.dll,
therefore it is better to reduce its dependencies.
2024-02-22 22:41:04 +01:00
Hermès Bélusca-Maïto 047f1c3d55
[USETUP] Exchange SetupStartPage and LanguagePage 2024-02-22 22:41:03 +01:00
Katayama Hirofumi MZ 9262df661e
[MSCTFIME] Implement CModeBias (#6515)
Supporting TIPs...
JIRA issue: CORE-19360
- Rename compartment.cpp as
  misc.cpp.
- Implement CModeBias class.
2024-02-22 18:43:08 +09:00
Katayama Hirofumi MZ 7d0b5482f6
[MSCTFIME] Implement CicBridge::OnSetOpenStatus (#6514)
Supporting TIPs...
JIRA issue: CORE-19360
- Add CicInputContext::EscbCompComplete
  method (stub).
- Implement CicBridge::OnSetOpenStatus
  method.
2024-02-22 17:28:40 +09:00
Katayama Hirofumi MZ f53f1334ed
[MSCTFIME][CICERO] Implement CFnDocFeed (#6513)
Supporting TIPs...
JIRA issue: CORE-19360
- Add missing CicInputContext methods.
- Implement CFnDocFeed class.
2024-02-22 15:46:05 +09:00
Serge Gautherie 0086d05007
[EXT2FS] Ext2Read(): Complete request on VCB_VOLUME_LOCKED case (#4770)
CORE-10645

Co-authored-by: Victor Martinez Calvo <vicmarcal@gmail.com>
2024-02-21 07:31:09 -08:00
Katayama Hirofumi MZ a55345be29
[MSCTFIME][CICERO] Implement CDefCompFrameWindow (#6512)
Supporting TIPs...
JIRA issue: CORE-19360
- Add delay link to uxtheme.dll.
- Implement CDefCompFrameGripper,
  CCompFinalizeButton,
  CCompButtonFrameWindow, and
  CDefCompFrameWindow classes.
2024-02-21 10:36:32 +09:00
Hermès Bélusca-Maïto b7ad4a2298
[SETUPLIB][USETUP] Some cleanup for partition code.
- Make the Create*Partition helpers take a size in bytes, not in sectors.

  This allows them to be easier to use by the caller, alleviating the
  need for making the size conversion into sectors. Instead it is done
  internally by the helpers.

- Introduce helper macros to easily retrieve the size of a partition
  entry or a disk in bytes, from their internal representation in number
  of sectors.

- The 'AutoCreate' variable being USETUP-specific, remove it from the
  PARTENTRY structure and use instead a flag set into the 'New' member.

- Rename IsDiskSizeValid to IsPartitionLargeEnough, to better describe
  what the function is for.
2024-02-20 15:52:37 +01:00
Katayama Hirofumi MZ b2ec78673d
[MSCTFIME] Restructuring (#6505)
Improve code flexibility. 3700+
lines of msctfime.cpp was too long.
JIRA issue: CORE-19360
- Split msctfime.cpp code to some
  source files and header files.
2024-02-20 21:11:08 +09:00
Jérôme Gardou 0610bcb3f9 [DBGHELP] Avoid call of wine_get_dos_file_name
CORE-19444
2024-02-20 08:56:53 +01:00
Jérôme Gardou e706083d50 [LIBWINE] Return empty path when given a UNIX path
CORE-19444
2024-02-20 08:56:53 +01:00
Katayama Hirofumi MZ 6bc40d36f8
[CTFMON][MSCTFIME][MSCTF][MSUTB][CICERO] Fix TFUninitLib (#6504)
Supporting the Language bar...
JIRA issue: CORE-19363
- Delete TFInitLib and TFUninitLib
  calls from ctfmon.exe.
- Delete TFUninitLib from Cicero
  library.
- Implement InitDisplayAttrbuteLib
  in msctfime.ime.
- Improve CIC_LIBTHREAD structure.
2024-02-20 14:36:24 +09:00
Joachim Henze 6f91b6c0fe [SHELL32] Tweak formatting and logging
Some style-improvements I wanted to apply before a planned backport.
E.g. The biggest source-file CDefView.cpp in [SHELL32] can be shrinked considerably by stripping some outdated
comments from 10 and more years ago, when this class was still non-OOP and named ShellView.
Less excessive line-lengths also here and there.

In case it is not obvious when reviewing: In the beginning of CDevView.cpp in the declaration-part I just
reduced the indentation-level by 4 spaces for a big block.

Some shell classes were touched during 0.4.15-dev'ing for fixes like the 'unkown'-typo in
0.4.15-dev-6323-g 3854a5d8e9 for example
or missing \n were added to dbgprints like in
0.4.15-dev-4492-g 03422451b3
Touched again here, because I want to port those improvements back,
but don't intend to increase the size in older releases.

The commit looks big, but does consist solely of trivialities.
There is no functional change in this commit, aside the logging ofc.
2024-02-20 02:08:56 +01:00
Hermès Bélusca-Maïto b02dd8eb22
[SETUPLIB] Make the settings' Process* functions take an actual value instead of a GENERIC_LIST
The reason is to avoid enforcing the usage of a specific list
container by the users of the setup library. This is a departure
of what I originally thought would be the best, in commits
92692eae3 (r74553), 8f2c4f7a6 (r75700)

This should actually make some parts of the GUI setup code simpler
(e.g. using the win32 comboboxes to store the list contents).
2024-02-18 16:30:46 +01:00