diff --git a/dlls/msi/msiquery.c b/dlls/msi/msiquery.c index 1ee63b5deff..430ff52cbeb 100644 --- a/dlls/msi/msiquery.c +++ b/dlls/msi/msiquery.c @@ -842,7 +842,7 @@ struct msi_primary_key_record_info static UINT msi_primary_key_iterator( MSIRECORD *rec, LPVOID param ) { struct msi_primary_key_record_info *info = param; - LPCWSTR name; + LPCWSTR name, table; DWORD type; type = MSI_RecordGetInteger( rec, 4 ); @@ -851,6 +851,12 @@ static UINT msi_primary_key_iterator( MSIRECORD *rec, LPVOID param ) info->n++; if( info->rec ) { + if ( info->n == 1 ) + { + table = MSI_RecordGetString( rec, 1 ); + MSI_RecordSetStringW( info->rec, 0, table); + } + name = MSI_RecordGetString( rec, 3 ); MSI_RecordSetStringW( info->rec, info->n, name ); } diff --git a/dlls/msi/tests/record.c b/dlls/msi/tests/record.c index 567f110a324..1b882393bed 100644 --- a/dlls/msi/tests/record.c +++ b/dlls/msi/tests/record.c @@ -552,17 +552,11 @@ static void test_fieldzero(void) lstrcpyA(buf, "apple"); r = MsiRecordGetString(rec, 0, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - todo_wine - { - ok(!lstrcmpA(buf, "drone"), "Expected \"drone\", got \"%s\"\n", buf); - ok(sz == 5, "Expectd 5, got %d\n", sz); - } + ok(!lstrcmpA(buf, "drone"), "Expected \"drone\", got \"%s\"\n", buf); + ok(sz == 5, "Expectd 5, got %d\n", sz); r = MsiRecordIsNull(rec, 0); - todo_wine - { - ok(r == FALSE, "Expected FALSE, got %d\n", r); - } + ok(r == FALSE, "Expected FALSE, got %d\n", r); MsiCloseHandle(rec);