Change notification on a folder on
Desktop was failing due to
mismatching PIDLs.
We translate PIDLs to match the
alias PIDLs.
JIRA issue: CORE-19630
JIRA issue: CORE-19820
JIRA issue: CORE-16941
- Add SHELL32_ReparentAsAliasPidl
and SHELL32_AliasTranslatePidl
helper functions. They translate a
PIDL to an "alias" PIDL.
- Implement SHLogILFromFSIL
function.
- Use SHELL32_AliasTranslatePidl
in CDesktopFolder::ParseDisplayName
instread of Shell_TranslateIDListAlias.
- Use SHELL32_AliasTranslatePidl
in CreateNotificationParam.
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
Notify filesystem change notifications by using ReadDirectoryChangesW function. Creating/Deleting files/folders will be responsive in Explorer. CORE-13950
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