Hi,

        regsvr32.exe calls the dllselfregister function in a com dll
which usually will read from a reg resource in the dll and write the
registry keys needed with all the correct com information. Some people
have been known to modify this function to do other things along with
com registration.

When you use heat on a com dll it works out what the correct registry
keys to write are and places these into the installer.

You should use HEAT to gather this information.

See here for why...
http://msdn.microsoft.com/en-us/library/bb204770(VS.85).aspx#no_selfreg
http://msdn.microsoft.com/en-us/library/aa371608.aspx


Also you seem to be asking lots of questions that are easily found by
searching the the list archives here...
http://n2.nabble.com/wix-users-f687560.html


Dave W.

-----Original Message-----
From: rahul.ekb...@sungard.com [mailto:rahul.ekb...@sungard.com] 
Sent: 16 June 2009 09:22
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Needs to understand how wix register the .dll or
.ocx?

Hi,

I want to understand how wix registers the components in registry.

When I run the heat .exe for files  it generates code like. 

<Component Id="cmpD84773041B2997E366AE89770EECD1F5"
Directory="dir002788116533422330D6397E8731D012"
Guid="{56DA410A-4B54-4E60-8996-56E4E6D4CD87}" NeverOverwrite="yes"
Permanent="yes">

                <File Id="fil0A16D5712A97B1C9AD41B8BE60E4DC48"
KeyPath="yes" Source="ALMEngine\AlgFormulaEditor.dll">

                    <TypeLib Id="{6480C539-3A84-4993-ACD5-1452729D4C68}"
Description="AlgFormulaEditor 1.0 Type Library"
HelpDirectory="dir002788116533422330D6397E8731D012" Language="0"
MajorVersion="1" MinorVersion="0">

                        <Class
Id="{98E7AA54-DE51-4E4B-95F1-93BA65C709D4}" Context="InprocServer32"
Description="AlgFormulaEdit Class" ThreadingModel="apartment"
Version="1.0" Insertable="yes" Programmable="yes" Control="yes">

                            <ProgId
Id="AlgFormulaEditor.AlgFormulaEdit.1" Description="AlgFormulaEdit
Class">

                                <ProgId
Id="AlgFormulaEditor.AlgFormulaEdit" Description="AlgFormulaEdit Class"
/>

                            </ProgId>

                        </Class>

                        <Class
Id="{AD0009B9-FB04-47A9-8727-6E5582485E16}" Context="InprocServer32"
Description="FormulaArrayEdit Class" ThreadingModel="apartment"
Version="1.0" Insertable="yes" Programmable="yes" Control="yes">

                            <ProgId
Id="AlgFormulaEditor.FormulaArrayEdit.1" Description="FormulaArrayEdit
Class">

                                <ProgId
Id="AlgFormulaEditor.FormulaArrayEdit" Description="FormulaArrayEdit
Class" />

                            </ProgId>

                        </Class>

                    </TypeLib>

                </File>

                <RegistryValue Root="HKCR"
Key="CLSID\{98E7AA54-DE51-4E4B-95F1-93BA65C709D4}\MiscStatus\1"
Value="131473" Type="string" Action="write" />

                <RegistryValue Root="HKCR"
Key="CLSID\{98E7AA54-DE51-4E4B-95F1-93BA65C709D4}\MiscStatus" Value="0"
Type="string" Action="write" />

                <RegistryValue Root="HKCR"
Key="CLSID\{98E7AA54-DE51-4E4B-95F1-93BA65C709D4}\ToolboxBitmap32"
Value="[#fil0A16D5712A97B1C9AD41B8BE60E4DC48], 102" Type="string"
Action="write" />

                <RegistryValue Root="HKCR"
Key="CLSID\{AD0009B9-FB04-47A9-8727-6E5582485E16}\MiscStatus\1"
Value="131473" Type="string" Action="write" />

                <RegistryValue Root="HKCR"
Key="CLSID\{AD0009B9-FB04-47A9-8727-6E5582485E16}\MiscStatus" Value="0"
Type="string" Action="write" />

                <RegistryValue Root="HKCR"
Key="CLSID\{AD0009B9-FB04-47A9-8727-6E5582485E16}\ToolboxBitmap32"
Value="[#fil0A16D5712A97B1C9AD41B8BE60E4DC48], 105" Type="string"
Action="write" />

                <RegistryValue Root="HKCR" Key="Interface" Value=""
Type="string" Action="write" />

            </Component>

 

I want to understand how this code registers the component.

 

How it is different from using regsvr32.exe to register the component?

 

NeverOverwrite="yes" Permanent="yes" are these are the right attributes
if I don't want to remove/unregister the component.

 

 

 

Thanks,

Rahul Ekbote

Senior Software Engineer * SunGard * ALM * Bacware * 

------------------------------------------------------------------------
------
Crystal Reports - New Free Runtime and 30 Day Trial Check out the new
simplified licensing option that enables unlimited royalty-free
distribution of the report engine for externally facing server and web
deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

SDL PLC confidential, all rights reserved.
If you are not the intended recipient of this mail SDL requests and requires 
that you delete it without acting upon or copying any of its contents, and we 
further request that you advise us.
SDL PLC is a public limited company registered in England and Wales.  
Registered number: 02675207.  
Registered address: Globe House, Clivemont Road, Maidenhead, Berkshire SL6 7DY, 
UK.


------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to