by IDEAL Software Support » Thu Mar 07, 2013 1:49 pm
We would like to add that problems like these are the reason, why we reverted back to use Simple MAPI as the default transport layer. The Simple MAPI and Extended MAPI subsystems of Windows are a mess - to say the least. For example, when testing this morning, the Send button of Outlook's mail-compose dialog did not work. We clicked onto the send button, it highlighted, but nothing happened. No error message, nothing which would indicate what could be wrong. The mail-compose dialog just stood there on the screen and nothing happened. But best of all: using the keyboard accelerator (hotkey) Alt-S, worked! There is no logical explanation for this. We used Google and found many many people with identical problems and several different solutions, like:
- Enable the option "send immediately when connected" in the Outlook configuration
- Delete a configuration file of Outlook named "outcmd.dat"
- Reinstall or repair the Outlook installation
- Delete the Outlook user account and create a new one
- Restart the computer
Nothing but the last option did help in our case. But what happened next? Immediately after restart of the PC we ran our test program and the mouse-click onto the send button worked, but then our test application crashed!!! Why? The error code indicates a crash or hang inside Outlook, so a COM call could not proceed. We verified with Task-Manager that Outlook was indeed hanging as a background process and killed it. Starting our test-program a second time with the debugger attached, it worked. So what? We don't know. Maybe we should have been waiting longer for the machine to initialize before starting our test program. Maybe cosmic radiation caused the problem (this is meant ironically).
From our experience with Simple MAPI and Extended MAPI, the whole design of the messaging subsystem of Windows is BAD. As many other things with Windows. Windows is neither designed nor programmed carefully. It is neither done with love, nor devotion or passion. We can judge that, because all the code of VPE is directly connected to the low-level API of Windows, and the problems we had to solve (by workarounds, which sometimes are really crazy - or maybe call it "creative") over all those years we are working on VPE were numerous. And they took a huge amount of working time - and therefore money. Bad design, bad documentation and malfunctioning code are normal for the Windows OS. And nothing got better with new versions. Microsoft does not fix basic problems, they do not carefully design their software, they do not innovate - they mainly copy ideas from competitors and their copies are bad. I have nothing good to say about Windows nor Microsoft.
Take for example Linux or any other *nix system: sending mail by code is one simple command. It is so easy, you can learn its use in one minute. Using Simple MAPI - and making it work - took weeks. Using Extended MAPI - and making it work - took months. (In both cases using pure C++, no C# or whatever layers that encapsulate and hide away all the pain of those bloated APIs.) And still Extended MAPI is causing so many problems that we were forced to revert back to Simple MAPI.