Hi,

I have a problem harvesting a type-library from an executable
file (a COM Server) with heat.exe, version 3.0.4513.

If I run heat (as normal-user in Vista) I get something a la:

  <Fragment>
    <DirectoryRef Id="Bin">
      <Component Id="file.exe" Guid="PUT-GUID-HERE">
        <File Id="file.exe" Name="file.exe" KeyPath="yes" 
Source="path\file.exe">
          <TypeLib Id="{A38C8060-4AD5-101B-B826-00DD01103DE1}" 
Description="Application 2.0 Type
Library" Language="0" MajorVersion="2" MinorVersion="0">
             <Interface Id="{055704B1-9E96-4B85-BF35-D7CC6F1A484C}" 
Name="IXmlImage"
ProxyStubClassId="{00020424-0000-0000-C000-000000000046}"
ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" />
              ...
          </TypeLib>
        </File>
      </Component>
    </DirectoryRef>
  </Fragment>

But it does not contain the class (coclass) from the type-library as expected,
i.e. I would expect a heat output (snippet) a la:

  <Fragment>
    <DirectoryRef Id="Bin">
      <Component Id="file.exe" Guid="PUT-GUID-HERE">
        <File Id="file.exe" Name="file.exe" KeyPath="yes" 
Source="path\file.exe">
          <TypeLib Id="{A38C8060-4AD5-101B-B826-00DD01103DE1}" 
Description="Application 2.0 Type
Library" Language="0" MajorVersion="2" MinorVersion="0">
            <Class Id="{5114CCE2-F6EF-11D2-BE13-0060946EFE7C}" 
Context="InprocServer32"
Description="Application Class" ThreadingModel="both">
              <ProgId Id="File.Application" Description="Application Class" />
              <ProgId Id="File.Application.1" Description="Application Class" />
            </Class>
            <Interface Id="{055704B1-9E96-4B85-BF35-D7CC6F1A484C}" 
Name="IXmlImage"
ProxyStubClassId="{00020424-0000-0000-C000-000000000046}"
ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" />
            ...
          </TypeLib>
        </File>
      </Component>
    </DirectoryRef>
  </Fragment>

If I open the generated executable in the object browser of Visual Studio 2008,
I clearly see that it contains a class (coclass) object in the type-library.

Can you explain why I don't get the class harvested when using heat?

Furthermore if I run heat (in an administrative command prompt in Vista) the 
output
is a lot different (seemingly the raw registry values), illustrates as:

  <Fragment>
    <DirectoryRef Id="Bin">
      <Component Id="file.exe" Guid="PUT-GUID-HERE">
        <File Id="file.exe" Name="file.exe" KeyPath="yes" 
Source="path\Bin\file.exe" />
        <RegistryValue Root="HKLM"
Key="Software\Classes\Interface\{055704B1-9E96-4B85-BF35-D7CC6F1A484C}\ProxyStubClsid"
Value="{00020424-0000-0000-C000-000000000046}" Type="string" Action="write" />
        <RegistryValue Root="HKLM"
Key="Software\Classes\Interface\{055704B1-9E96-4B85-BF35-D7CC6F1A484C}\ProxyStubClsid32"
Value="{00020424-0000-0000-C000-000000000046}" Type="string" Action="write" />
        <RegistryValue Root="HKLM"
Key="Software\Classes\Interface\{055704B1-9E96-4B85-BF35-D7CC6F1A484C}\TypeLib"
Value="{A38C8060-4AD5-101B-B826-00DD01103DE1}" Type="string" Action="write" />
        <RegistryValue Root="HKLM"
Key="Software\Classes\Interface\{055704B1-9E96-4B85-BF35-D7CC6F1A484C}\TypeLib"
Name="Version" Value="2.0" Type="string" Action="write" />
        <RegistryValue Root="HKLM"
Key="Software\Classes\Interface\{055704B1-9E96-4B85-BF35-D7CC6F1A484C}" 
Value="IXmlImage"
Type="string" Action="write" />
        ...
        <RegistryValue Root="HKLM"
Key="Software\Classes\TypeLib\{A38C8060-4AD5-101B-B826-00DD01103DE1}\2.0\0\win32"
Value="[#file.exe]" Type="string" Action="write" />
        <RegistryValue Root="HKLM"
Key="Software\Classes\TypeLib\{A38C8060-4AD5-101B-B826-00DD01103DE1}\2.0"
Value="Application 1.0 Type Library" Type="string" Action="write" />
      </Component>
    </DirectoryRef>
  </Fragment>

Why is there this different when running heat as normal-user and as 
administrator? I can
understand if it harvest more data (more it actually have permissions to do 
so), but I don't
understand why the output is layout differently - raw RegistryValue elements 
versus TypeLib
element.

Thank you in advance for all replies,
 /Michael


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to