Commit graph

29 commits

Author SHA1 Message Date
Mark Jansen cd2d284142
[EXPLORER][BROWSEUI][SHELL32][NETSHELL] Fix wrong usage of CComPtr 2022-10-02 00:38:23 +02:00
Katayama Hirofumi MZ c5f6e744e7 [SHELL32] Follow-up of 'Simplify CChangeNotifyServer'
Do DestroyAllItems() on OnDestroy().
CORE-13950
2022-03-06 12:33:10 +09:00
Katayama Hirofumi MZ 08bd879247 [SHELL32] Simplify CChangeNotifyServer
- Rename ITEM as CWatchItem.
- Change CWatchItem::hRegEntry to CWatchItem::pRegEntry.
- Simplify code around CWatchItem.

CWatchItem::hRegEntry was local to server, so we could change it to a pointer. CORE-13950
2022-03-06 11:49:28 +09:00
Katayama Hirofumi MZ c199edda45
[SHELL32] Enable _DEBUG and fix assertion failures (#4307)
Improve debuggability. Fix "WorkerW" window class conflict.
- Enable _DEBUG macro if debugging, in order to enable ATLASSERT macro.
- Fix assertion failures.
- Add SHCreateDefaultWorkerWindow helper function and CWorkerTraits, then use them.
- Don't create the broker and server windows by themselves, but subclass.
CORE-17505, CORE-13950
2022-01-25 03:42:46 +09:00
Katayama Hirofumi MZ 880252fd46 [SHELL32] Fix assertion failure in CDirectoryWatcher.cpp
CORE-17511
2021-03-19 08:30:10 +09:00
Jérôme Gardou 907025a018 [CMAKE] Introduce the atl_classes interface library
This takes care of adding the relvant include directory and the _ATL_NO_EXCEPTIONS define, if needed
2020-10-20 21:44:54 +02:00
Jérôme Gardou d6ea8659c8 [CMAKE] Get rid of the set_cpp macro
Instead of messing with global variables and the like, we introduce two target properties:
 - WITH_CXX_EXCEPTIONS: if you want to use C++ exceptions
 - WITH_CXX_RTTI: if you need RTTI in your module
You can use the newly introduced set_target_cpp_properties function, with WITH_EXCEPTIONS and WITH_RTTI arguments
We also introduce two libraries :
 - cpprt: for C++ runtime routines
 - cppstl: for the C++ standard template library

NB: On GCC, this requires to create imported libraries with the related built-in libraries:libsupc++, limingwex, libstdc++

Finally, we manage the relevant flags with the ad-hoc generator expressions

So, if you don't need exceptions, nor RTTI, nor use any runtime at all: you simply have nothing else to do than add your C++ file to your module
2020-10-20 21:44:54 +02:00
Katayama Hirofumi MZ 7c134e4d14
[SHELL32] Big fix for change notification (#3048)
- Reduced the failures of SHChangeNotify testcase.
- Simplified change notification mechanism.
- Realized PIDL aliasing.
CORE-13950
2020-09-03 13:36:31 +09:00
Katayama Hirofumi MZ 1f31905ecd
[SHELL32] Optimize change notification (#3030)
- Keep the directory lists only.
- Don't remember file sizes and normal file paths.
CORE-13950
2020-08-10 13:34:48 +09:00
Katayama Hirofumi MZ 7c9a8c0b89
[SHELL32] Improve readability of filesystem notification (#2737)
Improve human readability of filesystem change notification.
- Rename the identifiers for human readabilities.
- Split the code into CFilePathList and CDirectoryWatcher classes.
- Encapsulation of code.
CORE-13950
2020-06-02 18:42:07 +09:00
Katayama Hirofumi MZ 11b6f973b7 [SHELL32] Follow-up 2 of #2659
Add TODO comments.
Make CreateAPCThread static.
CORE-13950
2020-05-04 16:22:38 +09:00
Katayama Hirofumi MZ 7980f40911 [SHELL32] Follow-up of #2659
Add CreateAPCThread function and use it. CORE-13950
2020-05-04 15:28:16 +09:00
Katayama Hirofumi MZ 5c589b5537
[SHELL32] Notify filesystem changes (#2659)
Notify filesystem change notifications by using ReadDirectoryChangesW function. Creating/Deleting files/folders will be responsive in Explorer. CORE-13950
2020-05-04 14:53:23 +09:00
Katayama Hirofumi MZ bfe36e4f0d [SHELL32] Follow-up of #2539
Improve comment. CORE-13950
2020-04-13 10:41:26 +09:00
Katayama Hirofumi MZ 2727245c86
[SHELL32] Shell notify rework for simplicity and readability (#2539)
Shell change notification has been implemented in #2432. But as @yagoulas said, source code structure is in mess. We improved simplicity and human readability of our source code.
- Move wine/changenotify.c code into changenotify.c and shelldesktop/CChangeNotify.cpp.
- Simplify code and rename the identifiers and add many comments. CORE-13950
2020-04-13 10:36:24 +09:00
Katayama Hirofumi MZ ddc1a46456 [SHELL32] Improve CChangeNotify::ShouldNotify more
Improved non-recursive cases.
CORE-13950
2020-04-11 11:55:06 +09:00
Katayama Hirofumi MZ 2a32094aa0 [SHELL32] Check pidl->mkid.cb == 0 at CChangeNotify::ShouldNotify
CORE-13950
2020-04-11 09:27:45 +09:00
Katayama Hirofumi MZ 2a6bccb4ce [SHELL32] Make "Unable to get notification window" quiet
CORE-13950
2020-04-11 08:45:23 +09:00
Katayama Hirofumi MZ 60959e34aa [SHELL32] Simplify CChangeNotify::ShouldNotify
CORE-13950
2020-04-10 21:57:58 +09:00
Katayama Hirofumi MZ 59c48a5d33 [SHELL32] Improve CChangeNotify::ShouldNotify
Shell change notification was not sent to My Documents.
CORE-13950
2020-04-10 21:51:22 +09:00
Katayama Hirofumi MZ 1c706d7483
[SHELL32] Watch for common desktop and SHCNE_CREATE for IShellLink::Save (#2515)
- On desktop view, we have to watch both the common desktop and the private desktop.
- In Windows, IShellLink::Save (shortcut creation) sends SHCNE_CREATE or SHCNE_UPDATEITEM notification.
- Simplify CChangeNotify::ShouldNotify.
CORE-10391
2020-04-09 16:56:54 +09:00
Katayama Hirofumi MZ 0903c645a2 [SHELL32] Follow-up of #2432
Fixed hang of FireFox.
2020-04-09 08:19:47 +09:00
Katayama Hirofumi MZ 296192685b
[SHELL32] Implement shell change notification (#2432)
- Rewrite SHChangeNotify, SHChangeNotifyRegister, SHChangeNotify_Lock, SHChangeNotify_Unlock and SHChangeNotifyDeregister functions.
- Fix SHSimpleIDListFromPathA/W functions.
CORE-13950
2020-04-09 07:30:14 +09:00
Hermès Bélusca-Maïto be19fda765
[SHELL32] Remove some trailing spaces; use explicitly global namespace for some functions. 2019-12-29 16:14:33 +01:00
Hermès Bélusca-Maïto d967b5aa25
[BROWSEUI] Remove useless RegenerateUserEnvironment() call.
[SHELL32]  Call RegenerateUserEnvironment() in WM_SETTINGCHANGE handler **ONLY** when lParam points to the L"Environment" string.
CORE-15147
2019-12-29 16:14:26 +01:00
Mark Jansen f5731a41f8
[SHELL32] Use the same definitions for shell32 and it's static libs 2019-04-18 19:21:37 +02:00
Timo Kreuzer f9a967b2ae [REACTOS] Fix misc 64 bit issues 2019-04-13 14:07:50 +02:00
Katayama Hirofumi MZ a882ec7a02 [SHELL32][EXPLORER] Update system-wide environment variables (#663)
- Implement shell32 RegenerateUserEnvironment() function and use it.
- CShellBrowser and CDesktopBrowser implements WM_SETTINGCHANGE actions.

CORE-1459, CORE-14397
2018-07-08 16:32:42 +02: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