msi: Return ERROR_FUNCTION_FAILED when inserting duplicate keys.
diff --git a/dlls/msi/table.c b/dlls/msi/table.c
index c5850e3..692f4a5 100644
--- a/dlls/msi/table.c
+++ b/dlls/msi/table.c
@@ -1490,7 +1490,7 @@
/* check there's no duplicate keys */
r = msi_table_find_row( tv, rec, &row );
if (r == ERROR_SUCCESS)
- return ERROR_INVALID_DATA;
+ return ERROR_FUNCTION_FAILED;
return ERROR_SUCCESS;
}
diff --git a/dlls/msi/tests/db.c b/dlls/msi/tests/db.c
index 293cf0c..8887954 100644
--- a/dlls/msi/tests/db.c
+++ b/dlls/msi/tests/db.c
@@ -791,10 +791,8 @@
ok(r == ERROR_SUCCESS, "MsiViewExecute failed\n");
/* should fail ... */
- todo_wine {
r = MsiViewModify(hview, MSIMODIFY_INSERT_TEMPORARY, hrec );
ok(r == ERROR_FUNCTION_FAILED, "MsiViewModify failed\n");
- }
r = MsiCloseHandle(hrec);
ok(r == ERROR_SUCCESS, "failed to close record\n");