locked
Windows 7 x64 and 32-bit namespace extension RRS feed

  • Question

  • I have a 32-bit Windows Explorer.exe shell namespace extension that cannot be converted to x64 because is uses several 32-bit 3rd party controls that are not going to x64.  On a 64-bit machine, I add a shortcut to the Desktop with this as the target:

    C:\Windows\SysWOW64\explorer.exe /separate, /e, ::{B3C4063F-5A41-11D3-896F-0060974C6D91}

    This shortcut works on x64 XP, Vista, 2003, and 2008R1.  Additionally, it worked on the Windows 7 betas.  However, something changed with the RTM version of Windows 7.

    When I double click my shortcut, I can see the 32-bit version of explorer run very briefly in Task Manager before it kicks off a 64-bit explorer.exe and exits.  Obviously my 32-bit namespace cannot be loaded in an x64 process, so there is my problem.

    I have looked all over the web and Microsoft sites but have not found a resolution to this problem.  Does anyone know why this is happening and, more importantly, how I can get the 32-bit explorer.exe process to run with my namespace?

    Thanks,
    Tim
    Thursday, February 4, 2010 8:03 PM

Answers

  • Hello Tim,

    Thanks for your post on MSDN forum.

    >Does anyone know why this is happening and, more importantly, how I can get the 32-bit explorer.exe process to run with my namespace?

    It's not supported to launch 32-bit explorer in x64 Windows 7. We will have to use x64 one. please check with the control library vendor to see if they are going to ship x64 dlls.

    Thanks,
    Rong-Chun Zhang
    MSDN Subscriber Support in Forum
    If you have any feedback on our support, please contact msdnmg@microsoft.com
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    • Marked as answer by Tim Werth Friday, February 5, 2010 1:43 PM
    Friday, February 5, 2010 9:08 AM

All replies

  • Hello Tim,

    Thanks for your post on MSDN forum.

    >Does anyone know why this is happening and, more importantly, how I can get the 32-bit explorer.exe process to run with my namespace?

    It's not supported to launch 32-bit explorer in x64 Windows 7. We will have to use x64 one. please check with the control library vendor to see if they are going to ship x64 dlls.

    Thanks,
    Rong-Chun Zhang
    MSDN Subscriber Support in Forum
    If you have any feedback on our support, please contact msdnmg@microsoft.com
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    • Marked as answer by Tim Werth Friday, February 5, 2010 1:43 PM
    Friday, February 5, 2010 9:08 AM
  • Thanks for the information.  That is the first definition position I have read about this.

    One of the controls we use is a VB6 control, so it cannot be converted to x64.  That's why I was looking for a 32-bit solution.

    Tim
    Friday, February 5, 2010 1:45 PM
  • If it is a control shipped with VB6 you probably can find its replacement in open source communities.
    Or you can spin-off your 32bit code to a 32bit process and talk to the process using inter-process communication methods that are not subject to UIPI.


    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    Sunday, February 7, 2010 2:48 PM
  • Hello,

    I see that the post is from last year, but yet decided to answer.

     

    >Obviously my 32-bit namespace cannot be loaded in an x64 process, so there is my problem.<

    There is difference if you want to register your namespace extension for working with 32 and 64 bit applications. On 64 bit OS (let say Win7 64) the native applications are 64 bit (explorer, notepad, paint and so on) but Word, Adobe Reader are 32. In order to make it work you should register your namespace extension twice - once in the normal 32 bit registry keys and one in Wow64 bit node. You can create applicaiton doing that, using RegistrationServices.

    you can check the following links:

    http://support.microsoft.com/kb/305097

    http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.registrationservices.aspx

    http://www.ssware.com/support/viewtopic.php?t=666&sid=3b112040f4fa1a21ca949e1ef2cd08bc

     

    Or you can use also:

    c:\windows\system32\regsvr32.exe

    c:\windows\SysWOW64\regsvr32.exe

    ... to do both types of registration.

     

    Tuesday, February 22, 2011 3:38 PM