Your CAs are all deferred so there is a very small subset of properties
you can get with MsiGetProperty.  Parameters are passed to deferred
custom actions in a property called CustomActionData.  To set
CustomActionData, you have to use another custom action to set a
property with the same name as the deferred custom action to a string
with the value(s) you want to pass to the custom action.  If you have
multiple data items you need to pass, you will need to pass them like a
command line that your CA code will parse


<Property Id="CA_Arguments2" Value="1" />
<!-- This CA sets a property that matches the name of the CA to which we
want to
     pass data (CA2).  Here we are setting the property with a switch
and an
     argument/value pair -->
<CustomAction Id="SetCustomActionDataForCA2" Return="check"
   Property="CA2"       Value="/switch1  /arg2=value2" />

<!-- CAFunction2 will get the CA2 property by using "CustomActionData"
in the
     MsiGetProperty() call and parse the returned string like a command
line
     to retrieve the two arguments -->
<CustomAction Id="CA2" Execute="deferred" Return="check"
   BinaryKey="mycustom.dll" DllEntry="CAFunction2"
   HideTarget="no"/>

<InstallExecuteSequence>
   <Custom Action="SetCustomActionDataForCA2" Before="CA2" />
   <Custom Action="CA2" After="InstallInitialize" />  
</InstallExecuteSequence>

Then in CAFunction2() retrieve CustomActionData with:
 MsiGetProperty (hInstall, L"CustomActionData", szActionData,
&dwActionData);

CAFunction2 will have to parse szActionData like a commandline to
retrieve the arguments.




