I have a Wix
file where I am creating a Deferred Custom Action
. I have written a C#
program, which is, for now, looping over the CustomActionData
and printing the Key
and Values
. Consider the snippet given below:
<Binary Id="myAction" SourceFile="..\Type51CA\bin\Release\Type51CA.CA.dll" />
<CustomAction Id="CustomAction1" Property="CustomAction2" Value="SomePropertyOne=[INSTALLFOLDER];SomePropertyTwo=[IPADDRESS];" />
<CustomAction Id="CustomAction2" BinaryKey="myAction" DllEntry="MyCustomAction" Execute="deferred" Return="check" HideTarget="no" />
<InstallExecuteSequence>
<Custom Action="CustomAction1" Before="CustomAction2" />
<Custom Action="CustomAction2" Before="InstallFinalize" />
</InstallExecuteSequence>
I am setting the SomePropertyOne
and SomePropertyTwo
in CA Id="CustomAction1"
.
The following C# code can iterate over CustomActionData
session.Log("Begin MyCustomAction");
CustomActionData datas = session.CustomActionData;
foreach (KeyValuePair<String, String> data in datas)
{
session.Log(String.Format("Key = {0} Value = {1}\n", data.Key, data.Value));
}
Since I want to remove the dependency of .Net, I want to write the equivalent C# code in C++; using WcaGetProperty(L"CustomActionData",&caData)
didn't give me any result. In C++, how can I get the required value
of a corresponding Key
from CustomActionData
?