by Mofi » Fri Oct 09, 2009 1:02 pm
I can only write what I think is the difference on what I could see with using Process Monitor of SysInternals when double clicking on a file associated with UltraEdit in comparison to opening the same file via the shell extension DLL when an instance of UltraEdit is already running.
When you double click on a file, Windows Explorer looks into the registry if there is an application associated to files of that type (file extension) for opening it. If this is the case it calls this application with the file as parameter as you have already posted. UltraEdit starts now and makes all the steps it normally does when starting the first time, checking existence of required files, loading the DLLs, reading the INI file, etc. If you have not enabled the configuration setting to allow multiple instances (stored in the INI file), the created instance next looks in the process list if there is another instance of UltraEdit already running. And if this is the case, it passes the names of the files to open to the already running instance via a named pipe and then terminates itself.
The shell extension DLL uses a smarter method. The routines in the DLL first searches in the process list if an instance of UltraEdit is already running. If this is not the case, it calls uedit32.exe like Windows Explorer. But if an uedit32.exe process is found, it opens a named pipe (communication channel) to the already running instance and tells this instance that the files x, y, z should be opened. The instance determines now the necessary futher steps according to the 2 configuration settings you can configure at bottom of Configuration - Application Layout - Miscellaneous.
The fastest method of opening files in an already running instance is to use Drag & Drop as I do which is the reason why I have not enabled the shell extension DLL and have not associated any file type with UltraEdit. I needed to do this temporarily just for testing your problem. And I could reproduce your problem.
I think this is a bug of UE v15.20.0.1016 caused by the changes on the source code for opening multiple files faster with other methods. Please send a bug report email to IDM support.