Misha Koshelev
|
b489ed4485
|
msi: automation: SummaryInfo::Property, remove all specific instances to PIDs.
|
2007-06-05 10:58:30 +02:00 |
Misha Koshelev
|
8b2d0d3e34
|
msi: suminfo: Return ERROR_UNKNOWN_PROPERTY as native.
|
2007-06-05 10:57:56 +02:00 |
Misha Koshelev
|
b9ea25721b
|
msi/tests: suminfo: Add tests for MsiSummaryInfoGetProperty for unknown property values.
|
2007-06-05 10:57:50 +02:00 |
Misha Koshelev
|
0c503defcf
|
msi: automation: Fix SummaryInfo::Property get to conform to native.
|
2007-06-04 13:00:24 +02:00 |
Misha Koshelev
|
f2c10a530c
|
msi/tests: automation: Add tests for SummaryInfo::Property, get.
|
2007-06-04 12:59:43 +02:00 |
Misha Koshelev
|
68d4e65c5e
|
msi: automation: Database::SummaryInformation is a propget, not a method.
|
2007-06-04 12:59:20 +02:00 |
Misha Koshelev
|
1e6bcb028d
|
msi: automation: Remove redundant VariantClear(pVarResult).
|
2007-06-04 12:59:13 +02:00 |
Misha Koshelev
|
e7d25cb4fd
|
msi: msiserver.idl: Maintain spacing as spaces, not tabs.
|
2007-06-04 12:59:06 +02:00 |
Misha Koshelev
|
39ffa7d16f
|
msi: automation: Add missing operand for evaluation.
|
2007-06-04 12:59:00 +02:00 |
Misha Koshelev
|
f850364efa
|
msi: automation: Remove duplicate error messages on unknown dispid.
DISP_E_MEMBERNOTFOUND FIXME is already handled in AutomationObject_Invoke.
|
2007-06-04 12:58:53 +02:00 |
Andrew Talbot
|
1486d851da
|
msi: Constify some variables.
|
2007-06-01 12:51:14 +02:00 |
James Hawkins
|
f083b3c038
|
msi: Implement SummaryInfo::Property get.
|
2007-06-01 12:43:33 +02:00 |
James Hawkins
|
7a289624cf
|
msi: Implement Installer::OpenDatabase.
|
2007-06-01 12:43:17 +02:00 |
James Hawkins
|
60e95ee6e8
|
msi: Add handling for MsiBreak.
|
2007-06-01 12:42:16 +02:00 |
Alexander Nicolaysen Sørnes
|
115ead4c73
|
msi: Update Norwegian Bokmål resources.
|
2007-06-01 12:40:50 +02:00 |
James Hawkins
|
5b8641a5a4
|
msi: Implement the WriteEnvironmentStrings standard action.
|
2007-05-31 13:27:15 +02:00 |
James Hawkins
|
c2e91588e9
|
msi: Perform a forced reboot if a custom action returns ERROR_INSTALL_SUSPEND.
|
2007-05-30 11:49:16 +02:00 |
James Hawkins
|
b8e0b3c1c8
|
msi: Set the MsiNTProductType property.
|
2007-05-30 11:49:09 +02:00 |
James Hawkins
|
44649d2ff8
|
msi: Fall back to checking if the cab exists if the volume name doesn't match.
|
2007-05-30 11:48:51 +02:00 |
James Hawkins
|
1aa0082558
|
msi: Create the destination directory if it doesn't exist when duplicating files.
|
2007-05-30 11:48:40 +02:00 |
Francois Gouget
|
fa48cb042c
|
Assorted spelling fixes.
|
2007-05-29 13:47:18 +02:00 |
Francois Gouget
|
dbf7b7b398
|
msi/tests: Fix a signed/unsigned int mismatch.
|
2007-05-29 12:12:01 +02:00 |
Dmitry Timoshkov
|
3c9e7a7f33
|
wine: Switch to using 'long' for INT_PTR type for 64-bit compatibility.
|
2007-05-25 20:37:56 +02:00 |
James Hawkins
|
ea2c96c5df
|
msi: Add the ability to deformat the component's source.
|
2007-05-25 19:30:50 +02:00 |
James Hawkins
|
f5c2806ca1
|
msi: Remove a misleading ERR, as this fails if a file doesn't exist, which is common.
|
2007-05-25 19:30:42 +02:00 |
Michael Stefaniuc
|
7043b7baa4
|
msi: A signed 1-bit bitfield doesn't make much sense; use unsigned.
|
2007-05-24 11:36:10 +02:00 |
Misha Koshelev
|
864a7df10e
|
msi: automation: Append copyright notice.
|
2007-05-23 12:49:16 +02:00 |
Misha Koshelev
|
74de3e1754
|
msi: Make MsiEnumProducts enumerate products, not features.
|
2007-05-21 12:38:55 +02:00 |
Misha Koshelev
|
ea899e1d6f
|
msi/tests: automation: Test Installer::Products before and after InstallProduct, check product is not/is installed.
|
2007-05-21 12:38:55 +02:00 |
Misha Koshelev
|
74b2c18bae
|
msi/tests: automation: Installer::InstallProduct, remove a registry key set by Wine but not native.
|
2007-05-21 12:38:55 +02:00 |
Misha Koshelev
|
01460f6753
|
msi: automation: Implement StringList::_NewEnum.
|
2007-05-18 20:01:55 +02:00 |
Misha Koshelev
|
4ccdbc5845
|
msi: automation: Generalize list implementation.
Same structures and functions can be used for both StringList and RecordList.
|
2007-05-18 20:01:39 +02:00 |
Misha Koshelev
|
2521111bc7
|
msi/tests: automation: Add tests for StringList::_NewEnum.
|
2007-05-18 20:00:30 +02:00 |
Misha Koshelev
|
5ee995d90a
|
msi/tests: automation: Fix Installer_ProductInfo ok message to correctly state function.
|
2007-05-18 20:00:13 +02:00 |
Misha Koshelev
|
ee33e40542
|
msi/tests: automation: Change SUCCEEDED(hr) to more specific hr == S_OK.
|
2007-05-18 14:43:40 +02:00 |
Misha Koshelev
|
04505f7107
|
msi: script: Change all tabs to spaces to conform to msi formatting.
|
2007-05-18 14:43:28 +02:00 |
Misha Koshelev
|
937b643092
|
msi: automation: Change all tabs to spaces to conform to msi formatting.
|
2007-05-18 14:43:19 +02:00 |
Misha Koshelev
|
63ed9117c3
|
msi/tests: automation: Check for NULL source string before calling lstrcpyW.
|
2007-05-18 14:43:05 +02:00 |
Misha Koshelev
|
f1f687e646
|
msi/tests: automation: Change non-const LPCWSTR parameters to LPWSTR.
|
2007-05-18 14:42:57 +02:00 |
Misha Koshelev
|
8136bd4117
|
msi: automation: Implement Installer::ProductInfo.
|
2007-05-17 12:47:39 +02:00 |
Misha Koshelev
|
d800a082a8
|
msi: Return appropriate values for empty MsiProductInfo parameters.
|
2007-05-17 12:47:20 +02:00 |
Misha Koshelev
|
68bfb39767
|
msi/tests: Add test for empty MsiGetProductInfo parameters not referencing default registry values.
|
2007-05-17 12:45:16 +02:00 |
Misha Koshelev
|
2177e492e6
|
msi/tests: automation: Add tests for Installer::ProductInfo.
|
2007-05-16 14:58:19 +02:00 |
Misha Koshelev
|
0eaf8bc164
|
msi/tests: automation: Remove unnecessary if (SUCCEEDED(hr)) statements.
|
2007-05-16 14:58:07 +02:00 |
Misha Koshelev
|
187f856e46
|
msi: automation: Condense a few loops.
|
2007-05-16 14:58:00 +02:00 |
Francois Gouget
|
0acb5810bf
|
Assorted spelling fixes.
|
2007-05-15 18:09:16 +02:00 |
Misha Koshelev
|
23cfbe2ec8
|
msi: automation: Simplify counting products/related products.
|
2007-05-15 14:12:20 +02:00 |
Misha Koshelev
|
5f2e81e2a5
|
msi: automation: Installer::Products, verify HeapAlloc return value.
|
2007-05-15 14:11:45 +02:00 |
Misha Koshelev
|
536b49905b
|
msi: Make MsiEnumRelatedProducts enumerate registry value names, not subkeys.
|
2007-05-15 14:11:37 +02:00 |
Misha Koshelev
|
a6dfcf90f7
|
msi: automation: Implement Installer::RelatedProducts.
|
2007-05-15 14:10:58 +02:00 |
Misha Koshelev
|
7a9b218235
|
msi/tests: automation: Add tests for Installer::RelatedProducts.
|
2007-05-15 14:09:52 +02:00 |
Misha Koshelev
|
5b37ba6f04
|
msi: automation: Implement Installer::InstallProduct.
|
2007-05-15 14:09:42 +02:00 |
Misha Koshelev
|
b75b224822
|
msi/tests: automation: Add test for Installer::InstallProduct.
|
2007-05-15 14:06:47 +02:00 |
Misha Koshelev
|
18cab64b42
|
msi: automation: Implement Record::IntegerData.
|
2007-05-15 14:06:27 +02:00 |
Misha Koshelev
|
9d234fcb9f
|
msi: automation: Implement View::Modify.
|
2007-05-14 16:20:01 +02:00 |
Misha Koshelev
|
854ca51a5f
|
msi/tests: automation: Add test for View::Modify.
|
2007-05-14 16:19:24 +02:00 |
Misha Koshelev
|
5e16dbb3f3
|
msi/tests: automation: Add tests for Record::IntegerData.
|
2007-05-14 16:19:15 +02:00 |
Misha Koshelev
|
d2ad4e09ce
|
msi/tests: automation: Correct expected Record::StringData PROPERTYPUT return variant type.
|
2007-05-14 16:19:05 +02:00 |
Misha Koshelev
|
c0c6fe6341
|
msi: automation: Implement Record::FieldCount.
|
2007-05-14 16:17:22 +02:00 |
Misha Koshelev
|
aa9f4beb65
|
msi: automation: Return DISP_E_MEMBERNOTFOUND if flags are incorrect.
|
2007-05-14 16:16:54 +02:00 |
Misha Koshelev
|
6bb7c911f5
|
msi/tests: automation: Test invoking methods as properties & vice versa.
|
2007-05-14 16:15:51 +02:00 |
Misha Koshelev
|
7eb3db632e
|
msi: automation: Implement Installer::CreateRecord.
|
2007-05-14 16:15:40 +02:00 |
Misha Koshelev
|
075e1898bf
|
msi/tests: automation: Test for Installer::CreateRecord error.
|
2007-05-14 16:15:20 +02:00 |
Misha Koshelev
|
2d8c2ce6d6
|
msi: automation: Implement Session::EvaluateCondition.
|
2007-05-14 16:14:58 +02:00 |
Misha Koshelev
|
75222d7452
|
msi/tests: automation: Add tests for Session::EvaluateCondition.
|
2007-05-14 16:13:23 +02:00 |
Misha Koshelev
|
d74e643f8c
|
msi: automation: Implement Installer::RegistryValue.
|
2007-05-11 12:59:52 +02:00 |
Marcus Meissner
|
c904290336
|
msi/tests: Increase buffer size a bit.
Spotted by Coverity.
|
2007-05-11 11:45:36 +02:00 |
Francois Gouget
|
450ad214ec
|
msi/tests: Add missing '\n' to ok() calls.
|
2007-05-11 11:20:25 +02:00 |
James Hawkins
|
666cfd1c03
|
msi: Only check the volume label for every media after the first disk.
|
2007-05-11 11:20:18 +02:00 |
James Hawkins
|
0de574b258
|
msi: Deformat the key path before opening the key.
|
2007-05-10 14:12:57 +02:00 |
Paul Vriens
|
a543e60dc9
|
msi/tests: Properly cleanup after each test.
|
2007-05-10 12:14:14 +02:00 |
Misha Koshelev
|
2b7d8cb9d5
|
msi/tests: automation: Add more tests for Installer::RegistryValue.
Add test for a new error condition and tests for returning data from values of different registry value types.
|
2007-05-10 12:10:28 +02:00 |
James Hawkins
|
6eb7eadffa
|
msi: Check the volume name when changing media.
|
2007-05-09 12:07:01 +02:00 |
Misha Koshelev
|
d5c6c64bfc
|
msi: automation: Display an error on create_session failure.
|
2007-05-08 18:09:28 +02:00 |
Misha Koshelev
|
3909a499e0
|
msi: automation: Move VariantClears out of specific case statements when possible.
|
2007-05-08 18:09:20 +02:00 |
Misha Koshelev
|
891f7febca
|
msi: automation: Display errors on create_automation_object failure.
|
2007-05-08 12:45:07 +02:00 |
Misha Koshelev
|
3a424aca58
|
msi: automation: Clear all VT_BSTR variants returned by DispGetParam.
|
2007-05-08 12:36:44 +02:00 |
Misha Koshelev
|
ab2669a750
|
msi/tests: automation: Simplify ok_exception.
|
2007-05-08 12:34:59 +02:00 |
Misha Koshelev
|
87a46493cf
|
msi/tests: automation: Add test for Installer::RegistryValue.
|
2007-05-08 12:34:54 +02:00 |
Misha Koshelev
|
de8e566ebe
|
msi: automation: Output FIXMEs for unknown member names.
|
2007-05-08 12:31:05 +02:00 |
Misha Koshelev
|
05de3b03de
|
msi: automation: Implement Installer::Products and Installer::ProductState.
|
2007-05-08 12:30:26 +02:00 |
Misha Koshelev
|
4ba4936dee
|
msi/tests: automation: Add tests for Installer::Products and Installer::ProductState.
|
2007-05-08 12:26:44 +02:00 |
Misha Koshelev
|
715950bc7e
|
msi: automation: Generalize interface-specific data storage in AutomationObject.
This makes a more general framework for interface/object-specific data storage.
|
2007-05-08 12:24:56 +02:00 |
Misha Koshelev
|
757e617ec2
|
msi: automation: Use proper parameter names.
This fixes the parameter names to match native as they are required by
some scripting languages and by the exceptions that are thrown.
|
2007-05-08 12:23:14 +02:00 |
James Hawkins
|
770e49cd3c
|
msi: Add handling for the ReinstallMode control event.
|
2007-05-07 15:18:52 +02:00 |
James Hawkins
|
987c2c85e1
|
msi: Add stub handlers for the remaing standard actions that reference tables.
|
2007-05-07 15:18:47 +02:00 |
James Hawkins
|
e962b0a7df
|
msi: Remove debugging printf statements.
|
2007-05-07 15:14:13 +02:00 |
James Hawkins
|
12c33ab8aa
|
msi: Remove incorrect ERR as messages can be sent before the control is created.
|
2007-05-07 14:32:03 +02:00 |
James Hawkins
|
933fd8b879
|
msi: Set the text limit of the edit control if the limit is given.
|
2007-05-07 14:31:57 +02:00 |
James Hawkins
|
7fe3ba934c
|
msi: Add the ES_AUTOHSCROLL style to the edit control.
|
2007-05-07 14:30:38 +02:00 |
James Hawkins
|
7f4a4e161f
|
msi: Only allow valid styles in msi_dialog_get_style.
|
2007-05-07 14:30:29 +02:00 |
Misha Koshelev
|
c7e7f36e77
|
msi: automation: Implement Session::Installer.
|
2007-05-07 14:24:16 +02:00 |
Misha Koshelev
|
8ba0b3c7b9
|
msi: automation: Store parent Installer object in Session.
|
2007-05-07 14:23:37 +02:00 |
Misha Koshelev
|
4a5a90b04a
|
msi/tests: automation: Session::Installer conformance test.
|
2007-05-07 14:23:06 +02:00 |
Misha Koshelev
|
144ef422e0
|
msi: script: Discriminate properly between JScript and VBScript.
|
2007-05-07 14:22:59 +02:00 |
Misha Koshelev
|
d49b251db9
|
msi/tests: automation: Integrate test_createrecord_and_version properly.
|
2007-05-04 13:40:12 +02:00 |
Misha Koshelev
|
357f3db286
|
msi/tests: automation: Convert method names to Unicode on the fly to simplify adding new tests.
|
2007-05-04 13:40:02 +02:00 |
Misha Koshelev
|
1752f36413
|
msi/tests: automation: Free memory after string conversion.
|
2007-05-04 13:39:32 +02:00 |
Alexandre Julliard
|
69a88a9d40
|
Fix minor differences in the formatting of the license notices.
|
2007-05-04 12:08:15 +02:00 |
Misha Koshelev
|
eee455c24a
|
msi: Add JScript/VBScript support.
|
2007-05-01 18:34:17 +02:00 |
Misha Koshelev
|
d70c9e7690
|
msi: Added handlers for JScript/VBScript actions that call one script function.
|
2007-05-01 18:25:34 +02:00 |
Misha Koshelev
|
f217cacbc2
|
msi: automation: Expose Installer object.
|
2007-05-01 18:05:26 +02:00 |
Misha Koshelev
|
8026c070bc
|
msi: automation: Implement Installer::OpenPackage.
|
2007-05-01 18:05:25 +02:00 |
Misha Koshelev
|
e4d211a5e9
|
msi: automation: Implement a few functions from the Session object.
|
2007-05-01 18:05:25 +02:00 |
Misha Koshelev
|
df6d7977c8
|
msi: automation: Implement Database::OpenView.
|
2007-05-01 18:05:25 +02:00 |
Misha Koshelev
|
deabb2978e
|
msi: automation: Implement View::Execute, Fetch, and Close.
|
2007-05-01 18:05:25 +02:00 |
Misha Koshelev
|
ced0a775a4
|
msi: automation: Implement Record::StringData.
|
2007-05-01 18:05:25 +02:00 |
James Hawkins
|
1104dc088d
|
msi: Run the costing actions for both the UI and execute sequences.
|
2007-05-01 13:54:10 +02:00 |
James Hawkins
|
baad888766
|
msi: Reset the folder's resolved target before setting the target in CostFinalize.
|
2007-05-01 13:53:25 +02:00 |
James Hawkins
|
d8586e164f
|
msi: Add tests that show that costing is run in both the UI and Execute sequences.
|
2007-05-01 13:53:13 +02:00 |
Misha Koshelev
|
bb55acb577
|
msi: Expand IDL file to contain some OLE automation interface functions.
|
2007-05-01 11:58:45 +02:00 |
Misha Koshelev
|
26c16313d9
|
msi: Add base class for OLE automation objects.
|
2007-05-01 11:58:04 +02:00 |
Misha Koshelev
|
d1c4588625
|
msi: Merge OLE automation conformance tests.
|
2007-05-01 11:49:29 +02:00 |
Misha Koshelev
|
49bb20cf35
|
msi: Add OLE automation conformance test.
|
2007-04-30 13:57:50 +02:00 |
Francois Gouget
|
4017334ed4
|
msi/tests: Add missing '\n' to ok() call.
|
2007-04-30 12:34:58 +02:00 |
Marcus Meissner
|
ff40f3d2d3
|
msi: Do not mark the tables const.
|
2007-04-27 11:13:40 +02:00 |
Hans Leidekker
|
9eefc04f6b
|
msi: Add a stub implementation for MsiEnumProductsEx{A, W}.
|
2007-04-26 14:24:18 +02:00 |
James Hawkins
|
da55285acb
|
msi: Implement special handling for the _Streams table.
|
2007-04-25 12:44:37 +02:00 |
Rob Shearman
|
220f93db61
|
msi: Fix an off-by-one error when calculating the path and filename for the action data in the SelfRegModules action.
The backslash is in p[0], not p[1].
|
2007-04-25 11:49:34 +02:00 |
Rob Shearman
|
22cd120d5d
|
msi: Create the _Property table as a temporary table so that the properties aren't saved to the .msi file.
|
2007-04-25 11:49:29 +02:00 |
Rob Shearman
|
3323303e09
|
msi: Set rec to NULL after calling msiobj_release on it in msi_create_table so that we don't call msiobj_release on it again.
|
2007-04-25 11:49:26 +02:00 |
Rob Shearman
|
e474304160
|
msi: Add a non-persistent string instead of a persistent one if the table or row is non-persistent.
|
2007-04-24 12:25:41 +02:00 |
Rob Shearman
|
697d820eee
|
msi: All columns being temporary means the table is non-persistent.
The HOLD keyword just means that the non-persistent data in the table
should be kept around, not that the table is temporary.
|
2007-04-24 12:25:36 +02:00 |
Rob Shearman
|
44f7cb8858
|
msi: Add a persistent flag to tables.
Implement MSI_DatabaseIsTablePersistent.
|
2007-04-24 12:25:25 +02:00 |
Rob Shearman
|
a33cc3d859
|
msi: Don't add info to the _Columns table for non-persistent tables.
|
2007-04-24 12:24:59 +02:00 |
Rob Shearman
|
23379b3b5c
|
msi: Add support for adding temporary/non-persistent data to tables.
|
2007-04-24 12:24:48 +02:00 |
Rob Shearman
|
d8cd46ac47
|
msi: The HOLD keyword implies a temporary table, whereas database importing should lead to permanent tables, so remove the HOLD keyword.
|
2007-04-24 12:23:13 +02:00 |
Rob Shearman
|
338568886c
|
msi: Create the table directly in create_table instead of requiring it to be loaded after saving.
|
2007-04-24 12:23:02 +02:00 |
Rob Shearman
|
ba0507a178
|
msi: Move table creation to table.c.
|
2007-04-24 12:22:48 +02:00 |
Rob Shearman
|
3aa9a25cb3
|
msi: Store the column info in the MSITABLE structure.
Load the data on view creation for simplicity instead of view execution.
|
2007-04-24 12:22:14 +02:00 |
Rob Shearman
|
94d48238ff
|
msi: Remove the hash table for a column when one of its values is modified since it will now be invalid.
|
2007-04-24 12:21:40 +02:00 |
Rob Shearman
|
e261d602fb
|
msi: Cleanup unneeded string table functions.
Make string table functions that aren't used outside of string.c static.
|
2007-04-24 12:21:33 +02:00 |
Rob Shearman
|
37b11baaa3
|
msi: Move string loading and saving to string.c.
|
2007-04-24 12:20:19 +02:00 |
Rob Shearman
|
2e3289ca6c
|
msi: Add support for non-persistent strings.
Store the loaded refcount in the string table.
|
2007-04-24 12:18:04 +02:00 |
James Hawkins
|
7d3162e6be
|
msi: Abstract MSI_RecordSetStream.
|
2007-04-23 16:18:13 +02:00 |
James Hawkins
|
2b4bf44b79
|
msi: Add an internal MSI_ViewModify.
|
2007-04-23 16:18:03 +02:00 |
Hans Leidekker
|
1d19c2b72f
|
msi: Install data sources in the InstallODBC custom action.
|
2007-04-23 14:07:18 +02:00 |
Hans Leidekker
|
33c025b7f2
|
msi: Install translators in the InstallODBC custom action.
|
2007-04-23 14:06:47 +02:00 |
James Hawkins
|
b4bb6e5b5d
|
msi: Add the _Property table back, with tests.
|
2007-04-23 14:03:51 +02:00 |
James Hawkins
|
d677bd7f3b
|
msi: Return MSICONDITION_NONE in MsiDatabaseIsTablePersistent if the table doesn't exist.
|
2007-04-23 14:00:24 +02:00 |
Alban Browaeys
|
7aa3917823
|
msi: Move msi_free(msiFilePath) to enable ERR message to use it before it is freed.
|
2007-04-16 13:20:43 +02:00 |
James Hawkins
|
98eafa870c
|
msi: Add handling for the concurrent install custom action.
|
2007-04-16 12:11:08 +02:00 |
James Hawkins
|
6da8041d47
|
msi: Run the InstallExecute sequence if the InstallUISequnce table is empty.
|
2007-04-16 12:10:03 +02:00 |
James Hawkins
|
06df9f790d
|
msi: Generalize the msi_custom_action_info struct so other custom actions can use it.
|
2007-04-16 12:09:14 +02:00 |
James Hawkins
|
4cc48b7710
|
msi: Add tests for the concurrent installation custom action.
|
2007-04-16 12:08:52 +02:00 |
Rob Shearman
|
1b0b5f5699
|
msi: Provide UI action data for uncompressed files, not just compressed ones.
|
2007-04-13 11:42:46 +02:00 |
Aric Stewart
|
b46ab0b8cb
|
msi: Do not crash in MsiGetUserInfo if org, user or serial are not present, instead return USERINFOSTATE_ABSENT.
|
2007-04-12 16:19:24 +02:00 |
James Hawkins
|
7ef8428b5e
|
msi: Reset the is_extracted flag when every cabinet is loaded.
|
2007-04-12 16:18:08 +02:00 |
Aric Stewart
|
d54900b8bc
|
msi: Register fonts with full target paths as applications can and will install fonts to places other than the windows/fonts directory.
|
2007-04-11 11:20:52 +02:00 |
Rob Shearman
|
3fbe9db433
|
msi: Don't wait on closed handles in ACTION_FinishCustomActions.
The handle will be closed by free_custom_action_data, so duplicate the
handle before calling it.
|
2007-04-04 12:39:14 +02:00 |