This week has been strange. It has mostly been a series of disappointments, but it ended in some really good news.
I started this week by implementing the parser for the shell DDE commands. The syntax is simple, so the parser itself didn’t take long to finish. I tested it and debugged it in Windows at first, and when I was satisfied that the code was working the way I wanted it, I moved the functions into their rightful place inside shell32, and proceeded to test the function in ReactOS. Sadly, our DDE implementation is so badly broken that I had to give up and set it aside, waiting with the other bugs that require a win32k expert to fix.
Next, I wanted to fix the start menu control panel option, which appears to fail due to ShellExecute not working. I opened the shell32 code, and started looking through the ShellExecute functions, but I quickly realized the code was very convoluted and hard to understand. I kept trying to get a picture of how the code works, but after many hours staring at the screen and understanding the code even less than before, I decided to leave that aside too, and look through the TODO list trying to find something else to work on. And that’s when the good news came.
I mentioned last week that the Shell had a set of functions used for shared memory. Well, Sebastian Lackner from the WINE project read the blog post, and he was kind enough to fix the functions on their side. I tried to debug other issues meanwhile, as a means to pass the time, until Thomas Faber had the time to integrate those changes into ReactOS.
Now with the latest commit in place, you can start a shell-experiments build, and when you run explorer or run a filename that corresponds to a folder, it will launch an explorer.exe executable, which will notify the main executable, ask it to open the window, and close itself right afterwards. The advantage of this is that you can open many folders without making the task manager list really long… ;P
Sorry for the short report, but I hope the good news makes up for the lack of length.
Until next week!