32-bit Shell Extension on Windows 7 x64

32-bit Shell Extension on Windows 7 x64

3
NewbieNewbie
3

    Mar 03, 2012#1

    I am using Windows 7 x64 and two panel file manager "Altap Salamander" 32-bit (still no 64-bit version available).
    With this combination, I dont have "Load in UltraCompare" entry in file context menu, even this entry exists in Windows Explorer.
    I think, UC shell extension is 64-bit.
    Is there any way to install 32-bit shell extension or whole UC 32-bit?

    6,602548
    Grand MasterGrand Master
    6,602548

      Mar 03, 2012#2

      It should be possible. But I can't give you the definite solution because not having a computer running Windows x64.

      I have tried once to help an UltraEdit user to integrate the 32-bit shell extension DLL of UltraEdit on Windows 7 x64, see Windows 64 shell integration? But that failed and I don't know if the user made a mistake or it was really not possible.

      However, I give you some hints to manually install and register the 32-bit shell extension DLL of UltraCompare. Perhaps you have more success. The instructions below are for UltraCompare v8.20.

      First, you need UC_ShellExt.dll additionally to already installed UC_ShellExt64.dll.

      You have to find out where the MSI file is stored on your hard disk. During installation of UltraCompare the MSI file is extracted to a directory in

      %USERPROFILE%\Local Settings\Application Data\Downloaded Installations\UltraCompare

      Copy this path into address bar of Windows Explorer and hit key RETURN to open this directory. %USERPROFILE% references the value of environment variable USERPROFILE. The path part Local Settings\Application Data can be different on your computer depending on language of Windows.

      You should see in this directory one or more directories with a unique identifier string like {E01D11FC-3852-46DA-8F5B-01345EC9066B}. If there are multiple directories, look on the date of the directories. The directory with the latest date is the directory containing the MSI file of last installed UltraCompare. In this directory there is UltraCompare.msi.

      You need an application that can extract files from an MSI file. My favorite packer tool WinRAR and my favorite file manager Total Commander with the MSI packer plugin support that. If you don't have such a tool, here is an alternate solution using msiexec on command line of Windows. Run the command

      msiexec /a "%USERPROFILE%\Local Settings\Application Data\Downloaded Installations\UltraCompare\{E01D11FC-3852-46DA-8F5B-01345EC9066B}\UltraCompare.msi" /qb TARGETDIR=C:\Temp\UC

      Of course the full path of UltraCompare.msi can be different on your computer depending on which version of UC you have installed and which language your Windows has.

      This command just extracts all program files of UltraCompare to directory C:\Temp\UC. The directory C:\Temp\UC must not already exist. It is created automatically by msiexec. You should have C:\Temp\UC\program files\IDM Computer Solutions\UltraCompare\UC_ShellExt.dll

      Copy the file UC_ShellExt.dll into the program files directory of UltraCompare. And check the NTFS permissions of this file in the UltraCompare directory. It should have the same permissions as all other files in the directory.

      Second, the 32-bit version of the DLL must be registered. I can't give you the exact registry values because I'm not able to test them on a Windows 7 x64. But copy following lines into a new ASCII text file, save the file for example with UC32ShellExt.reg and then double click on this file to import the data to your registry.

      REGEDIT4

      [HKEY_CURRENT_USER\Software\Classes\
      Wow6432Node\*]

      [HKEY_CURRENT_USER\Software\Classes\
      Wow6432Node\*\shellex]

      [HKEY_CURRENT_USER\Software\Classes\
      Wow6432Node\*\shellex\ContextMenuHandlers\UltraCompare]
      @="{C3B42C03-C1B7-4c1a-B384-BBAE19646333}"

      [HKEY_CURRENT_USER\Software\Classes\
      Wow6432Node\CLSID\{C3B42C03-C1B7-4c1a-B384-BBAE19646333}]

      [HKEY_CURRENT_USER\Software\Classes\
      Wow6432Node\CLSID\{C3B42C03-C1B7-4c1a-B384-BBAE19646333}\InProcServer32]
      @="
      C:\\Program Files (x86)\\IDM Computer Solutions\\UltraCompare\\UC_ShellExt.dll"
      "ThreadingModel"="Apartment"

      [HKEY_CURRENT_USER\Software\Classes\
      Wow6432Node\Directory\shellex\ContextMenuHandlers\UltraCompare]
      @="{C3B42C03-C1B7-4c1a-B384-BBAE19646333}



      Please note that you probably need to adapt the path C:\\Program Files (x86)\\IDM Computer Solutions\\UltraCompare by the path of the UltraCompare program files directory containing now file UC_ShellExt.dll.

      You maybe need to log off / log on (or restart Windows) to see the UltraCompare shell extension in context menu for all files and directories.

      3
      NewbieNewbie
      3

        Mar 05, 2012#3

        Thank You very much! Succesfully done!

        I used slightly different steps:
        • For current UC, there is no unofficial localization pack for my language, so I use 7.20.0.1007.
        • Unpack with WinRAR.
        • The .reg file above don't work for me (probably because of older version of UC), so I run command line (as Administrator) in UC's program directory and use command: regsvr32.exe UC_ShellExtE.dll, and got Succesfully registered message.
        There was no need for restart PC, just the file manager.

        :D :wink:

        6,602548
        Grand MasterGrand Master
        6,602548

          Mar 06, 2012#4

          Yes, there is a difference between shell extension of UC v7.20 and UC v8.20.

          UC_ShellExtE.dll of UC v7.20 registers itself on Windows x86 (32-bit) with

          [HKEY_CURRENT_USER\SOFTWARE\Classes\*\shellex\ContextMenuHandlers\UltraCompare]
          @="
          {D39D9960-20CA-40CE-A802-8C64817BE518}"

          [HKEY_CURRENT_USER\SOFTWARE\Classes\CLSID\
          {D39D9960-20CA-40CE-A802-8C64817BE518}]
          @="UCShellExt Class"

          [HKEY_CURRENT_USER\SOFTWARE\Classes\CLSID\
          {D39D9960-20CA-40CE-A802-8C64817BE518}\InprocServer32]
          @="
          C:\\Program Files\\IDM Computer Solutions\\UltraCompare\\UC_ShellExtE.dll"
          "ThreadingModel"="Apartment"

          [HKEY_CURRENT_USER\SOFTWARE\Classes\CLSID\
          {D39D9960-20CA-40CE-A802-8C64817BE518}\Params]
          @="Run Data"
          "DataParam1"=""
          "DataParam2"=""
          "DataParam3"=""

          [HKEY_CURRENT_USER\SOFTWARE\Classes\CLSID\
          {D39D9960-20CA-40CE-A802-8C64817BE518}\ProgID]
          @="UC_ShellExt.UCShellExt.1"

          [HKEY_CURRENT_USER\SOFTWARE\Classes\CLSID\
          {D39D9960-20CA-40CE-A802-8C64817BE518}\Programmable]

          [HKEY_CURRENT_USER\SOFTWARE\Classes\CLSID\
          {D39D9960-20CA-40CE-A802-8C64817BE518}\TypeLib]
          @="{D3822C3D-45A0-44E9-91CA-019F9565D282}"

          [HKEY_CURRENT_USER\SOFTWARE\Classes\CLSID\
          {D39D9960-20CA-40CE-A802-8C64817BE518}\VersionIndependentProgID]
          @="UC_ShellExt.UCShellExt"

          [HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\shellex\ContextMenuHandlers\UltraCompare]
          @="
          {D39D9960-20CA-40CE-A802-8C64817BE518}"

          [HKEY_CURRENT_USER\SOFTWARE\Classes\UC_ShellExt.UCShellExt\CLSID]
          @="
          {D39D9960-20CA-40CE-A802-8C64817BE518}"

          [HKEY_CURRENT_USER\SOFTWARE\Classes\UC_ShellExt.UCShellExt\CurVer]
          @="UC_ShellExt.UCShellExt.1"

          [HKEY_CURRENT_USER\SOFTWARE\Classes\UC_ShellExt.UCShellExt.1]
          @="UCShellExt Class"

          [HKEY_CURRENT_USER\SOFTWARE\Classes\UC_ShellExt.UCShellExt.1\CLSID]
          @="
          {D39D9960-20CA-40CE-A802-8C64817BE518}"


          I would be interested in the exact registry path used by regsvr32.exe for the 32-bit shell extension of UC v7.20.

          Could you start Regedit, search with Ctrl+F for {D39D9960-20CA-40CE-A802-8C64817BE518} and post here the registry path.

          3
          NewbieNewbie
          3

            Mar 07, 2012#5

            For HKCU, I found it here:

            [HKEY_CURRENT_USER\Software\Classes\CLSID\{D39D9960-20CA-40CE-A802-8C64817BE518}]
            @="UCShellExt Class"

            [HKEY_CURRENT_USER\Software\Classes\CLSID\{D39D9960-20CA-40CE-A802-8C64817BE518}\InprocServer32]
            @="C:\\Program Files (x86)\\UltraCompare\\UC_ShellExt07x64.dll"
            "ThreadingModel"="Apartment"

            [HKEY_CURRENT_USER\Software\Classes\CLSID\{D39D9960-20CA-40CE-A802-8C64817BE518}\Params]
            @="Run Data"
            "DataParam1"=""
            "DataParam2"=""
            "DataParam3"=""

            [HKEY_CURRENT_USER\Software\Classes\CLSID\{D39D9960-20CA-40CE-A802-8C64817BE518}\ProgID]
            @="UC_ShellExt.UCShellExt.1"

            [HKEY_CURRENT_USER\Software\Classes\CLSID\{D39D9960-20CA-40CE-A802-8C64817BE518}\Programmable]

            [HKEY_CURRENT_USER\Software\Classes\CLSID\{D39D9960-20CA-40CE-A802-8C64817BE518}\TypeLib]
            @="{D3822C3D-45A0-44E9-91CA-019F9565D282}"

            [HKEY_CURRENT_USER\Software\Classes\CLSID\{D39D9960-20CA-40CE-A802-8C64817BE518}\VersionIndependentProgID]
            @="UC_ShellExt.UCShellExt"

            [HKEY_CURRENT_USER\Software\Classes\UC_ShellExt.UCShellExt]
            @="UCShellExt Class"

            [HKEY_CURRENT_USER\Software\Classes\UC_ShellExt.UCShellExt\CLSID]
            @="{D39D9960-20CA-40CE-A802-8C64817BE518}"

            [HKEY_CURRENT_USER\Software\Classes\UC_ShellExt.UCShellExt\CurVer]
            @="UC_ShellExt.UCShellExt.1"

            [HKEY_CURRENT_USER\Software\Classes\UC_ShellExt.UCShellExt.1]
            @="UCShellExt Class"

            [HKEY_CURRENT_USER\Software\Classes\UC_ShellExt.UCShellExt.1\CLSID]
            @="{D39D9960-20CA-40CE-A802-8C64817BE518}"



            [HKEY_CURRENT_USER\Software\Classes\Wow6432Node\CLSID\{D39D9960-20CA-40CE-A802-8C64817BE518}]

            [HKEY_CURRENT_USER\Software\Classes\Wow6432Node\CLSID\{D39D9960-20CA-40CE-A802-8C64817BE518}\Params]
            "DataParam1"=""
            "DataParam2"=""
            "DataParam3"=""


            (I don't have UC installed in default directory).

            6,602548
            Grand MasterGrand Master
            6,602548

              Mar 09, 2012#6

              Thanks. It is really interesting that just the registry path storing the files / directories to compare is created in Wow6432Node registry path.

                Jun 12, 2016#7

                There have been some changes regarding shell extension installation and registration with UltraCompare v16.00.0.27.
                • Installer of 32-bit and of 64-bit UltraCompare installs always both shell extension DLLs: UC_ShellExt.dll and UC_ShellExt64.dll
                • On 64-bit Windows always only 64-bit shell extension is registered by the installer of UltraCompare.
                • The 32-bit shell extension is registered by 32-bit UltraCompare additionally to 64-bit shell extension on
                  • opening Settings/Configuration - Shell Integration,
                  • unchecking the options
                    • Enable basic Explorer integration
                      and
                    • Enable advanced Explorer integration (manually load compare targets)
                  • clicking on button Apply,
                  • checking the two options again (or just first one) and
                  • closing the configuration dialog with button OK.
                • The 32-bit shell extension is never registered by 64-bit UltraCompare v16.00.0.27. So using the 32-bit shell extension with 64-bit UltraCompare still requires a manual registration by adding the registry keys and values as described below.
                • No shell extension registration is removed on uninstalling of 32-bit or 64-bit UltraCompare by the uninstaller independent on the used uninstall options.
                Here is a list of registry keys and values as added by English 32-bit UltraCompare on Windows 7 x64 on having first two shell integration options checked.

                [HKEY_CURRENT_USER\Software\Classes\*\shellex\ContextMenuHandlers\UltraCompare]
                @="{C3B42C03-C1B7-4c1a-B384-BBAE19646333}"

                [HKEY_CURRENT_USER\Software\Classes\Directory\shellex\ContextMenuHandlers\UltraCompare]
                @="{C3B42C03-C1B7-4c1a-B384-BBAE19646333}"

                [HKEY_CURRENT_USER\Software\Classes\CLSID\{C3B42C03-C1B7-4c1a-B384-BBAE19646333}\InProcServer32]
                @="C:\\Program Files (x86)\\IDM Computer Solutions\\UltraCompare\\UC_ShellExt64.dll"
                "ThreadingModel"="Apartment"

                [HKEY_CURRENT_USER\Software\IDM Computer Solutions\UltraCompare Pro]
                "IntegrateWithExplorer"=dword:00000003
                "ContextMenuText"="&UltraCompare"
                "IntegrateWithExplorerOverride"=dword:00000001

                [HKEY_CURRENT_USER\Software\IDM Computer Solutions\UltraCompare Pro\UltraCompare Professional\Settings]
                "RunShellExt"=dword:00000001
                "RunShellExtAdvanced"=dword:00000001

                [HKEY_CURRENT_USER\Software\Classes\Wow6432Node\CLSID\{C3B42C03-C1B7-4c1a-B384-BBAE19646333}\InProcServer32]
                @="C:\\Program Files (x86)\\IDM Computer Solutions\\UltraCompare\\UC_ShellExt.dll"
                "ThreadingModel"="Apartment"

                The key and values under Wow6432Node are not added by 64-bit UltraCompare and must be therefore manually added.

                ATTENTION:

                The path to UltraCompare depends by default on 32-bit or 64-bit UltraCompare installation - C:\Program Files (x86) versus C:\Program Files - and can be also completely different on having used the advanced installation options and having specified a different installation directory.

                PS: I have already reported all issues regarding registering and unregistering to IDM support by email.
                Best regards from an UC/UE/UES for Windows user from Austria