Module: wine Branch: master Commit: 60d92d42a3a256c9810fe9e6a34089d2951ef56e URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=60d92d42a3a256c9810fe9e6...
Author: Mike McCormack mike@codeweavers.com Date: Wed Sep 13 18:46:13 2006 +0900
msi: Fix a couple of test cases for MsiDatabaseIsTablePersistent.
---
dlls/msi/msipriv.h | 1 + dlls/msi/msiquery.c | 16 ++++++++++++++-- dlls/msi/table.c | 8 ++++++++ dlls/msi/tests/db.c | 4 ++-- 4 files changed, 25 insertions(+), 4 deletions(-)
diff --git a/dlls/msi/msipriv.h b/dlls/msi/msipriv.h index 9177b1d..a10be59 100644 --- a/dlls/msi/msipriv.h +++ b/dlls/msi/msipriv.h @@ -338,6 +338,7 @@ extern UINT msi_string_get_codepage( str
extern BOOL TABLE_Exists( MSIDATABASE *db, LPWSTR name ); +extern MSICONDITION MSI_DatabaseIsTablePersistent( MSIDATABASE *db, LPCWSTR table );
extern UINT read_raw_stream_data( MSIDATABASE*, LPCWSTR stname, USHORT **pdata, UINT *psz ); diff --git a/dlls/msi/msiquery.c b/dlls/msi/msiquery.c index 157ae18..e146cc8 100644 --- a/dlls/msi/msiquery.c +++ b/dlls/msi/msiquery.c @@ -898,6 +898,18 @@ MSICONDITION WINAPI MsiDatabaseIsTablePe MSICONDITION WINAPI MsiDatabaseIsTablePersistentW( MSIHANDLE hDatabase, LPCWSTR szTableName) { - FIXME("%lx %s\n", hDatabase, debugstr_w(szTableName)); - return MSICONDITION_FALSE; + MSIDATABASE *db; + MSICONDITION r; + + TRACE("%lx %s\n", hDatabase, debugstr_w(szTableName)); + + db = msihandle2msiinfo( hDatabase, MSIHANDLETYPE_DATABASE ); + if( !db ) + return MSICONDITION_ERROR; + + r = MSI_DatabaseIsTablePersistent( db, szTableName ); + + msiobj_release( &db->hdr ); + + return r; } diff --git a/dlls/msi/table.c b/dlls/msi/table.c index 1c05e79..4eb3f52 100644 --- a/dlls/msi/table.c +++ b/dlls/msi/table.c @@ -1643,6 +1643,14 @@ UINT MSI_CommitTables( MSIDATABASE *db ) return ERROR_SUCCESS; }
+MSICONDITION MSI_DatabaseIsTablePersistent( MSIDATABASE *db, LPCWSTR table ) +{ + if (!table) + return MSICONDITION_ERROR; + + return MSICONDITION_FALSE; +} + static MSIRECORD *msi_get_transform_record( MSITABLEVIEW *tv, string_table *st, USHORT *rawdata ) { UINT i, val, ofs = 0; diff --git a/dlls/msi/tests/db.c b/dlls/msi/tests/db.c index 7ec5a70..acfa093 100644 --- a/dlls/msi/tests/db.c +++ b/dlls/msi/tests/db.c @@ -2170,15 +2170,15 @@ static void test_temporary_table(void) DWORD sz;
cond = MsiDatabaseIsTablePersistent(0, NULL); - todo_wine ok( cond == MSICONDITION_ERROR, "wrong return condition\n"); + ok( cond == MSICONDITION_ERROR, "wrong return condition\n");
hdb = create_db(); ok( hdb, "failed to create db\n");
- todo_wine { cond = MsiDatabaseIsTablePersistent(hdb, NULL); ok( cond == MSICONDITION_ERROR, "wrong return condition\n");
+ todo_wine { cond = MsiDatabaseIsTablePersistent(hdb, "_Tables"); ok( cond == MSICONDITION_NONE, "wrong return condition\n");