locked
DCOMCNGF and 32 bit COM component running on a Windows 7 x64 machine RRS feed

  • Question

  •  

    Hi all,

     

    During some test in order to check the behavior of some old 32 bit COM components on a 64 bit Windows 7, I note a very strange thing: they were not available from the DCOMCNFG utility (Dcomcnfg.exe). This problem does not allow to customize the security settings for these application.

     

    Performing the same test on a Windows server 2008 32machine the DCOMCNFG utility shows the following warning message regarding my component: “The CLSID {xxxxxxxx-xxx..}, item “MyCmpPath\MyCmp.exe” and title MyComponent Class has the named value AppID, but it is not recorded under the path \\HKCR\AppId. Do you wish to record it?”

     

    I choose No and once the GUI stops to raise errors like the one described above, I did not find my component in the list view, so I made a check on the registries on both the machines for the ApplId guid of my components with no result.

     

    In a next test I answer yes to the dcomcnfg utility request and then my component appears in the list view allowing me to configure every setting.

     

    Now the answer is: why the dcomcnfg utility on windows 7 x64 behaves in a different way and does not raise the same message?

     

    Also note that trying to use these components from a client application on Windows 7 x64 they are successfully started by COM and run with no error. Looking at the Windows registry they seem to be correctly registered, the only missing thing is the applicationid entry under the path \\HKCR\AppId.

     

    My components are developed in MS VS 6.0 sp5 with the ATL framework and contain the registry resource about the ApplicationID:

    HKCR

    {

              NoRemove AppID

              {

                       {%UUID_ModuleLib%} = s '%ModuleName%'

                       '%ModuleName%.EXE'

                       {

                                 val AppID = s {%UUID_Application%}

                       }

              }

    }

     

    Looking at these articles regarding the DCOMCNFG utility and the AppID\.exe mapping say that the registration Is managed by the tool itself:

     

    http://support.microsoft.com/kb/246054/f#top

    http://blogs.msdn.com/b/jigarme/archive/2007/10/09/what-is-appid.aspx

     

    Does anyone encounter a similar problem?

     

    Thanks for your help!

     

    Tuesday, July 5, 2011 7:17 PM

All replies