The problem appears to occur when Windows XP decides the Multi-Edit process is “Not Responding”. Then Windows XP screws up. You apparently have 5 seconds to complete a task before Windows XP declares a process “Not Responding” and starts screwing up.
“An application is considered to be not responding if it is not waiting for input, is not in startup processing, and has not called PeekMessage within the internal timeout period of 5 seconds.”
“Windows XP: If a top-level window stops responding to messages for more than several seconds, the system considers the window to be hung and replaces it with a ghost window that has the same z-order, location, size, and visual attributes. This allows the user to move it, resize it, or even close the application. However, these are the only actions available because the application is actually hung. When an application is being debugged, the system does not generate a ghost window.”
“To examine a message without removing it from its queue, an application can use the PeekMessage function. This function fills MSG with information about the message.”
Perhaps you could modify Multi-Edit’s File Open dialog (FxFilePrompt) to call ‘PeekMessage’ every 4 seconds? Perhaps set a timer for 4 seconds and call ‘PeekMessage’ when the timer expires?
This would only have to be done if the operating system is Windows XP.
I think we’ve found the problem and the solution.
The problem is with Windows XP and is performance related, since you have 5 seconds to complete your task before Windows XP declares you hung. Switching the Multi-Edit Open File dialog from ME style to Explorer style can help alleviate the problem.
The original Windows XP patch Q811493 can slow down performance, exacerbating the problem. (Microsoft has since released a new version of Q811493 which does not have the performance problem.)
(The problem with Multi-Edit disappearing sometimes when user does “File Open” dialog existed long before Microsoft invented patch Q811493. I have an email dated Sept. 23, 2002 discussing the problem, and patch Q811493 wasn’t released until 16th April 2003.)
-David W. Deley