Hi again, After a Friday night dedicated to building and debugging together with Charlie Russel, I've come to the conclusion that we can in fact ship DQSD for 64-bit platforms!
There are two main problems: 1) Building DQSDTools.dll for a 64-bit architecture 2) Getting the installer to register DQSD as a deskband for the 64-bit explorer.exe and *not* the 32-bit As for (1), there are a couple of options: - Build it using VS2005 Beta, AKA Whidbey -- it has a cross-compiler that can produce 64-bit executables on a regular 32-bit build machine - Build it remotely, using VS2003 .NET + 64-bit compiler tools from the Platform SDK. This is what we did when we got it to work; I connected to Charlie's machine, and built DQSDTools.dll there Either works fine, as long as someone has access to either Whidbey or 64-bit Windows. #2 is a bit more difficult. 64-bit Windows has a pretty comprehensive side-by-side system for 32-bit apps. There's a 32-bit \system32 directory with all the system DLLs, called \WINDOWS\SysWOW64, while the new 64-bit system modules are, ironically, placed in WINDOWS\system32 :-) Also, the registry is partitioned into the usual HKLM\SOFTWARE and a 32-bit compatibility section under HKLM\SOFTWARE\Wow6432Node. So, as far as I can see, all 32-bit apps are automatically redirected to HKLM\SOFTWARE\Wow6432Node when they attempt to read or write to HKLM\SOFTWARE. The same goes for the Windows directory (32-bit apps get \WINDOWS\SysWow64 when they ask for the system root) and the Program Files directory (Program Files (x86) for 32-bit). And probably a lot of other stuff... Just found an article at [1] if you're interested. The crux of the problem with DQSD is that the installer .exe is a 32-bit app, so when it attempts to write the registry stuff that sets the DQSD band up, it writes to HKLM\SOFTWARE\Wow6432Node\Classes. When 64-bit explorer.exe attempts to read its extensions from the registry, it enumerates classes in HKLM\SOFTWARE\Classes... DQSD isn't there, obviously. So, to get DQSD to install for 64-bit Windows, we need a 64-bit executable that can write the pertinent registry info, so the 32-bit compat layer doesn't get in the way. The article I mentioned earlier brings up an API we can call to disable the file system redirection, and I guess there are similar hooks for the registry. I think we might be able to build a 32-bit installer that disables redirection, writes the correct registry entries, and deploys a 64-bit DQSDTools.dll... Does this sound like a good plan? - Kim [1] http://www.route64.net/documents/M03.pdf ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. Get your fingers limbered up and give it your best shot. 4 great events, 4 opportunities to win big! Highest score wins.NEC IT Guy Games. Play to win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20 _______________________________________________ Archive: https://lists.sourceforge.net/lists/listinfo/dqsd-devel
