msi: Work around what appears to be a bug in native MSI's generation of transform data.

This commit is contained in:
Mike McCormack 2006-10-06 17:36:37 +09:00 committed by Alexandre Julliard
parent f53ba3ca58
commit 92cc0bc0c2
1 changed files with 15 additions and 0 deletions

View File

@ -1830,6 +1830,7 @@ static UINT msi_table_load_transform( MSIDATABASE *db, IStorage *stg,
MSITABLEVIEW *tv = NULL;
UINT r, n, sz, i, mask;
MSIRECORD *rec = NULL;
UINT colcol = 0;
TRACE("%p %p %p %s\n", db, stg, st, debugstr_w(name) );
@ -1911,6 +1912,20 @@ static UINT msi_table_load_transform( MSIDATABASE *db, IStorage *stg,
if( rawdata[n] & 1)
{
TRACE("insert [%d]: ", row);
/*
* Native msi seems writes nul into the
* Number (2nd) column of the _Columns table.
* Not sure that it's deliberate...
*/
if (!lstrcmpW(name, szColumns))
{
if ( MSI_RecordIsNull( rec, 2 ) )
MSI_RecordSetInteger( rec, 2, ++colcol );
else
ERR("_Columns has non-null data...\n");
}
TABLE_insert_row( &tv->view, rec );
}
else if( mask & 0xff )