> > <Custom Action="CA_SetProperty2" After="SomeOtherCA">< somecondition
> >> </Custom>
> > <Custom Action="CA2" After="CA_SetProperty2">< somecondition
> ></Custom>
> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On Behalf Of 
> Pallavi Patrutkar
> Sent: Wednesday, November 08, 2006 6:01 AM
> To: wix-users@lists.sourceforge.net
> Cc: Rob Hamflett
> Subject: Re: [WiX-users] Property name to be used in MsiGetProperty
> 
> I wrote the code according to the sample given in online MSDN doc.
> 
> So, you have to call MsiGetProperty() method twice.
> In 1st call, you get the length of the actual value, passed as a 4th
> parameter of MsiGetProperty() and return value comes as 
> ERROR_MORE_DATA
> which is correct according to doc.
> In 2nd call, you have to pass this length as 4th parameter and for 3rd
> parameter, construct a string array with the size as above length +1.
> This call returns ERROR_SUCCESS, which is also according to the doc.
> 
> So, I am wondering whether I am using the correct string as a 2nd
> parameter to MsiGetProperty() or not.
> 
> Can you tell me if there is any problem in this call as I 
> have mentioned
> in my previous email?
> 
> Regards,
> Pallavi.
> 
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Rob
> Hamflett
> Sent: Wednesday, November 08, 2006 4:17 PM
> To: wix-users@lists.sourceforge.net
> Subject: Re: [WiX-users] Property name to be used in MsiGetProperty
> 
> Ah, OK.  It just wasn't clear from your first post.  What's the return
> value for MsiGetProperty?
> 
> Rob
> 
> Pallavi Patrutkar wrote:
> > Hi,
> > 
> > I have a customaction and property as defined below in WIX file
> > 
> > 
> > 
> > <Property Id="CA_Arguments1" Value="1" />
> > <CustomAction Id=" CA_SetProperty1" Return="check"
> > Property="CA_Arguments1"    Value="<somecommand1>" />
> > <CustomAction Id="CA1" Execute="deferred" Return="check"
> > BinaryKey="mycustom.dll" DllEntry="CAFunction1" HideTarget="no"/>
> >                     
> > <Property Id="CA_Arguments2" Value="1" />
> > <CustomAction Id=" CA_SetProperty2" Return="check"
> > Property="CA_Arguments2"    Value="<somecommand2>" />
> > <CustomAction Id="CA2" Execute="deferred" Return="check"
> > BinaryKey="mycustom.dll" DllEntry="CAFunction2"
> > HideTarget="no"/>
> > 
> > 
> > <Custom Action="CA_SetProperty1" After=" SomeOtherCA">< 
> somecondition
> >> </Custom>
> > <Custom Action="CA1" 
> After="CA_SetProperty1"><somecondition></Custom>
> > <Custom Action="CA_SetProperty2" After="SomeOtherCA">< somecondition
> >> </Custom>
> > <Custom Action="CA2" After="CA_SetProperty2">< somecondition
> ></Custom>
> > -----------------------------------
> > I am calling method in C++ source file as below - 
> > 
> > MsiGetProperty (hInstall, L"CA_Arguments1", szActionData,
> > &dwActionData);
> > MsiGetProperty (hInstall, L"CA_Arguments2", szActionData,
> > &dwActionData);
> > 
> > But, I am getting dwActionData value as zero. And I nowhere 
> got in any
> > documentation that which string from the above WIX code 
> should be used
> > as 2nd argument for the above method. So, I am just 
> wondering whether
> I
> > am using correct string or not.
> > 
> > Please help.
> > 
> > Regards,
> > Pallavi.
> > 
> > 
> > 
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] On Behalf Of Rob
> > Hamflett
> > Sent: Wednesday, November 08, 2006 2:33 PM
> > To: wix-users@lists.sourceforge.net
> > Subject: Re: [WiX-users] Property name to be used in MsiGetProperty
> > 
> > How are you passing a custom value to your DLL?  I thought that you
> > could only receive a handle to 
> > the MSI package.  Are you sure the property name in the DLL is
> correct?
> > 
> > Rob
> > 
> > Pallavi Patrutkar wrote:
> >> Hello,
> >>
> >>  
> >>
> >> I am trying to pass a property to a method in a DLL. But I am not 
> >> getting the actual property value in my DLL through MsiGetProperty.
> >>
> >> It returns the length of parameter as zero. But still 
> method returns 
> >> successfully.
> >>
> >> Can you tell me exactly which string from WXS file should I pass to
> > this 
> >> method as a 2^nd parameter to get the correct property value?
> >>
> >>  
> >>
> >> Thank you,
> >>
> >>  
> >>
> >> Regards,
> >>
> >> Pallavi.
> >>
> >>
> >>
> >
> --------------------------------------------------------------
> ----------
> >>
> >
> --------------------------------------------------------------
> ----------
> > -
> >> Using Tomcat but need to do more? Need to support web services,
> > security?
> >> Get stuff done quickly with pre-integrated technology to make your
> job
> > easier
> >> Download IBM WebSphere Application Server v.1.0.1 based on Apache
> > Geronimo
> >
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&;
> dat=121642
> >>
> >>
> >
> --------------------------------------------------------------
> ----------
> >> _______________________________________________
> >> WiX-users mailing list
> >> WiX-users@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/wix-users
> > 
> > 
> >
> --------------------------------------------------------------
> ----------
> > -
> > Using Tomcat but need to do more? Need to support web services,
> > security?
> > Get stuff done quickly with pre-integrated technology to 
> make your job
> > easier
> > Download IBM WebSphere Application Server v.1.0.1 based on Apache
> > Geronimo
> >
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&;
> dat=121642
> > _______________________________________________
> > WiX-users mailing list
> > WiX-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wix-users
> > 
> >
> --------------------------------------------------------------
> ----------
> -
> > Using Tomcat but need to do more? Need to support web services,
> security?
> > Get stuff done quickly with pre-integrated technology to 
> make your job
> easier
> > Download IBM WebSphere Application Server v.1.0.1 based on Apache
> Geronimo
> >
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&;
> dat=121642
> 
> 
> --------------------------------------------------------------
> ----------
> -
> Using Tomcat but need to do more? Need to support web services,
> security?
> Get stuff done quickly with pre-integrated technology to make your job
> easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache
> Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&;
> dat=121642
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
> 
> --------------------------------------------------------------
> -----------
> Using Tomcat but need to do more? Need to support web 
> services, security?
> Get stuff done quickly with pre-integrated technology to make 
> your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on 
> Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&;
> dat=121642
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
> 

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to