Some more fixups towards the MsiShortcutProperty table

Change-Id: I961a2c05c175512ee1fb4b0f11d0da1d5eae1c71
This commit is contained in:
Fridrich Štrba
2013-07-24 16:29:56 +02:00
parent fbe28de6fb
commit 7137605eef
3 changed files with 28 additions and 29 deletions

View File

@@ -296,6 +296,10 @@ MsiFileHash HashPart2 N Size of file in bytes (long integer).
MsiFileHash HashPart3 N Size of file in bytes (long integer).
MsiFileHash HashPart4 N Size of file in bytes (long integer).
MsiFileHash Options N 0 32767 Various options and attributes for this hash.
MsiShortcutProperty MsiShortcutProperty N Identifier Unique identifier for this row of the MsiShortcutProperty table
MsiShortcutProperty Shortcut_ N Identifier A key into the Shortcut table that identifies the shortcut having a property set
MsiShortcutProperty PropertyKey N Formatted A string value that provides information for the PROPERTYKEY structure
MsiShortcutProperty PropVariantValue N Formatted A string value that provides information for the PROPVARIANT structure.
ODBCAttribute Attribute N Text Name of ODBC driver attribute
ODBCAttribute Driver_ N ODBCDriver 1 Identifier Reference to ODBC driver in ODBCDriver table
ODBCAttribute Value Y Text Value for ODBC driver attribute

View File

@@ -1392,7 +1392,7 @@ sub run {
installer::windows::upgrade::create_upgrade_table($newidtdir, $allvariableshashref);
installer::windows::msishortcutproperty::create_msishortcutproperty_table($folderitempropertiesinproductlanguageresolvedarrayref, $folderitemsinproductlanguageresolvedarrayref, $newidtdir);
installer::windows::msishortcutproperty::create_msishortcutproperty_table($folderitempropertiesinproductarrayref, $folderitemsinproductlanguageresolvedarrayref, $newidtdir);
if (( ! $installer::globals::languagepack ) && ( ! $installer::globals::helppack )) # the following tables not for language packs or help packs
{

View File

@@ -109,39 +109,34 @@ sub create_msishortcutproperty_table
{
my ($folderitempropertiesref, $folderitemsref, $basedir) = @_;
for ( my $m = 0; $m <= $#{$languagesarrayref}; $m++ )
my @msishortcutpropertytable = ();
installer::windows::idtglobal::write_idt_header(\@msishortcutpropertytable, "msishortcutproperty");
# The entries defined in scp as FolderItemProperties
for ( my $j = 0; $j <= $#{$folderitempropertiesref}; $j++ )
{
my @msishortcutpropertytable = ();
my $onelink = ${$folderitempropertiesref}[$j];
my %msishortcutproperty = ();
installer::windows::idtglobal::write_idt_header(\@msishortcutpropertytable, "msishortcutproperty");
$msishortcutproperty{'MsiShortcutProperty'} = get_msishortcutproperty_identifier($onelink);
$msishortcutproperty{'Shortcut_'} = get_msishorcutproperty_shortcut($onelink, $folderitemsref);
$msishortcutproperty{'PropertyKey'} = get_msishortcutproperty_propertykey($onelink);
$msishortcutproperty{'PropVariantValue'} = get_msishortcutproperty_propvariantvalue($onelink);
# The entries defined in scp as FolderItemProperties
# These shortcuts will fill the icons table.
my $oneline = $msishortcutproperty{'MsiShortcutProperty'} . "\t" . $msishortcutproperty{'Shortcut_'} . "\t"
. $msishortcutproperty{'PropertyKey'} . "\t" . $msishortcutproperty{'PropVariantValue'} . "\n";
for ( my $j = 0; $j <= $#{$folderitempropertiesref}; $j++ )
{
my $onelink = ${$folderitempropertiesref}[$j];
my %msishortcutproperty = ();
$msishortcutproperty{'MsiShortcutProperty'} = get_msishortcutproperty_identifier($onelink);
$msishortcutproperty{'Shortcut_'} = get_msishorcutproperty_shortcut($onelink, $folderitemsref);
$msishortcutproperty{'PropertyKey'} = get_msishortcutproperty_propertykey($onelink);
$msishortcutproperty{'PropVariantValue'} = get_msishortcutproperty_propvariantvalue($onelink);
my $oneline = $msishortcutproperty{'MsiShortcutProperty'} . "\t" . $msishortcutproperty{'Shortcut_'} . "\t"
. $msishortcutproperty{'PropertyKey'} . "\t" . $msishortcutproperty{'PropVariantValue'} . "\n";
push(@msishortcutpropertytable, $oneline);
}
# Saving the file
my $msishortcutpropertytablename = $basedir . $installer::globals::separator . "MsiShortcutProperty.idt" . "." . $onelanguage;
installer::files::save_file($msishortcutpropertytablename ,\@msishortcutpropertytable);
my $infoline = "Created idt file: $msishortcutpropertytablename\n";
push(@installer::globals::logfileinfo, $infoline);
push(@msishortcutpropertytable, $oneline);
}
# Saving the file
my $msishortcutpropertytablename = $basedir . $installer::globals::separator . "MsiShorP.idt";
installer::files::save_file($msishortcutpropertytablename ,\@msishortcutpropertytable);
my $infoline = "Created idt file: $msishortcutpropertytablename\n";
push(@installer::globals::logfileinfo, $infoline);
}