Jeff Smith" whydoubt@hotmail.com writes:
Looking at PathIsExe, I thought PID was probably supposed to be PIF (Program Information File). I checked MSDN, and found this was the case. I also found two more types that need to be recognized: SCR (SCReensaver) and SCF (Shell Command File?).
.pif is clearly right, but are you sure about .scr and .scf? My version of Windows doesn't do that.
It doesn't do it always. I had it once and disabled it immediately since I use an application with its own .scf file types. When enabled it captors the scf files directly on shell level and it wasn't possible to select scf files in the file dialog anymore!!! They are really text files in the way of Ini files. It may be possible that it comes with certain versions of Internet Explorer or Active Desktop or whatever. The scf extension when enabled is linked to SHCmdFile which starts explorer.exe without command arguments and then probably passes a DDE execute command to App: Folders, Topic: AppProperties with the command [ShellFile("%1","%1",%S)]. It is therefore not a Windows executable but really a shell extension feature.
SCR files really are special exes. They are usually started by the screen saver control panel or system and not by a user double click. Windows adds links to the HKR keys to execute them as executable but again this happens on the shell level and not in the kernel. The file without any arguments started should display the configuration dialog if any. For the Test case the shell calls the file with argument /S. Installation is done by calling "rundll32.exe desk.cpl,InstallScreenSaver %l".
I would not recommend trying to enable scf files at all in Wine. They are certainly no executables. I have no idea how the Wine pholosophy is in terms of enabling and supporting Windows shell features in Wine itself. It seems not useful to do that other than in the internal Wine browser/explorer eventually with help of Shell32. I would believe that Windows makes those types only indirectly executable through their registry entry and the shell which can interprete and resolve them.
Rolf Kalbermatter