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
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users