There are several parts to this issue, so I will try to be as clear as possible 
with each part.
 
PROBLEM SUMMARY:
The goal is to install an ActiveX component on a client system (it is strictly 
for OLE automation, no UI) and have some JavaScript create it and use methods 
on it.  It works just fine under Windows XP, but not under Vista.
 
FAILURE ANALYSIS:
It appears that the .msi package creates the registry keys for the ActiveX 
component with insufficient user privileges.  Specifically, if I open up 
RegEdit.EXE and right-click and choose "Permissions..." on any one of the 
registry keys created for the component, I see my exact user name from my 
company's network domain.  For example, "Paul McLaughlin 
(<MyCompanyName>\paulm)".  Any time I see my name specifically in the list like 
this, the control cannot be created from JavaScript under Vista using "new 
ActiveXObject()" as you will see below in the source.  Again, XP seems to be OK 
with this.
 
MANUAL FIX:
In order to get the component created in JavaScript under Vista, after install 
I have to manually remove the keys from the registry that the .msi created and 
manually add them again.  I do this by some exported Windows Registry .REG 
files that contain the exact same entries and I just double-click on them from 
Explorer to put them back.  After I do this, and then I right-click on any one 
of these registry keys in RegEdit.EXE, I do NOT see my name in the 
"Permissions..." dialog, but rather my LOCAL MACHINE's "Users" group.  For 
example, "Users (LowRiderDevVista\Users)".  When this is the case, the 
JavaScript is able to create an instance of the COM component and the 
JavaScript works!
 
Obviously, I want Windows Installer via WiX to register the component and have 
it all work under Vista as well as XP.
 
Here are my sources (partial):
 
WIX:
...
<File Id="AXM" Name="MSI_AXM.dll" DiskId="1" Source="MSI_AXM.dll" Vital="yes" > 
   <TypeLib Id="46A6400B-39E2-4C7F-8BCC-B701E43C6404" Language="0" 
MajorVersion="1" MinorVersion="0" Description="iShip, Inc. - ActiveXManager 1.0 
Type Library" HelpDirectory="INSTALLDIR">        <Class 
Id="4392B188-CBA7-4CA8-A24F-31B378B3F4B5" Context="InprocServer32" 
Programmable="yes" ThreadingModel="apartment" Description="MSI.AXM" >           
 <ProgId Id="MSI.AXM.1" >                <ProgId Id="MSI.AXM" />            
</ProgId>        </Class>        <Interface 
Id="068BEF68-2AD3-4E79-87FD-2870B7B8DFC7" Name="IAXM" 
ProxyStubClassId="00020424-0000-0000-C000-000000000046" 
ProxyStubClassId32="00020424-0000-0000-C000-000000000046" />    
</TypeLib></File>...
 
JavaScript from an .HTA web application file that is installed.
var oAXM = new ActiveXObject("MSI.AXM.1");  // Will throw() if it cannot be 
created.
oAXM.Test();
 
 
I have also tried setting the Package/InstallPrivileges attribute to "limited" 
to see if for some reason that helped, but it made no difference.  I do not see 
any other items in the WiX documentation that might suggest other privilege 
settings for Vista or install for that matter.
 
I am using WiX build 3.0.2925.
 
Thank you for any information about this issue you might have.
 
-Paul
 
_________________________________________________________________
Need to know the score, the latest news, or you need your HotmailĀ®-get your 
"fix".
http://www.msnmobilefix.com/Default.aspx
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to