From 4f02eb34cb85a498aebf0b148a9c1e36ebe081c9 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 30 Nov 2012 12:29:58 +0100 Subject: abandon camelcase --- tests/testdatabase.c | 4196 +++++++++++++++++++++++++------------------------- 1 file changed, 2098 insertions(+), 2098 deletions(-) (limited to 'tests/testdatabase.c') diff --git a/tests/testdatabase.c b/tests/testdatabase.c index ca03659..f0e546b 100644 --- a/tests/testdatabase.c +++ b/tests/testdatabase.c @@ -44,98 +44,98 @@ static void test_msidatabase(void) DeleteFile(msifile); - res = MsiOpenDatabase( msifile, msifile2, &hdb ); + res = libmsi_database_open( msifile, msifile2, &hdb ); ok( res == ERROR_OPEN_FAILED, "expected failure\n"); - res = MsiOpenDatabase( msifile, (LPSTR) 0xff, &hdb ); + res = libmsi_database_open( msifile, (LPSTR) 0xff, &hdb ); ok( res == ERROR_INVALID_PARAMETER, "expected failure\n"); - res = MsiCloseHandle( hdb ); + res = libmsi_unref( hdb ); ok( res == ERROR_SUCCESS , "Failed to close database\n" ); /* create an empty database */ - res = MsiOpenDatabase(msifile, LIBMSI_DB_OPEN_CREATE, &hdb ); + res = libmsi_database_open(msifile, LIBMSI_DB_OPEN_CREATE, &hdb ); ok( res == ERROR_SUCCESS , "Failed to create database\n" ); - res = MsiDatabaseCommit( hdb ); + res = libmsi_database_commit( hdb ); ok( res == ERROR_SUCCESS , "Failed to commit database\n" ); ok( INVALID_FILE_ATTRIBUTES != GetFileAttributes( msifile ), "database should exist\n"); - res = MsiCloseHandle( hdb ); + res = libmsi_unref( hdb ); ok( res == ERROR_SUCCESS , "Failed to close database\n" ); - res = MsiOpenDatabase( msifile, msifile2, &hdb2 ); + res = libmsi_database_open( msifile, msifile2, &hdb2 ); ok( res == ERROR_SUCCESS , "Failed to open database\n" ); ok( INVALID_FILE_ATTRIBUTES != GetFileAttributes( msifile2 ), "database should exist\n"); - res = MsiDatabaseCommit( hdb2 ); + res = libmsi_database_commit( hdb2 ); ok( res == ERROR_SUCCESS , "Failed to commit database\n" ); - res = MsiCloseHandle( hdb2 ); + res = libmsi_unref( hdb2 ); ok( res == ERROR_SUCCESS , "Failed to close database\n" ); - res = MsiOpenDatabase( msifile, msifile2, &hdb2 ); + res = libmsi_database_open( msifile, msifile2, &hdb2 ); ok( res == ERROR_SUCCESS , "Failed to open database\n" ); - res = MsiCloseHandle( hdb2 ); + res = libmsi_unref( hdb2 ); ok( res == ERROR_SUCCESS , "Failed to close database\n" ); ok( INVALID_FILE_ATTRIBUTES == GetFileAttributes( msifile2 ), "uncommitted database should not exist\n"); - res = MsiOpenDatabase( msifile, msifile2, &hdb2 ); + res = libmsi_database_open( msifile, msifile2, &hdb2 ); ok( res == ERROR_SUCCESS , "Failed to close database\n" ); - res = MsiDatabaseCommit( hdb2 ); + res = libmsi_database_commit( hdb2 ); ok( res == ERROR_SUCCESS , "Failed to commit database\n" ); - res = MsiCloseHandle( hdb2 ); + res = libmsi_unref( hdb2 ); ok( res == ERROR_SUCCESS , "Failed to close database\n" ); ok( INVALID_FILE_ATTRIBUTES != GetFileAttributes( msifile2 ), "committed database should exist\n"); - res = MsiOpenDatabase( msifile, LIBMSI_DB_OPEN_READONLY, &hdb ); + res = libmsi_database_open( msifile, LIBMSI_DB_OPEN_READONLY, &hdb ); ok( res == ERROR_SUCCESS , "Failed to open database\n" ); - res = MsiDatabaseCommit( hdb ); + res = libmsi_database_commit( hdb ); ok( res == ERROR_SUCCESS , "Failed to commit database\n" ); - res = MsiCloseHandle( hdb ); + res = libmsi_unref( hdb ); ok( res == ERROR_SUCCESS , "Failed to close database\n" ); - res = MsiOpenDatabase( msifile, LIBMSI_DB_OPEN_DIRECT, &hdb ); + res = libmsi_database_open( msifile, LIBMSI_DB_OPEN_DIRECT, &hdb ); ok( res == ERROR_SUCCESS , "Failed to open database\n" ); - res = MsiCloseHandle( hdb ); + res = libmsi_unref( hdb ); ok( res == ERROR_SUCCESS , "Failed to close database\n" ); - res = MsiOpenDatabase( msifile, LIBMSI_DB_OPEN_TRANSACT, &hdb ); + res = libmsi_database_open( msifile, LIBMSI_DB_OPEN_TRANSACT, &hdb ); ok( res == ERROR_SUCCESS , "Failed to open database\n" ); - res = MsiCloseHandle( hdb ); + res = libmsi_unref( hdb ); ok( res == ERROR_SUCCESS , "Failed to close database\n" ); ok( INVALID_FILE_ATTRIBUTES != GetFileAttributes( msifile ), "database should exist\n"); /* LIBMSI_DB_OPEN_CREATE deletes the database if MsiCommitDatabase isn't called */ - res = MsiOpenDatabase( msifile, LIBMSI_DB_OPEN_CREATE, &hdb ); + res = libmsi_database_open( msifile, LIBMSI_DB_OPEN_CREATE, &hdb ); ok( res == ERROR_SUCCESS , "Failed to open database\n" ); ok( INVALID_FILE_ATTRIBUTES != GetFileAttributes( msifile ), "database should exist\n"); - res = MsiCloseHandle( hdb ); + res = libmsi_unref( hdb ); ok( res == ERROR_SUCCESS , "Failed to close database\n" ); ok( INVALID_FILE_ATTRIBUTES == GetFileAttributes( msifile ), "database should exist\n"); - res = MsiOpenDatabase( msifile, LIBMSI_DB_OPEN_CREATE, &hdb ); + res = libmsi_database_open( msifile, LIBMSI_DB_OPEN_CREATE, &hdb ); ok( res == ERROR_SUCCESS , "Failed to open database\n" ); - res = MsiDatabaseCommit( hdb ); + res = libmsi_database_commit( hdb ); ok( res == ERROR_SUCCESS , "Failed to commit database\n" ); ok( INVALID_FILE_ATTRIBUTES != GetFileAttributes( msifile ), "database should exist\n"); - res = MsiCloseHandle( hdb ); + res = libmsi_unref( hdb ); ok( res == ERROR_SUCCESS , "Failed to close database\n" ); res = DeleteFile( msifile2 ); @@ -154,17 +154,17 @@ static unsigned do_query(LibmsiDatabase *hdb, const char *sql, LibmsiRecord **ph *phrec = 0; /* open a select query */ - r = MsiDatabaseOpenQuery(hdb, sql, &hquery); + r = libmsi_database_open_query(hdb, sql, &hquery); if (r != ERROR_SUCCESS) return r; - r = MsiQueryExecute(hquery, 0); + r = libmsi_query_execute(hquery, 0); if (r != ERROR_SUCCESS) return r; - ret = MsiQueryFetch(hquery, phrec); - r = MsiQueryClose(hquery); + ret = libmsi_query_fetch(hquery, phrec); + r = libmsi_query_close(hquery); if (r != ERROR_SUCCESS) return r; - r = MsiCloseHandle(hquery); + r = libmsi_unref(hquery); if (r != ERROR_SUCCESS) return r; return ret; @@ -175,14 +175,14 @@ static unsigned run_query( LibmsiDatabase *hdb, LibmsiRecord *hrec, const char * LibmsiQuery *hquery = 0; unsigned r; - r = MsiDatabaseOpenQuery(hdb, sql, &hquery); + r = libmsi_database_open_query(hdb, sql, &hquery); if( r != ERROR_SUCCESS ) return r; - r = MsiQueryExecute(hquery, hrec); + r = libmsi_query_execute(hquery, hrec); if( r == ERROR_SUCCESS ) - r = MsiQueryClose(hquery); - MsiCloseHandle(hquery); + r = libmsi_query_close(hquery); + libmsi_unref(hquery); return r; } @@ -293,149 +293,149 @@ static void test_msiinsert(void) DeleteFile(msifile); - /* just MsiOpenDatabase should not create a file */ - r = MsiOpenDatabase(msifile, LIBMSI_DB_OPEN_CREATE, &hdb); - ok(r == ERROR_SUCCESS, "MsiOpenDatabase failed\n"); + /* just libmsi_database_open should not create a file */ + r = libmsi_database_open(msifile, LIBMSI_DB_OPEN_CREATE, &hdb); + ok(r == ERROR_SUCCESS, "libmsi_database_open failed\n"); /* create a table */ sql = "CREATE TABLE `phone` ( " "`id` INT, `name` CHAR(32), `number` CHAR(32) " "PRIMARY KEY `id`)"; - r = MsiDatabaseOpenQuery(hdb, sql, &hquery); - ok(r == ERROR_SUCCESS, "MsiDatabaseOpenQuery failed\n"); - r = MsiQueryExecute(hquery, 0); - ok(r == ERROR_SUCCESS, "MsiQueryExecute failed\n"); - r = MsiQueryClose(hquery); - ok(r == ERROR_SUCCESS, "MsiQueryClose failed\n"); - r = MsiCloseHandle(hquery); - ok(r == ERROR_SUCCESS, "MsiCloseHandle failed\n"); + r = libmsi_database_open_query(hdb, sql, &hquery); + ok(r == ERROR_SUCCESS, "libmsi_database_open_query failed\n"); + r = libmsi_query_execute(hquery, 0); + ok(r == ERROR_SUCCESS, "libmsi_query_execute failed\n"); + r = libmsi_query_close(hquery); + ok(r == ERROR_SUCCESS, "libmsi_query_close failed\n"); + r = libmsi_unref(hquery); + ok(r == ERROR_SUCCESS, "libmsi_unref failed\n"); sql = "SELECT * FROM phone WHERE number = '8675309'"; - r = MsiDatabaseOpenQuery(hdb, sql, &hquery2); - ok(r == ERROR_SUCCESS, "MsiDatabaseOpenQuery failed\n"); - r = MsiQueryExecute(hquery2, 0); - ok(r == ERROR_SUCCESS, "MsiQueryExecute failed\n"); - r = MsiQueryFetch(hquery2, &hrec); - ok(r == ERROR_NO_MORE_ITEMS, "MsiQueryFetch produced items\n"); + r = libmsi_database_open_query(hdb, sql, &hquery2); + ok(r == ERROR_SUCCESS, "libmsi_database_open_query failed\n"); + r = libmsi_query_execute(hquery2, 0); + ok(r == ERROR_SUCCESS, "libmsi_query_execute failed\n"); + r = libmsi_query_fetch(hquery2, &hrec); + ok(r == ERROR_NO_MORE_ITEMS, "libmsi_query_fetch produced items\n"); /* insert a value into it */ sql = "INSERT INTO `phone` ( `id`, `name`, `number` )" "VALUES('1', 'Abe', '8675309')"; - r = MsiDatabaseOpenQuery(hdb, sql, &hquery); - ok(r == ERROR_SUCCESS, "MsiDatabaseOpenQuery failed\n"); - r = MsiQueryExecute(hquery, 0); - ok(r == ERROR_SUCCESS, "MsiQueryExecute failed\n"); - r = MsiQueryClose(hquery); - ok(r == ERROR_SUCCESS, "MsiQueryClose failed\n"); - r = MsiCloseHandle(hquery); - ok(r == ERROR_SUCCESS, "MsiCloseHandle failed\n"); - - r = MsiQueryFetch(hquery2, &hrec); - ok(r == ERROR_NO_MORE_ITEMS, "MsiQueryFetch produced items\n"); - r = MsiQueryExecute(hquery2, 0); - ok(r == ERROR_SUCCESS, "MsiQueryExecute failed\n"); - r = MsiQueryFetch(hquery2, &hrec); - ok(r == ERROR_SUCCESS, "MsiQueryFetch failed: %u\n", r); - - r = MsiCloseHandle(hrec); - ok(r == ERROR_SUCCESS, "MsiCloseHandle failed\n"); - r = MsiQueryClose(hquery2); - ok(r == ERROR_SUCCESS, "MsiQueryClose failed\n"); - r = MsiCloseHandle(hquery2); - ok(r == ERROR_SUCCESS, "MsiCloseHandle failed\n"); + r = libmsi_database_open_query(hdb, sql, &hquery); + ok(r == ERROR_SUCCESS, "libmsi_database_open_query failed\n"); + r = libmsi_query_execute(hquery, 0); + ok(r == ERROR_SUCCESS, "libmsi_query_execute failed\n"); + r = libmsi_query_close(hquery); + ok(r == ERROR_SUCCESS, "libmsi_query_close failed\n"); + r = libmsi_unref(hquery); + ok(r == ERROR_SUCCESS, "libmsi_unref failed\n"); + + r = libmsi_query_fetch(hquery2, &hrec); + ok(r == ERROR_NO_MORE_ITEMS, "libmsi_query_fetch produced items\n"); + r = libmsi_query_execute(hquery2, 0); + ok(r == ERROR_SUCCESS, "libmsi_query_execute failed\n"); + r = libmsi_query_fetch(hquery2, &hrec); + ok(r == ERROR_SUCCESS, "libmsi_query_fetch failed: %u\n", r); + + r = libmsi_unref(hrec); + ok(r == ERROR_SUCCESS, "libmsi_unref failed\n"); + r = libmsi_query_close(hquery2); + ok(r == ERROR_SUCCESS, "libmsi_query_close failed\n"); + r = libmsi_unref(hquery2); + ok(r == ERROR_SUCCESS, "libmsi_unref failed\n"); sql = "SELECT * FROM `phone` WHERE `id` = 1"; r = do_query(hdb, sql, &hrec); - ok(r == ERROR_SUCCESS, "MsiQueryFetch failed\n"); + ok(r == ERROR_SUCCESS, "libmsi_query_fetch failed\n"); /* check the record contains what we put in it */ - r = MsiRecordGetFieldCount(hrec); + r = libmsi_record_get_field_count(hrec); ok(r == 3, "record count wrong\n"); - r = MsiRecordIsNull(hrec, 0); + r = libmsi_record_is_null(hrec, 0); ok(r == false, "field 0 not null\n"); - r = MsiRecordGetInteger(hrec, 1); + r = libmsi_record_get_integer(hrec, 1); ok(r == 1, "field 1 contents wrong\n"); sz = sizeof buf; - r = MsiRecordGetString(hrec, 2, buf, &sz); + r = libmsi_record_get_string(hrec, 2, buf, &sz); ok(r == ERROR_SUCCESS, "field 2 content fetch failed\n"); ok(!strcmp(buf,"Abe"), "field 2 content incorrect\n"); sz = sizeof buf; - r = MsiRecordGetString(hrec, 3, buf, &sz); + r = libmsi_record_get_string(hrec, 3, buf, &sz); ok(r == ERROR_SUCCESS, "field 3 content fetch failed\n"); ok(!strcmp(buf,"8675309"), "field 3 content incorrect\n"); - r = MsiCloseHandle(hrec); - ok(r == ERROR_SUCCESS, "MsiCloseHandle failed\n"); + r = libmsi_unref(hrec); + ok(r == ERROR_SUCCESS, "libmsi_unref failed\n"); /* open a select query */ hrec = 100; sql = "SELECT * FROM `phone` WHERE `id` >= 10"; r = do_query(hdb, sql, &hrec); - ok(r == ERROR_NO_MORE_ITEMS, "MsiQueryFetch failed\n"); + ok(r == ERROR_NO_MORE_ITEMS, "libmsi_query_fetch failed\n"); ok(hrec == 0, "hrec should be null\n"); - r = MsiCloseHandle(hrec); - ok(r == ERROR_SUCCESS, "MsiCloseHandle failed\n"); + r = libmsi_unref(hrec); + ok(r == ERROR_SUCCESS, "libmsi_unref failed\n"); sql = "SELECT * FROM `phone` WHERE `id` < 0"; r = do_query(hdb, sql, &hrec); - ok(r == ERROR_NO_MORE_ITEMS, "MsiQueryFetch failed\n"); + ok(r == ERROR_NO_MORE_ITEMS, "libmsi_query_fetch failed\n"); sql = "SELECT * FROM `phone` WHERE `id` <= 0"; r = do_query(hdb, sql, &hrec); - ok(r == ERROR_NO_MORE_ITEMS, "MsiQueryFetch failed\n"); + ok(r == ERROR_NO_MORE_ITEMS, "libmsi_query_fetch failed\n"); sql = "SELECT * FROM `phone` WHERE `id` <> 1"; r = do_query(hdb, sql, &hrec); - ok(r == ERROR_NO_MORE_ITEMS, "MsiQueryFetch failed\n"); + ok(r == ERROR_NO_MORE_ITEMS, "libmsi_query_fetch failed\n"); sql = "SELECT * FROM `phone` WHERE `id` > 10"; r = do_query(hdb, sql, &hrec); - ok(r == ERROR_NO_MORE_ITEMS, "MsiQueryFetch failed\n"); + ok(r == ERROR_NO_MORE_ITEMS, "libmsi_query_fetch failed\n"); /* now try a few bad INSERT xqueries */ sql = "INSERT INTO `phone` ( `id`, `name`, `number` )" "VALUES(?, ?)"; - r = MsiDatabaseOpenQuery(hdb, sql, &hquery); - ok(r == ERROR_BAD_QUERY_SYNTAX, "MsiDatabaseOpenQuery failed\n"); + r = libmsi_database_open_query(hdb, sql, &hquery); + ok(r == ERROR_BAD_QUERY_SYNTAX, "libmsi_database_open_query failed\n"); /* construct a record to insert */ - hrec = MsiCreateRecord(4); - r = MsiRecordSetInteger(hrec, 1, 2); - ok(r == ERROR_SUCCESS, "MsiRecordSetInteger failed\n"); - r = MsiRecordSetString(hrec, 2, "Adam"); - ok(r == ERROR_SUCCESS, "MsiRecordSetString failed\n"); - r = MsiRecordSetString(hrec, 3, "96905305"); - ok(r == ERROR_SUCCESS, "MsiRecordSetString failed\n"); + hrec = libmsi_record_create(4); + r = libmsi_record_set_int(hrec, 1, 2); + ok(r == ERROR_SUCCESS, "libmsi_record_set_int failed\n"); + r = libmsi_record_set_string(hrec, 2, "Adam"); + ok(r == ERROR_SUCCESS, "libmsi_record_set_string failed\n"); + r = libmsi_record_set_string(hrec, 3, "96905305"); + ok(r == ERROR_SUCCESS, "libmsi_record_set_string failed\n"); /* insert another value, using a record and wildcards */ sql = "INSERT INTO `phone` ( `id`, `name`, `number` )" "VALUES(?, ?, ?)"; - r = MsiDatabaseOpenQuery(hdb, sql, &hquery); - ok(r == ERROR_SUCCESS, "MsiDatabaseOpenQuery failed\n"); + r = libmsi_database_open_query(hdb, sql, &hquery); + ok(r == ERROR_SUCCESS, "libmsi_database_open_query failed\n"); if (r == ERROR_SUCCESS) { - r = MsiQueryExecute(hquery, hrec); - ok(r == ERROR_SUCCESS, "MsiQueryExecute failed\n"); - r = MsiQueryClose(hquery); - ok(r == ERROR_SUCCESS, "MsiQueryClose failed\n"); - r = MsiCloseHandle(hquery); - ok(r == ERROR_SUCCESS, "MsiCloseHandle failed\n"); + r = libmsi_query_execute(hquery, hrec); + ok(r == ERROR_SUCCESS, "libmsi_query_execute failed\n"); + r = libmsi_query_close(hquery); + ok(r == ERROR_SUCCESS, "libmsi_query_close failed\n"); + r = libmsi_unref(hquery); + ok(r == ERROR_SUCCESS, "libmsi_unref failed\n"); } - r = MsiCloseHandle(hrec); - ok(r == ERROR_SUCCESS, "MsiCloseHandle failed\n"); + r = libmsi_unref(hrec); + ok(r == ERROR_SUCCESS, "libmsi_unref failed\n"); - r = MsiQueryFetch(0, NULL); - ok(r == ERROR_INVALID_PARAMETER, "MsiQueryFetch failed\n"); + r = libmsi_query_fetch(0, NULL); + ok(r == ERROR_INVALID_PARAMETER, "libmsi_query_fetch failed\n"); - r = MsiDatabaseCommit(hdb); - ok(r == ERROR_SUCCESS, "MsiDatabaseCommit failed\n"); + r = libmsi_database_commit(hdb); + ok(r == ERROR_SUCCESS, "libmsi_database_commit failed\n"); - r = MsiCloseHandle(hdb); - ok(r == ERROR_SUCCESS, "MsiCloseHandle failed\n"); + r = libmsi_unref(hdb); + ok(r == ERROR_SUCCESS, "libmsi_unref failed\n"); r = DeleteFile(msifile); ok(r == true, "file didn't exist after commit\n"); @@ -446,20 +446,20 @@ static unsigned try_query_param( LibmsiDatabase *hdb, const char *szQuery, Libms LibmsiQuery *htab = 0; unsigned res; - res = MsiDatabaseOpenQuery( hdb, szQuery, &htab ); + res = libmsi_database_open_query( hdb, szQuery, &htab ); if(res == ERROR_SUCCESS ) { unsigned r; - r = MsiQueryExecute( htab, hrec ); + r = libmsi_query_execute( htab, hrec ); if(r != ERROR_SUCCESS ) res = r; - r = MsiQueryClose( htab ); + r = libmsi_query_close( htab ); if(r != ERROR_SUCCESS ) res = r; - r = MsiCloseHandle( htab ); + r = libmsi_unref( htab ); if(r != ERROR_SUCCESS ) res = r; } @@ -476,12 +476,12 @@ static unsigned try_insert_query( LibmsiDatabase *hdb, const char *szQuery ) LibmsiRecord *hrec = 0; unsigned r; - hrec = MsiCreateRecord( 1 ); - MsiRecordSetString( hrec, 1, "Hello"); + hrec = libmsi_record_create( 1 ); + libmsi_record_set_string( hrec, 1, "Hello"); r = try_query_param( hdb, szQuery, hrec ); - MsiCloseHandle( hrec ); + libmsi_unref( hrec ); return r; } @@ -492,29 +492,29 @@ static void test_msibadqueries(void) DeleteFile(msifile); - /* just MsiOpenDatabase should not create a file */ - r = MsiOpenDatabase(msifile, LIBMSI_DB_OPEN_CREATE, &hdb); - ok(r == ERROR_SUCCESS, "MsiOpenDatabase failed\n"); + /* just libmsi_database_open should not create a file */ + r = libmsi_database_open(msifile, LIBMSI_DB_OPEN_CREATE, &hdb); + ok(r == ERROR_SUCCESS, "libmsi_database_open failed\n"); - r = MsiDatabaseCommit( hdb ); + r = libmsi_database_commit( hdb ); ok(r == ERROR_SUCCESS , "Failed to commit database\n"); - r = MsiCloseHandle( hdb ); + r = libmsi_unref( hdb ); ok(r == ERROR_SUCCESS , "Failed to close database\n"); /* open it readonly */ - r = MsiOpenDatabase(msifile, LIBMSI_DB_OPEN_READONLY, &hdb ); + r = libmsi_database_open(msifile, LIBMSI_DB_OPEN_READONLY, &hdb ); ok(r == ERROR_SUCCESS , "Failed to open database r/o\n"); /* add a table to it */ r = try_query( hdb, "select * from _Tables"); ok(r == ERROR_SUCCESS , "query 1 failed\n"); - r = MsiCloseHandle( hdb ); + r = libmsi_unref( hdb ); ok(r == ERROR_SUCCESS , "Failed to close database r/o\n"); /* open it read/write */ - r = MsiOpenDatabase(msifile, LIBMSI_DB_OPEN_TRANSACT, &hdb ); + r = libmsi_database_open(msifile, LIBMSI_DB_OPEN_TRANSACT, &hdb ); ok(r == ERROR_SUCCESS , "Failed to open database r/w\n"); /* a bunch of test queries that fail with the native MSI */ @@ -580,7 +580,7 @@ static void test_msibadqueries(void) "CHAR(72), `d` CHAR(255) NOT NULL LOCALIZABLE PRIMARY KEY `b`)"); ok(r == ERROR_SUCCESS , "query 4 failed\n"); - r = MsiDatabaseCommit( hdb ); + r = libmsi_database_commit( hdb ); ok(r == ERROR_SUCCESS , "Failed to commit database after write\n"); r = try_query( hdb, "CREATE TABLE `blah` (`foo` CHAR(72) NOT NULL " @@ -590,7 +590,7 @@ static void test_msibadqueries(void) r = try_insert_query( hdb, "insert into a ( `b` ) VALUES ( ? )"); ok(r == ERROR_SUCCESS , "failed to insert record in db\n"); - r = MsiDatabaseCommit( hdb ); + r = libmsi_database_commit( hdb ); ok(r == ERROR_SUCCESS , "Failed to commit database after write\n"); r = try_query( hdb, "CREATE TABLE `boo` (`foo` CHAR(72) NOT NULL " @@ -697,7 +697,7 @@ static void test_msibadqueries(void) r = try_query( hdb, "SELECT * FROM a-" ); ok( r == ERROR_SUCCESS , "query failed: %u\n", r ); - r = MsiCloseHandle( hdb ); + r = libmsi_unref( hdb ); ok(r == ERROR_SUCCESS , "Failed to close database transact\n"); r = DeleteFile( msifile ); @@ -717,9 +717,9 @@ static void test_querymodify(void) DeleteFile(msifile); - /* just MsiOpenDatabase should not create a file */ - r = MsiOpenDatabase(msifile, LIBMSI_DB_OPEN_CREATE, &hdb); - ok(r == ERROR_SUCCESS, "MsiOpenDatabase failed\n"); + /* just libmsi_database_open should not create a file */ + r = libmsi_database_open(msifile, LIBMSI_DB_OPEN_CREATE, &hdb); + ok(r == ERROR_SUCCESS, "libmsi_database_open failed\n"); sql = "CREATE TABLE `phone` ( " "`id` INT, `name` CHAR(32), `number` CHAR(32) " @@ -743,317 +743,317 @@ static void test_querymodify(void) /* check what the error function reports without doing anything */ sz = 0; /* passing NULL as the 3rd param make function to crash on older platforms */ - err = MsiQueryGetError( 0, NULL, &sz ); - ok(err == LIBMSI_DB_ERROR_INVALIDARG, "MsiQueryGetError return\n"); + err = libmsi_query_get_error( 0, NULL, &sz ); + ok(err == LIBMSI_DB_ERROR_INVALIDARG, "libmsi_query_get_error return\n"); /* open a query */ sql = "SELECT * FROM `phone`"; - r = MsiDatabaseOpenQuery(hdb, sql, &hquery); - ok(r == ERROR_SUCCESS, "MsiDatabaseOpenQuery failed\n"); + r = libmsi_database_open_query(hdb, sql, &hquery); + ok(r == ERROR_SUCCESS, "libmsi_database_open_query failed\n"); /* see what happens with a good hquery and bad args */ - err = MsiQueryGetError( hquery, NULL, NULL ); + err = libmsi_query_get_error( hquery, NULL, NULL ); ok(err == LIBMSI_DB_ERROR_INVALIDARG || err == LIBMSI_DB_ERROR_NOERROR, - "MsiQueryGetError returns %u (expected -3)\n", err); - err = MsiQueryGetError( hquery, buffer, NULL ); - ok(err == LIBMSI_DB_ERROR_INVALIDARG, "MsiQueryGetError return\n"); + "libmsi_query_get_error returns %u (expected -3)\n", err); + err = libmsi_query_get_error( hquery, buffer, NULL ); + ok(err == LIBMSI_DB_ERROR_INVALIDARG, "libmsi_query_get_error return\n"); /* see what happens with a zero length buffer */ sz = 0; buffer[0] = 'x'; - err = MsiQueryGetError( hquery, buffer, &sz ); - ok(err == LIBMSI_DB_ERROR_MOREDATA, "MsiQueryGetError return\n"); + err = libmsi_query_get_error( hquery, buffer, &sz ); + ok(err == LIBMSI_DB_ERROR_MOREDATA, "libmsi_query_get_error return\n"); ok(buffer[0] == 'x', "buffer cleared\n"); ok(sz == 0, "size not zero\n"); /* ok this one is strange */ sz = 0; - err = MsiQueryGetError( hquery, NULL, &sz ); - ok(err == LIBMSI_DB_ERROR_NOERROR, "MsiQueryGetError return\n"); + err = libmsi_query_get_error( hquery, NULL, &sz ); + ok(err == LIBMSI_DB_ERROR_NOERROR, "libmsi_query_get_error return\n"); ok(sz == 0, "size not zero\n"); /* see if it really has an error */ sz = sizeof buffer; buffer[0] = 'x'; - err = MsiQueryGetError( hquery, buffer, &sz ); - ok(err == LIBMSI_DB_ERROR_NOERROR, "MsiQueryGetError return\n"); + err = libmsi_query_get_error( hquery, buffer, &sz ); + ok(err == LIBMSI_DB_ERROR_NOERROR, "libmsi_query_get_error return\n"); ok(buffer[0] == 0, "buffer not cleared\n"); ok(sz == 0, "size not zero\n"); - r = MsiQueryExecute(hquery, 0); - ok(r == ERROR_SUCCESS, "MsiQueryExecute failed\n"); + r = libmsi_query_execute(hquery, 0); + ok(r == ERROR_SUCCESS, "libmsi_query_execute failed\n"); /* try some invalid records */ - r = MsiQueryModify(hquery, LIBMSI_MODIFY_INSERT, 0 ); - ok(r == ERROR_INVALID_HANDLE, "MsiQueryModify failed\n"); - r = MsiQueryModify(hquery, -1, 0 ); - ok(r == ERROR_INVALID_HANDLE, "MsiQueryModify failed\n"); + r = libmsi_query_modify(hquery, LIBMSI_MODIFY_INSERT, 0 ); + ok(r == ERROR_INVALID_HANDLE, "libmsi_query_modify failed\n"); + r = libmsi_query_modify(hquery, -1, 0 ); + ok(r == ERROR_INVALID_HANDLE, "libmsi_query_modify failed\n"); /* try an small record */ - hrec = MsiCreateRecord(1); - r = MsiQueryModify(hquery, -1, hrec ); - ok(r == ERROR_INVALID_DATA, "MsiQueryModify failed\n"); + hrec = libmsi_record_create(1); + r = libmsi_query_modify(hquery, -1, hrec ); + ok(r == ERROR_INVALID_DATA, "libmsi_query_modify failed\n"); sz = sizeof buffer; buffer[0] = 'x'; - err = MsiQueryGetError( hquery, buffer, &sz ); - ok(err == LIBMSI_DB_ERROR_NOERROR, "MsiQueryGetError return\n"); + err = libmsi_query_get_error( hquery, buffer, &sz ); + ok(err == LIBMSI_DB_ERROR_NOERROR, "libmsi_query_get_error return\n"); ok(buffer[0] == 0, "buffer not cleared\n"); ok(sz == 0, "size not zero\n"); - r = MsiCloseHandle(hrec); + r = libmsi_unref(hrec); ok(r == ERROR_SUCCESS, "failed to close record\n"); /* insert a valid record */ - hrec = MsiCreateRecord(3); + hrec = libmsi_record_create(3); - r = MsiRecordSetInteger(hrec, 1, 1); + r = libmsi_record_set_int(hrec, 1, 1); ok(r == ERROR_SUCCESS, "failed to set integer\n"); - r = MsiRecordSetString(hrec, 2, "bob"); + r = libmsi_record_set_string(hrec, 2, "bob"); ok(r == ERROR_SUCCESS, "failed to set string\n"); - r = MsiRecordSetString(hrec, 3, "7654321"); + r = libmsi_record_set_string(hrec, 3, "7654321"); ok(r == ERROR_SUCCESS, "failed to set string\n"); - r = MsiQueryExecute(hquery, 0); - ok(r == ERROR_SUCCESS, "MsiQueryExecute failed\n"); - r = MsiQueryModify(hquery, LIBMSI_MODIFY_INSERT_TEMPORARY, hrec ); - ok(r == ERROR_SUCCESS, "MsiQueryModify failed\n"); + r = libmsi_query_execute(hquery, 0); + ok(r == ERROR_SUCCESS, "libmsi_query_execute failed\n"); + r = libmsi_query_modify(hquery, LIBMSI_MODIFY_INSERT_TEMPORARY, hrec ); + ok(r == ERROR_SUCCESS, "libmsi_query_modify failed\n"); /* validate it */ - r = MsiQueryExecute(hquery, 0); - ok(r == ERROR_SUCCESS, "MsiQueryExecute failed\n"); + r = libmsi_query_execute(hquery, 0); + ok(r == ERROR_SUCCESS, "libmsi_query_execute failed\n"); - r = MsiQueryModify(hquery, LIBMSI_MODIFY_VALIDATE_NEW, hrec ); - ok(r == ERROR_INVALID_DATA, "MsiQueryModify failed %u\n", r); + r = libmsi_query_modify(hquery, LIBMSI_MODIFY_VALIDATE_NEW, hrec ); + ok(r == ERROR_INVALID_DATA, "libmsi_query_modify failed %u\n", r); sz = sizeof buffer; buffer[0] = 'x'; - err = MsiQueryGetError( hquery, buffer, &sz ); - ok(err == LIBMSI_DB_ERROR_DUPLICATEKEY, "MsiQueryGetError returned %u\n", err); + err = libmsi_query_get_error( hquery, buffer, &sz ); + ok(err == LIBMSI_DB_ERROR_DUPLICATEKEY, "libmsi_query_get_error returned %u\n", err); ok(!strcmp(buffer, "id"), "expected \"id\" c, got \"%s\"\n", buffer); ok(sz == 2, "size not 2\n"); /* insert the same thing again */ - r = MsiQueryExecute(hquery, 0); - ok(r == ERROR_SUCCESS, "MsiQueryExecute failed\n"); + r = libmsi_query_execute(hquery, 0); + ok(r == ERROR_SUCCESS, "libmsi_query_execute failed\n"); /* should fail ... */ - r = MsiQueryModify(hquery, LIBMSI_MODIFY_INSERT_TEMPORARY, hrec ); - ok(r == ERROR_FUNCTION_FAILED, "MsiQueryModify failed\n"); + r = libmsi_query_modify(hquery, LIBMSI_MODIFY_INSERT_TEMPORARY, hrec ); + ok(r == ERROR_FUNCTION_FAILED, "libmsi_query_modify failed\n"); /* try to merge the same record */ - r = MsiQueryExecute(hquery, 0); - ok(r == ERROR_SUCCESS, "MsiQueryExecute failed\n"); - r = MsiQueryModify(hquery, LIBMSI_MODIFY_MERGE, hrec ); - ok(r == ERROR_SUCCESS, "MsiQueryModify failed\n"); + r = libmsi_query_execute(hquery, 0); + ok(r == ERROR_SUCCESS, "libmsi_query_execute failed\n"); + r = libmsi_query_modify(hquery, LIBMSI_MODIFY_MERGE, hrec ); + ok(r == ERROR_SUCCESS, "libmsi_query_modify failed\n"); - r = MsiCloseHandle(hrec); + r = libmsi_unref(hrec); ok(r == ERROR_SUCCESS, "failed to close record\n"); /* try merging a new record */ - hrec = MsiCreateRecord(3); + hrec = libmsi_record_create(3); - r = MsiRecordSetInteger(hrec, 1, 10); + r = libmsi_record_set_int(hrec, 1, 10); ok(r == ERROR_SUCCESS, "failed to set integer\n"); - r = MsiRecordSetString(hrec, 2, "pepe"); + r = libmsi_record_set_string(hrec, 2, "pepe"); ok(r == ERROR_SUCCESS, "failed to set string\n"); - r = MsiRecordSetString(hrec, 3, "7654321"); + r = libmsi_record_set_string(hrec, 3, "7654321"); ok(r == ERROR_SUCCESS, "failed to set string\n"); - r = MsiQueryModify(hquery, LIBMSI_MODIFY_MERGE, hrec ); - ok(r == ERROR_SUCCESS, "MsiQueryModify failed\n"); - r = MsiQueryExecute(hquery, 0); - ok(r == ERROR_SUCCESS, "MsiQueryExecute failed\n"); + r = libmsi_query_modify(hquery, LIBMSI_MODIFY_MERGE, hrec ); + ok(r == ERROR_SUCCESS, "libmsi_query_modify failed\n"); + r = libmsi_query_execute(hquery, 0); + ok(r == ERROR_SUCCESS, "libmsi_query_execute failed\n"); - r = MsiCloseHandle(hrec); + r = libmsi_unref(hrec); ok(r == ERROR_SUCCESS, "failed to close record\n"); - r = MsiQueryClose(hquery); - ok(r == ERROR_SUCCESS, "MsiQueryClose failed\n"); - r = MsiCloseHandle(hquery); - ok(r == ERROR_SUCCESS, "MsiCloseHandle failed\n"); + r = libmsi_query_close(hquery); + ok(r == ERROR_SUCCESS, "libmsi_query_close failed\n"); + r = libmsi_unref(hquery); + ok(r == ERROR_SUCCESS, "libmsi_unref failed\n"); sql = "SELECT * FROM `phone`"; - r = MsiDatabaseOpenQuery(hdb, sql, &hquery); - ok(r == ERROR_SUCCESS, "MsiDatabaseOpenQuery failed\n"); + r = libmsi_database_open_query(hdb, sql, &hquery); + ok(r == ERROR_SUCCESS, "libmsi_database_open_query failed\n"); - r = MsiQueryExecute(hquery, 0); - ok(r == ERROR_SUCCESS, "MsiQueryExecute failed\n"); + r = libmsi_query_execute(hquery, 0); + ok(r == ERROR_SUCCESS, "libmsi_query_execute failed\n"); - r = MsiQueryFetch(hquery, &hrec); - ok(r == ERROR_SUCCESS, "MsiQueryFetch failed\n"); + r = libmsi_query_fetch(hquery, &hrec); + ok(r == ERROR_SUCCESS, "libmsi_query_fetch failed\n"); - r = MsiRecordGetInteger(hrec, 1); + r = libmsi_record_get_integer(hrec, 1); ok(r == 1, "Expected 1, got %d\n", r); sz = sizeof(buffer); - r = MsiRecordGetString(hrec, 2, buffer, &sz); - ok(r == ERROR_SUCCESS, "MsiRecordGetString failed\n"); + r = libmsi_record_get_string(hrec, 2, buffer, &sz); + ok(r == ERROR_SUCCESS, "libmsi_record_get_string failed\n"); ok(!strcmp(buffer, "bob"), "Expected bob, got %s\n", buffer); sz = sizeof(buffer); - r = MsiRecordGetString(hrec, 3, buffer, &sz); - ok(r == ERROR_SUCCESS, "MsiRecordGetString failed\n"); + r = libmsi_record_get_string(hrec, 3, buffer, &sz); + ok(r == ERROR_SUCCESS, "libmsi_record_get_string failed\n"); ok(!strcmp(buffer, "7654321"), "Expected 7654321, got %s\n", buffer); /* update the query, non-primary key */ - r = MsiRecordSetString(hrec, 3, "3141592"); - ok(r == ERROR_SUCCESS, "MsiRecordSetString failed\n"); + r = libmsi_record_set_string(hrec, 3, "3141592"); + ok(r == ERROR_SUCCESS, "libmsi_record_set_string failed\n"); - r = MsiQueryModify(hquery, LIBMSI_MODIFY_UPDATE, hrec); - ok(r == ERROR_SUCCESS, "MsiQueryModify failed\n"); + r = libmsi_query_modify(hquery, LIBMSI_MODIFY_UPDATE, hrec); + ok(r == ERROR_SUCCESS, "libmsi_query_modify failed\n"); /* do it again */ - r = MsiQueryModify(hquery, LIBMSI_MODIFY_UPDATE, hrec); - ok(r == ERROR_SUCCESS, "MsiQueryModify failed: %d\n", r); + r = libmsi_query_modify(hquery, LIBMSI_MODIFY_UPDATE, hrec); + ok(r == ERROR_SUCCESS, "libmsi_query_modify failed: %d\n", r); /* update the query, primary key */ - r = MsiRecordSetInteger(hrec, 1, 5); - ok(r == ERROR_SUCCESS, "MsiRecordSetInteger failed\n"); + r = libmsi_record_set_int(hrec, 1, 5); + ok(r == ERROR_SUCCESS, "libmsi_record_set_int failed\n"); - r = MsiQueryModify(hquery, LIBMSI_MODIFY_UPDATE, hrec); - ok(r == ERROR_FUNCTION_FAILED, "MsiQueryModify failed\n"); + r = libmsi_query_modify(hquery, LIBMSI_MODIFY_UPDATE, hrec); + ok(r == ERROR_FUNCTION_FAILED, "libmsi_query_modify failed\n"); - r = MsiCloseHandle(hrec); + r = libmsi_unref(hrec); ok(r == ERROR_SUCCESS, "failed to close record\n"); - r = MsiQueryClose(hquery); - ok(r == ERROR_SUCCESS, "MsiQueryClose failed\n"); - r = MsiCloseHandle(hquery); - ok(r == ERROR_SUCCESS, "MsiCloseHandle failed\n"); + r = libmsi_query_close(hquery); + ok(r == ERROR_SUCCESS, "libmsi_query_close failed\n"); + r = libmsi_unref(hquery); + ok(r == ERROR_SUCCESS, "libmsi_unref failed\n"); sql = "SELECT * FROM `phone`"; - r = MsiDatabaseOpenQuery(hdb, sql, &hquery); - ok(r == ERROR_SUCCESS, "MsiDatabaseOpenQuery failed\n"); + r = libmsi_database_open_query(hdb, sql, &hquery); + ok(r == ERROR_SUCCESS, "libmsi_database_open_query failed\n"); - r = MsiQueryExecute(hquery, 0); - ok(r == ERROR_SUCCESS, "MsiQueryExecute failed\n"); + r = libmsi_query_execute(hquery, 0); + ok(r == ERROR_SUCCESS, "libmsi_query_execute failed\n"); - r = MsiQueryFetch(hquery, &hrec); - ok(r == ERROR_SUCCESS, "MsiQueryFetch failed\n"); + r = libmsi_query_fetch(hquery, &hrec); + ok(r == ERROR_SUCCESS, "libmsi_query_fetch failed\n"); - r = MsiRecordGetInteger(hrec, 1); + r = libmsi_record_get_integer(hrec, 1); ok(r == 1, "Expected 1, got %d\n", r); sz = sizeof(buffer); - r = MsiRecordGetString(hrec, 2, buffer, &sz); - ok(r == ERROR_SUCCESS, "MsiRecordGetString failed\n"); + r = libmsi_record_get_string(hrec, 2, buffer, &sz); + ok(r == ERROR_SUCCESS, "libmsi_record_get_string failed\n"); ok(!strcmp(buffer, "bob"), "Expected bob, got %s\n", buffer); sz = sizeof(buffer); - r = MsiRecordGetString(hrec, 3, buffer, &sz); - ok(r == ERROR_SUCCESS, "MsiRecordGetString failed\n"); + r = libmsi_record_get_string(hrec, 3, buffer, &sz); + ok(r == ERROR_SUCCESS, "libmsi_record_get_string failed\n"); ok(!strcmp(buffer, "3141592"), "Expected 3141592, got %s\n", buffer); - r = MsiCloseHandle(hrec); + r = libmsi_unref(hrec); ok(r == ERROR_SUCCESS, "failed to close record\n"); /* use a record that doesn't come from a query fetch */ - hrec = MsiCreateRecord(3); - ok(hrec != 0, "MsiCreateRecord failed\n"); + hrec = libmsi_record_create(3); + ok(hrec != 0, "libmsi_record_create failed\n"); - r = MsiRecordSetInteger(hrec, 1, 3); + r = libmsi_record_set_int(hrec, 1, 3); ok(r == ERROR_SUCCESS, "failed to set integer\n"); - r = MsiRecordSetString(hrec, 2, "jane"); + r = libmsi_record_set_string(hrec, 2, "jane"); ok(r == ERROR_SUCCESS, "failed to set string\n"); - r = MsiRecordSetString(hrec, 3, "112358"); + r = libmsi_record_set_string(hrec, 3, "112358"); ok(r == ERROR_SUCCESS, "failed to set string\n"); - r = MsiQueryModify(hquery, LIBMSI_MODIFY_UPDATE, hrec); + r = libmsi_query_modify(hquery, LIBMSI_MODIFY_UPDATE, hrec); ok(r == ERROR_FUNCTION_FAILED, "Expected ERROR_FUNCTION_FAILED, got %d\n", r); - r = MsiCloseHandle(hrec); + r = libmsi_unref(hrec); ok(r == ERROR_SUCCESS, "failed to close record\n"); /* use a record that doesn't come from a query fetch, primary key matches */ - hrec = MsiCreateRecord(3); - ok(hrec != 0, "MsiCreateRecord failed\n"); + hrec = libmsi_record_create(3); + ok(hrec != 0, "libmsi_record_create failed\n"); - r = MsiRecordSetInteger(hrec, 1, 1); + r = libmsi_record_set_int(hrec, 1, 1); ok(r == ERROR_SUCCESS, "failed to set integer\n"); - r = MsiRecordSetString(hrec, 2, "jane"); + r = libmsi_record_set_string(hrec, 2, "jane"); ok(r == ERROR_SUCCESS, "failed to set string\n"); - r = MsiRecordSetString(hrec, 3, "112358"); + r = libmsi_record_set_string(hrec, 3, "112358"); ok(r == ERROR_SUCCESS, "failed to set string\n"); - r = MsiQueryModify(hquery, LIBMSI_MODIFY_UPDATE, hrec); - ok(r == ERROR_FUNCTION_FAILED, "MsiQueryModify failed\n"); + r = libmsi_query_modify(hquery, LIBMSI_MODIFY_UPDATE, hrec); + ok(r == ERROR_FUNCTION_FAILED, "libmsi_query_modify failed\n"); - r = MsiCloseHandle(hrec); + r = libmsi_unref(hrec); ok(r == ERROR_SUCCESS, "failed to close record\n"); - hrec = MsiCreateRecord(3); + hrec = libmsi_record_create(3); - r = MsiRecordSetInteger(hrec, 1, 2); + r = libmsi_record_set_int(hrec, 1, 2); ok(r == ERROR_SUCCESS, "failed to set integer\n"); - r = MsiRecordSetString(hrec, 2, "nick"); + r = libmsi_record_set_string(hrec, 2, "nick"); ok(r == ERROR_SUCCESS, "failed to set string\n"); - r = MsiRecordSetString(hrec, 3, "141421"); + r = libmsi_record_set_string(hrec, 3, "141421"); ok(r == ERROR_SUCCESS, "failed to set string\n"); - r = MsiQueryExecute(hquery, 0); - ok(r == ERROR_SUCCESS, "MsiQueryExecute failed\n"); - r = MsiQueryModify(hquery, LIBMSI_MODIFY_INSERT_TEMPORARY, hrec ); - ok(r == ERROR_SUCCESS, "MsiQueryModify failed\n"); + r = libmsi_query_execute(hquery, 0); + ok(r == ERROR_SUCCESS, "libmsi_query_execute failed\n"); + r = libmsi_query_modify(hquery, LIBMSI_MODIFY_INSERT_TEMPORARY, hrec ); + ok(r == ERROR_SUCCESS, "libmsi_query_modify failed\n"); - r = MsiCloseHandle(hrec); - ok(r == ERROR_SUCCESS, "MsiCloseHandle failed\n"); - r = MsiQueryClose(hquery); - ok(r == ERROR_SUCCESS, "MsiQueryClose failed\n"); - r = MsiCloseHandle(hquery); - ok(r == ERROR_SUCCESS, "MsiCloseHandle failed\n"); + r = libmsi_unref(hrec); + ok(r == ERROR_SUCCESS, "libmsi_unref failed\n"); + r = libmsi_query_close(hquery); + ok(r == ERROR_SUCCESS, "libmsi_query_close failed\n"); + r = libmsi_unref(hquery); + ok(r == ERROR_SUCCESS, "libmsi_unref failed\n"); sql = "SELECT * FROM `phone` WHERE `id` = 1"; - r = MsiDatabaseOpenQuery(hdb, sql, &hquery); - ok(r == ERROR_SUCCESS, "MsiDatabaseOpenQuery failed\n"); - r = MsiQueryExecute(hquery, 0); - ok(r == ERROR_SUCCESS, "MsiQueryExecute failed\n"); - r = MsiQueryFetch(hquery, &hrec); - ok(r == ERROR_SUCCESS, "MsiQueryFetch failed\n"); + r = libmsi_database_open_query(hdb, sql, &hquery); + ok(r == ERROR_SUCCESS, "libmsi_database_open_query failed\n"); + r = libmsi_query_execute(hquery, 0); + ok(r == ERROR_SUCCESS, "libmsi_query_execute failed\n"); + r = libmsi_query_fetch(hquery, &hrec); + ok(r == ERROR_SUCCESS, "libmsi_query_fetch failed\n"); /* change the id to match the second row */ - r = MsiRecordSetInteger(hrec, 1, 2); + r = libmsi_record_set_int(hrec, 1, 2); ok(r == ERROR_SUCCESS, "failed to set integer\n"); - r = MsiRecordSetString(hrec, 2, "jerry"); + r = libmsi_record_set_string(hrec, 2, "jerry"); ok(r == ERROR_SUCCESS, "failed to set string\n"); - r = MsiQueryModify(hquery, LIBMSI_MODIFY_UPDATE, hrec); - ok(r == ERROR_FUNCTION_FAILED, "MsiQueryModify failed\n"); + r = libmsi_query_modify(hquery, LIBMSI_MODIFY_UPDATE, hrec); + ok(r == ERROR_FUNCTION_FAILED, "libmsi_query_modify failed\n"); - r = MsiCloseHandle(hrec); + r = libmsi_unref(hrec); ok(r == ERROR_SUCCESS, "failed to close record\n"); - r = MsiQueryClose(hquery); - ok(r == ERROR_SUCCESS, "MsiQueryClose failed\n"); - r = MsiCloseHandle(hquery); - ok(r == ERROR_SUCCESS, "MsiCloseHandle failed\n"); + r = libmsi_query_close(hquery); + ok(r == ERROR_SUCCESS, "libmsi_query_close failed\n"); + r = libmsi_unref(hquery); + ok(r == ERROR_SUCCESS, "libmsi_unref failed\n"); /* broader search */ sql = "SELECT * FROM `phone` ORDER BY `id`"; - r = MsiDatabaseOpenQuery(hdb, sql, &hquery); - ok(r == ERROR_SUCCESS, "MsiDatabaseOpenQuery failed\n"); - r = MsiQueryExecute(hquery, 0); - ok(r == ERROR_SUCCESS, "MsiQueryExecute failed\n"); - r = MsiQueryFetch(hquery, &hrec); - ok(r == ERROR_SUCCESS, "MsiQueryFetch failed\n"); + r = libmsi_database_open_query(hdb, sql, &hquery); + ok(r == ERROR_SUCCESS, "libmsi_database_open_query failed\n"); + r = libmsi_query_execute(hquery, 0); + ok(r == ERROR_SUCCESS, "libmsi_query_execute failed\n"); + r = libmsi_query_fetch(hquery, &hrec); + ok(r == ERROR_SUCCESS, "libmsi_query_fetch failed\n"); /* change the id to match the second row */ - r = MsiRecordSetInteger(hrec, 1, 2); + r = libmsi_record_set_int(hrec, 1, 2); ok(r == ERROR_SUCCESS, "failed to set integer\n"); - r = MsiRecordSetString(hrec, 2, "jerry"); + r = libmsi_record_set_string(hrec, 2, "jerry"); ok(r == ERROR_SUCCESS, "failed to set string\n"); - r = MsiQueryModify(hquery, LIBMSI_MODIFY_UPDATE, hrec); - ok(r == ERROR_FUNCTION_FAILED, "MsiQueryModify failed\n"); + r = libmsi_query_modify(hquery, LIBMSI_MODIFY_UPDATE, hrec); + ok(r == ERROR_FUNCTION_FAILED, "libmsi_query_modify failed\n"); - r = MsiCloseHandle(hrec); + r = libmsi_unref(hrec); ok(r == ERROR_SUCCESS, "failed to close record\n"); - r = MsiQueryClose(hquery); - ok(r == ERROR_SUCCESS, "MsiQueryClose failed\n"); - r = MsiCloseHandle(hquery); - ok(r == ERROR_SUCCESS, "MsiCloseHandle failed\n"); + r = libmsi_query_close(hquery); + ok(r == ERROR_SUCCESS, "libmsi_query_close failed\n"); + r = libmsi_unref(hquery); + ok(r == ERROR_SUCCESS, "libmsi_unref failed\n"); - r = MsiCloseHandle( hdb ); - ok(r == ERROR_SUCCESS, "MsiOpenDatabase close failed\n"); + r = libmsi_unref( hdb ); + ok(r == ERROR_SUCCESS, "libmsi_database_open close failed\n"); } static LibmsiDatabase *create_db(void) @@ -1064,12 +1064,12 @@ static LibmsiDatabase *create_db(void) DeleteFile(msifile); /* create an empty database */ - res = MsiOpenDatabase(msifile, LIBMSI_DB_OPEN_CREATE, &hdb ); + res = libmsi_database_open(msifile, LIBMSI_DB_OPEN_CREATE, &hdb ); ok( res == ERROR_SUCCESS , "Failed to create database\n" ); if( res != ERROR_SUCCESS ) return hdb; - res = MsiDatabaseCommit( hdb ); + res = libmsi_database_commit( hdb ); ok( res == ERROR_SUCCESS , "Failed to commit database\n" ); return hdb; @@ -1089,51 +1089,51 @@ static void test_getcolinfo(void) ok( hdb, "failed to create db\n"); /* tables should be present */ - r = MsiDatabaseOpenQuery(hdb, "select * from _Tables", &hquery); + r = libmsi_database_open_query(hdb, "select * from _Tables", &hquery); ok( r == ERROR_SUCCESS, "failed to open query\n"); - r = MsiQueryExecute(hquery, 0); + r = libmsi_query_execute(hquery, 0); ok( r == ERROR_SUCCESS, "failed to execute query\n"); /* check that NAMES works */ rec = 0; - r = MsiQueryGetColumnInfo( hquery, LIBMSI_COL_INFO_NAMES, &rec ); + r = libmsi_query_get_column_info( hquery, LIBMSI_COL_INFO_NAMES, &rec ); ok( r == ERROR_SUCCESS, "failed to get names\n"); sz = sizeof buffer; - r = MsiRecordGetString(rec, 1, buffer, &sz ); + r = libmsi_record_get_string(rec, 1, buffer, &sz ); ok( r == ERROR_SUCCESS, "failed to get string\n"); ok( !strcmp(buffer,"Name"), "_Tables has wrong column name\n"); - r = MsiCloseHandle( rec ); + r = libmsi_unref( rec ); ok( r == ERROR_SUCCESS, "failed to close record handle\n"); /* check that TYPES works */ rec = 0; - r = MsiQueryGetColumnInfo( hquery, LIBMSI_COL_INFO_TYPES, &rec ); + r = libmsi_query_get_column_info( hquery, LIBMSI_COL_INFO_TYPES, &rec ); ok( r == ERROR_SUCCESS, "failed to get names\n"); sz = sizeof buffer; - r = MsiRecordGetString(rec, 1, buffer, &sz ); + r = libmsi_record_get_string(rec, 1, buffer, &sz ); ok( r == ERROR_SUCCESS, "failed to get string\n"); ok( !strcmp(buffer,"s64"), "_Tables has wrong column type\n"); - r = MsiCloseHandle( rec ); + r = libmsi_unref( rec ); ok( r == ERROR_SUCCESS, "failed to close record handle\n"); /* check that invalid values fail */ rec = 0; - r = MsiQueryGetColumnInfo( hquery, 100, &rec ); + r = libmsi_query_get_column_info( hquery, 100, &rec ); ok( r == ERROR_INVALID_PARAMETER, "wrong error code\n"); ok( rec == 0, "returned a record\n"); - r = MsiQueryGetColumnInfo( hquery, LIBMSI_COL_INFO_TYPES, NULL ); + r = libmsi_query_get_column_info( hquery, LIBMSI_COL_INFO_TYPES, NULL ); ok( r == ERROR_INVALID_PARAMETER, "wrong error code\n"); - r = MsiQueryGetColumnInfo( 0, LIBMSI_COL_INFO_TYPES, &rec ); + r = libmsi_query_get_column_info( 0, LIBMSI_COL_INFO_TYPES, &rec ); ok( r == ERROR_INVALID_HANDLE, "wrong error code\n"); - r = MsiQueryClose(hquery); + r = libmsi_query_close(hquery); ok( r == ERROR_SUCCESS, "failed to close query\n"); - r = MsiCloseHandle(hquery); + r = libmsi_unref(hquery); ok( r == ERROR_SUCCESS, "failed to close query handle\n"); - r = MsiCloseHandle(hdb); + r = libmsi_unref(hdb); ok( r == ERROR_SUCCESS, "failed to close database\n"); } @@ -1143,17 +1143,17 @@ static LibmsiRecord *get_column_info(LibmsiDatabase *hdb, const char *sql, Libms LibmsiRecord *rec = 0; unsigned r; - r = MsiDatabaseOpenQuery(hdb, sql, &hquery); + r = libmsi_database_open_query(hdb, sql, &hquery); if( r != ERROR_SUCCESS ) return rec; - r = MsiQueryExecute(hquery, 0); + r = libmsi_query_execute(hquery, 0); if( r == ERROR_SUCCESS ) { - MsiQueryGetColumnInfo( hquery, type, &rec ); + libmsi_query_get_column_info( hquery, type, &rec ); } - MsiQueryClose(hquery); - MsiCloseHandle(hquery); + libmsi_query_close(hquery); + libmsi_unref(hquery); return rec; } @@ -1166,26 +1166,26 @@ static unsigned get_columns_table_type(LibmsiDatabase *hdb, const char *table, u sprintf(sql, "select * from `_Columns` where `Table` = '%s'", table ); - r = MsiDatabaseOpenQuery(hdb, sql, &hquery); + r = libmsi_database_open_query(hdb, sql, &hquery); if( r != ERROR_SUCCESS ) return r; - r = MsiQueryExecute(hquery, 0); + r = libmsi_query_execute(hquery, 0); if( r == ERROR_SUCCESS ) { while (1) { - r = MsiQueryFetch( hquery, &rec ); + r = libmsi_query_fetch( hquery, &rec ); if( r != ERROR_SUCCESS) break; - r = MsiRecordGetInteger( rec, 2 ); + r = libmsi_record_get_integer( rec, 2 ); if (r == field) - type = MsiRecordGetInteger( rec, 4 ); - MsiCloseHandle( rec ); + type = libmsi_record_get_integer( rec, 4 ); + libmsi_unref( rec ); } } - MsiQueryClose(hquery); - MsiCloseHandle(hquery); + libmsi_query_close(hquery); + libmsi_unref(hquery); return type; } @@ -1196,7 +1196,7 @@ static bool check_record( LibmsiRecord *rec, unsigned field, const char *val ) unsigned sz; sz = sizeof buffer; - r = MsiRecordGetString( rec, field, buffer, &sz ); + r = libmsi_record_get_string( rec, field, buffer, &sz ); return (r == ERROR_SUCCESS ) && !strcmp(val, buffer); } @@ -1233,7 +1233,7 @@ static void test_querygetcolumninfo(void) ok( check_record( rec, 6, "I4"), "wrong record type\n"); ok( check_record( rec, 7, "S0"), "wrong record type\n"); - MsiCloseHandle( rec ); + libmsi_unref( rec ); /* check the type in _Columns */ ok( 0x3dff == get_columns_table_type(hdb, "Properties", 1 ), "_columns table wrong\n"); @@ -1256,7 +1256,7 @@ static void test_querygetcolumninfo(void) ok( check_record( rec, 6, "Longvalue"), "wrong record type\n"); ok( check_record( rec, 7, "Longcharvalue"), "wrong record type\n"); - MsiCloseHandle( rec ); + libmsi_unref( rec ); r = run_query( hdb, 0, "CREATE TABLE `Binary` " @@ -1270,7 +1270,7 @@ static void test_querygetcolumninfo(void) ok( check_record( rec, 1, "S255"), "wrong record type\n"); ok( check_record( rec, 2, "V0"), "wrong record type\n"); - MsiCloseHandle( rec ); + libmsi_unref( rec ); /* check the type in _Columns */ ok( 0x3dff == get_columns_table_type(hdb, "Binary", 1 ), "_columns table wrong\n"); @@ -1282,7 +1282,7 @@ static void test_querygetcolumninfo(void) ok( check_record( rec, 1, "Name"), "wrong record type\n"); ok( check_record( rec, 2, "Data"), "wrong record type\n"); - MsiCloseHandle( rec ); + libmsi_unref( rec ); r = run_query( hdb, 0, "CREATE TABLE `UIText` " @@ -1296,15 +1296,15 @@ static void test_querygetcolumninfo(void) ok( rec, "failed to get column info record\n" ); ok( check_record( rec, 1, "Key"), "wrong record type\n"); ok( check_record( rec, 2, "Text"), "wrong record type\n"); - MsiCloseHandle( rec ); + libmsi_unref( rec ); rec = get_column_info( hdb, "select * from `UIText`", LIBMSI_COL_INFO_TYPES ); ok( rec, "failed to get column info record\n" ); ok( check_record( rec, 1, "s72"), "wrong record type\n"); ok( check_record( rec, 2, "L255"), "wrong record type\n"); - MsiCloseHandle( rec ); + libmsi_unref( rec ); - MsiCloseHandle( hdb ); + libmsi_unref( hdb ); } static void test_msiexport(void) @@ -1326,44 +1326,44 @@ static void test_msiexport(void) DeleteFile(msifile); - /* just MsiOpenDatabase should not create a file */ - r = MsiOpenDatabase(msifile, LIBMSI_DB_OPEN_CREATE, &hdb); - ok(r == ERROR_SUCCESS, "MsiOpenDatabase failed\n"); + /* just libmsi_database_open should not create a file */ + r = libmsi_database_open(msifile, LIBMSI_DB_OPEN_CREATE, &hdb); + ok(r == ERROR_SUCCESS, "libmsi_database_open failed\n"); /* create a table */ sql = "CREATE TABLE `phone` ( " "`id` INT, `name` CHAR(32), `number` CHAR(32) " "PRIMARY KEY `id`)"; - r = MsiDatabaseOpenQuery(hdb, sql, &hquery); - ok(r == ERROR_SUCCESS, "MsiDatabaseOpenQuery failed\n"); - r = MsiQueryExecute(hquery, 0); - ok(r == ERROR_SUCCESS, "MsiQueryExecute failed\n"); - r = MsiQueryClose(hquery); - ok(r == ERROR_SUCCESS, "MsiQueryClose failed\n"); - r = MsiCloseHandle(hquery); - ok(r == ERROR_SUCCESS, "MsiCloseHandle failed\n"); + r = libmsi_database_open_query(hdb, sql, &hquery); + ok(r == ERROR_SUCCESS, "libmsi_database_open_query failed\n"); + r = libmsi_query_execute(hquery, 0); + ok(r == ERROR_SUCCESS, "libmsi_query_execute failed\n"); + r = libmsi_query_close(hquery); + ok(r == ERROR_SUCCESS, "libmsi_query_close failed\n"); + r = libmsi_unref(hquery); + ok(r == ERROR_SUCCESS, "libmsi_unref failed\n"); /* insert a value into it */ sql = "INSERT INTO `phone` ( `id`, `name`, `number` )" "VALUES('1', 'Abe', '8675309')"; - r = MsiDatabaseOpenQuery(hdb, sql, &hquery); - ok(r == ERROR_SUCCESS, "MsiDatabaseOpenQuery failed\n"); - r = MsiQueryExecute(hquery, 0); - ok(r == ERROR_SUCCESS, "MsiQueryExecute failed\n"); - r = MsiQueryClose(hquery); - ok(r == ERROR_SUCCESS, "MsiQueryClose failed\n"); - r = MsiCloseHandle(hquery); - ok(r == ERROR_SUCCESS, "MsiCloseHandle failed\n"); + r = libmsi_database_open_query(hdb, sql, &hquery); + ok(r == ERROR_SUCCESS, "libmsi_database_open_query failed\n"); + r = libmsi_query_execute(hquery, 0); + ok(r == ERROR_SUCCESS, "libmsi_query_execute failed\n"); + r = libmsi_query_close(hquery); + ok(r == ERROR_SUCCESS, "libmsi_query_close failed\n"); + r = libmsi_unref(hquery); + ok(r == ERROR_SUCCESS, "libmsi_unref failed\n"); fd = open(file, O_WRONLY | O_BINARY | O_CREAT, 0644); ok(fd != -1, "open failed\n"); - r = MsiDatabaseExport(hdb, "phone", fd); - ok(r == ERROR_SUCCESS, "MsiDatabaseExport failed\n"); + r = libmsi_database_export(hdb, "phone", fd); + ok(r == ERROR_SUCCESS, "libmsi_database_export failed\n"); close(fd); - MsiCloseHandle(hdb); + libmsi_unref(hdb); /* check the data that was written */ length = 0; @@ -1396,9 +1396,9 @@ static void test_longstrings(void) const unsigned STRING_LENGTH = 0x10005; DeleteFile(msifile); - /* just MsiOpenDatabase should not create a file */ - r = MsiOpenDatabase(msifile, LIBMSI_DB_OPEN_CREATE, &hdb); - ok(r == ERROR_SUCCESS, "MsiOpenDatabase failed\n"); + /* just libmsi_database_open should not create a file */ + r = libmsi_database_open(msifile, LIBMSI_DB_OPEN_CREATE, &hdb); + ok(r == ERROR_SUCCESS, "libmsi_database_open failed\n"); /* create a table */ r = try_query( hdb, @@ -1412,35 +1412,35 @@ static void test_longstrings(void) memset(str+len, 'Z', STRING_LENGTH); strcpy(str+len+STRING_LENGTH, insert_query+len+1); r = try_query( hdb, str ); - ok(r == ERROR_SUCCESS, "MsiDatabaseOpenQuery failed\n"); + ok(r == ERROR_SUCCESS, "libmsi_database_open_query failed\n"); HeapFree(GetProcessHeap(), 0, str); - r = MsiDatabaseCommit(hdb); - ok(r == ERROR_SUCCESS, "MsiDatabaseCommit failed\n"); - MsiCloseHandle(hdb); + r = libmsi_database_commit(hdb); + ok(r == ERROR_SUCCESS, "libmsi_database_commit failed\n"); + libmsi_unref(hdb); - r = MsiOpenDatabase(msifile, LIBMSI_DB_OPEN_READONLY, &hdb); - ok(r == ERROR_SUCCESS, "MsiOpenDatabase failed\n"); + r = libmsi_database_open(msifile, LIBMSI_DB_OPEN_READONLY, &hdb); + ok(r == ERROR_SUCCESS, "libmsi_database_open failed\n"); - r = MsiDatabaseOpenQuery(hdb, "select * from `strings` where `id` = 1", &hquery); - ok(r == ERROR_SUCCESS, "MsiDatabaseOpenQuery failed\n"); + r = libmsi_database_open_query(hdb, "select * from `strings` where `id` = 1", &hquery); + ok(r == ERROR_SUCCESS, "libmsi_database_open_query failed\n"); - r = MsiQueryExecute(hquery, 0); - ok(r == ERROR_SUCCESS, "MsiQueryExecute failed\n"); + r = libmsi_query_execute(hquery, 0); + ok(r == ERROR_SUCCESS, "libmsi_query_execute failed\n"); - r = MsiQueryFetch(hquery, &hrec); - ok(r == ERROR_SUCCESS, "MsiQueryFetch failed\n"); + r = libmsi_query_fetch(hquery, &hrec); + ok(r == ERROR_SUCCESS, "libmsi_query_fetch failed\n"); - MsiQueryClose(hquery); - MsiCloseHandle(hquery); + libmsi_query_close(hquery); + libmsi_unref(hquery); - r = MsiRecordGetString(hrec, 2, NULL, &len); - ok(r == ERROR_SUCCESS, "MsiQueryFetch failed\n"); + r = libmsi_record_get_string(hrec, 2, NULL, &len); + ok(r == ERROR_SUCCESS, "libmsi_query_fetch failed\n"); ok(len == STRING_LENGTH, "string length wrong\n"); - MsiCloseHandle(hrec); - MsiCloseHandle(hdb); + libmsi_unref(hrec); + libmsi_unref(hdb); DeleteFile(msifile); } @@ -1491,12 +1491,12 @@ static void test_streamtable(void) "( `Value`, `Property` ) VALUES ( 'Prop', 'value' )" ); ok( r == ERROR_SUCCESS, "Failed to add to table\n" ); - r = MsiDatabaseCommit( hdb ); + r = libmsi_database_commit( hdb ); ok( r == ERROR_SUCCESS , "Failed to commit database\n" ); - MsiCloseHandle( hdb ); + libmsi_unref( hdb ); - r = MsiOpenDatabase(msifile, LIBMSI_DB_OPEN_TRANSACT, &hdb ); + r = libmsi_database_open(msifile, LIBMSI_DB_OPEN_TRANSACT, &hdb ); ok( r == ERROR_SUCCESS , "Failed to open database\n" ); /* check the column types */ @@ -1506,7 +1506,7 @@ static void test_streamtable(void) ok( check_record( rec, 1, "s62"), "wrong record type\n"); ok( check_record( rec, 2, "V0"), "wrong record type\n"); - MsiCloseHandle( rec ); + libmsi_unref( rec ); /* now try the names */ rec = get_column_info( hdb, "select * from `_Streams`", LIBMSI_COL_INFO_NAMES ); @@ -1515,195 +1515,195 @@ static void test_streamtable(void) ok( check_record( rec, 1, "Name"), "wrong record type\n"); ok( check_record( rec, 2, "Data"), "wrong record type\n"); - MsiCloseHandle( rec ); + libmsi_unref( rec ); query = NULL; - r = MsiDatabaseOpenQuery( hdb, + r = libmsi_database_open_query( hdb, "SELECT * FROM `_Streams` WHERE `Name` = '\5SummaryInformation'", &query ); ok( r == ERROR_SUCCESS, "Failed to open database query: %u\n", r ); - r = MsiQueryExecute( query, 0 ); + r = libmsi_query_execute( query, 0 ); ok( r == ERROR_SUCCESS, "Failed to execute query: %u\n", r ); - r = MsiQueryFetch( query, &rec ); + r = libmsi_query_fetch( query, &rec ); ok( r == ERROR_NO_MORE_ITEMS, "Unexpected result: %u\n", r ); - MsiCloseHandle( rec ); - MsiQueryClose( query ); - MsiCloseHandle( query ); + libmsi_unref( rec ); + libmsi_query_close( query ); + libmsi_unref( query ); /* create a summary information stream */ - r = MsiGetSummaryInformation( hdb, 1, &hsi ); + r = libmsi_database_get_summary_info( hdb, 1, &hsi ); ok( r == ERROR_SUCCESS, "Failed to get summary information handle: %u\n", r ); - r = MsiSummaryInfoSetProperty( hsi, MSI_PID_SECURITY, VT_I4, 2, NULL, NULL ); + r = libmsi_summary_info_set_property( hsi, MSI_PID_SECURITY, VT_I4, 2, NULL, NULL ); ok( r == ERROR_SUCCESS, "Failed to set property: %u\n", r ); - r = MsiSummaryInfoPersist( hsi ); + r = libmsi_summary_info_persist( hsi ); ok( r == ERROR_SUCCESS, "Failed to save summary information: %u\n", r ); - MsiCloseHandle( hsi ); + libmsi_unref( hsi ); query = NULL; - r = MsiDatabaseOpenQuery( hdb, + r = libmsi_database_open_query( hdb, "SELECT * FROM `_Streams` WHERE `Name` = '\5SummaryInformation'", &query ); ok( r == ERROR_SUCCESS, "Failed to open database query: %u\n", r ); - r = MsiQueryExecute( query, 0 ); + r = libmsi_query_execute( query, 0 ); ok( r == ERROR_SUCCESS, "Failed to execute query: %u\n", r ); - r = MsiQueryFetch( query, &rec ); + r = libmsi_query_fetch( query, &rec ); ok( r == ERROR_SUCCESS, "Unexpected result: %u\n", r ); - MsiCloseHandle( rec ); - MsiQueryClose( query ); - MsiCloseHandle( query ); + libmsi_unref( rec ); + libmsi_query_close( query ); + libmsi_unref( query ); /* insert a file into the _Streams table */ create_file( "test.txt" ); - rec = MsiCreateRecord( 2 ); - MsiRecordSetString( rec, 1, "data" ); + rec = libmsi_record_create( 2 ); + libmsi_record_set_string( rec, 1, "data" ); - r = MsiRecordSetStream( rec, 2, "test.txt" ); + r = libmsi_record_load_stream( rec, 2, "test.txt" ); ok( r == ERROR_SUCCESS, "Failed to add stream data to the record: %d\n", r); DeleteFile("test.txt"); query = NULL; - r = MsiDatabaseOpenQuery( hdb, + r = libmsi_database_open_query( hdb, "INSERT INTO `_Streams` ( `Name`, `Data` ) VALUES ( ?, ? )", &query ); ok( r == ERROR_SUCCESS, "Failed to open database query: %d\n", r); - r = MsiQueryExecute( query, rec ); + r = libmsi_query_execute( query, rec ); ok( r == ERROR_SUCCESS, "Failed to execute query: %d\n", r); - MsiCloseHandle( rec ); - MsiQueryClose( query ); - MsiCloseHandle( query ); + libmsi_unref( rec ); + libmsi_query_close( query ); + libmsi_unref( query ); /* insert another one */ create_file( "test1.txt" ); - rec = MsiCreateRecord( 2 ); - MsiRecordSetString( rec, 1, "data1" ); + rec = libmsi_record_create( 2 ); + libmsi_record_set_string( rec, 1, "data1" ); - r = MsiRecordSetStream( rec, 2, "test1.txt" ); + r = libmsi_record_load_stream( rec, 2, "test1.txt" ); ok( r == ERROR_SUCCESS, "Failed to add stream data to the record: %d\n", r); DeleteFile("test1.txt"); query = NULL; - r = MsiDatabaseOpenQuery( hdb, + r = libmsi_database_open_query( hdb, "INSERT INTO `_Streams` ( `Name`, `Data` ) VALUES ( ?, ? )", &query ); ok( r == ERROR_SUCCESS, "Failed to open database query: %d\n", r); - r = MsiQueryExecute( query, rec ); + r = libmsi_query_execute( query, rec ); ok( r == ERROR_SUCCESS, "Failed to execute query: %d\n", r); - MsiCloseHandle( rec ); - MsiQueryClose( query ); - MsiCloseHandle( query ); + libmsi_unref( rec ); + libmsi_query_close( query ); + libmsi_unref( query ); query = NULL; - r = MsiDatabaseOpenQuery( hdb, + r = libmsi_database_open_query( hdb, "SELECT `Name`, `Data` FROM `_Streams` WHERE `Name` = 'data'", &query ); ok( r == ERROR_SUCCESS, "Failed to open database query: %d\n", r); - r = MsiQueryExecute( query, 0 ); + r = libmsi_query_execute( query, 0 ); ok( r == ERROR_SUCCESS, "Failed to execute query: %d\n", r); - r = MsiQueryFetch( query, &rec ); + r = libmsi_query_fetch( query, &rec ); ok( r == ERROR_SUCCESS, "Failed to fetch record: %d\n", r); size = MAX_PATH; - r = MsiRecordGetString( rec, 1, file, &size ); + r = libmsi_record_get_string( rec, 1, file, &size ); ok( r == ERROR_SUCCESS, "Failed to get string: %d\n", r); ok( !strcmp(file, "data"), "Expected 'data', got %s\n", file); size = MAX_PATH; memset(buf, 0, MAX_PATH); - r = MsiRecordReadStream( rec, 2, buf, &size ); + r = libmsi_record_save_stream( rec, 2, buf, &size ); ok( r == ERROR_SUCCESS, "Failed to get stream: %d\n", r); ok( !strcmp(buf, "test.txt\n"), "Expected 'test.txt\\n', got %s\n", buf); - MsiCloseHandle( rec ); - MsiQueryClose( query ); - MsiCloseHandle( query ); + libmsi_unref( rec ); + libmsi_query_close( query ); + libmsi_unref( query ); query = NULL; - r = MsiDatabaseOpenQuery( hdb, + r = libmsi_database_open_query( hdb, "SELECT `Name`, `Data` FROM `_Streams` WHERE `Name` = 'data1'", &query ); ok( r == ERROR_SUCCESS, "Failed to open database query: %d\n", r); - r = MsiQueryExecute( query, 0 ); + r = libmsi_query_execute( query, 0 ); ok( r == ERROR_SUCCESS, "Failed to execute query: %d\n", r); - r = MsiQueryFetch( query, &rec ); + r = libmsi_query_fetch( query, &rec ); ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); size = MAX_PATH; - r = MsiRecordGetString( rec, 1, file, &size ); + r = libmsi_record_get_string( rec, 1, file, &size ); ok( r == ERROR_SUCCESS, "Failed to get string: %d\n", r); ok( !strcmp(file, "data1"), "Expected 'data1', got %s\n", file); size = MAX_PATH; memset(buf, 0, MAX_PATH); - r = MsiRecordReadStream( rec, 2, buf, &size ); + r = libmsi_record_save_stream( rec, 2, buf, &size ); ok( r == ERROR_SUCCESS, "Failed to get stream: %d\n", r); ok( !strcmp(buf, "test1.txt\n"), "Expected 'test1.txt\\n', got %s\n", buf); - MsiCloseHandle( rec ); - MsiQueryClose( query ); - MsiCloseHandle( query ); + libmsi_unref( rec ); + libmsi_query_close( query ); + libmsi_unref( query ); /* perform an update */ create_file( "test2.txt" ); - rec = MsiCreateRecord( 1 ); + rec = libmsi_record_create( 1 ); - r = MsiRecordSetStream( rec, 1, "test2.txt" ); + r = libmsi_record_load_stream( rec, 1, "test2.txt" ); ok( r == ERROR_SUCCESS, "Failed to add stream data to the record: %d\n", r); DeleteFile("test2.txt"); query = NULL; - r = MsiDatabaseOpenQuery( hdb, + r = libmsi_database_open_query( hdb, "UPDATE `_Streams` SET `Data` = ? WHERE `Name` = 'data1'", &query ); ok( r == ERROR_SUCCESS, "Failed to open database query: %d\n", r); - r = MsiQueryExecute( query, rec ); + r = libmsi_query_execute( query, rec ); ok( r == ERROR_SUCCESS, "Failed to execute query: %d\n", r); - MsiCloseHandle( rec ); - MsiQueryClose( query ); - MsiCloseHandle( query ); + libmsi_unref( rec ); + libmsi_query_close( query ); + libmsi_unref( query ); query = NULL; - r = MsiDatabaseOpenQuery( hdb, + r = libmsi_database_open_query( hdb, "SELECT `Name`, `Data` FROM `_Streams` WHERE `Name` = 'data1'", &query ); ok( r == ERROR_SUCCESS, "Failed to open database query: %d\n", r); - r = MsiQueryExecute( query, 0 ); + r = libmsi_query_execute( query, 0 ); ok( r == ERROR_SUCCESS, "Failed to execute query: %d\n", r); - r = MsiQueryFetch( query, &rec ); + r = libmsi_query_fetch( query, &rec ); ok( r == ERROR_SUCCESS, "Failed to fetch record: %d\n", r); size = MAX_PATH; - r = MsiRecordGetString( rec, 1, file, &size ); + r = libmsi_record_get_string( rec, 1, file, &size ); ok( r == ERROR_SUCCESS, "Failed to get string: %d\n", r); ok( !strcmp(file, "data1"), "Expected 'data1', got %s\n", file); size = MAX_PATH; memset(buf, 0, MAX_PATH); - r = MsiRecordReadStream( rec, 2, buf, &size ); + r = libmsi_record_save_stream( rec, 2, buf, &size ); ok( r == ERROR_SUCCESS, "Failed to get stream: %d\n", r); todo_wine ok( !strcmp(buf, "test2.txt\n"), "Expected 'test2.txt\\n', got %s\n", buf); - MsiCloseHandle( rec ); - MsiQueryClose( query ); - MsiCloseHandle( query ); - MsiCloseHandle( hdb ); + libmsi_unref( rec ); + libmsi_query_close( query ); + libmsi_unref( query ); + libmsi_unref( hdb ); DeleteFile(msifile); } @@ -1718,7 +1718,7 @@ static void test_binary(void) unsigned r; /* insert a file into the Binary table */ - r = MsiOpenDatabase(msifile, LIBMSI_DB_OPEN_CREATE, &hdb ); + r = libmsi_database_open(msifile, LIBMSI_DB_OPEN_CREATE, &hdb ); ok( r == ERROR_SUCCESS , "Failed to open database\n" ); sql = "CREATE TABLE `Binary` ( `Name` CHAR(72) NOT NULL, `ID` INT NOT NULL, `Data` OBJECT PRIMARY KEY `Name`, `ID`)"; @@ -1726,8 +1726,8 @@ static void test_binary(void) ok( r == ERROR_SUCCESS, "Cannot create Binary table: %d\n", r ); create_file( "test.txt" ); - rec = MsiCreateRecord( 1 ); - r = MsiRecordSetStream( rec, 1, "test.txt" ); + rec = libmsi_record_create( 1 ); + r = libmsi_record_load_stream( rec, 1, "test.txt" ); ok( r == ERROR_SUCCESS, "Failed to add stream data to the record: %d\n", r); DeleteFile( "test.txt" ); @@ -1735,17 +1735,17 @@ static void test_binary(void) r = run_query( hdb, rec, sql ); ok( r == ERROR_SUCCESS, "Insert into Binary table failed: %d\n", r ); - r = MsiCloseHandle( rec ); + r = libmsi_unref( rec ); ok( r == ERROR_SUCCESS , "Failed to close record handle\n" ); - r = MsiDatabaseCommit( hdb ); + r = libmsi_database_commit( hdb ); ok( r == ERROR_SUCCESS , "Failed to commit database\n" ); - r = MsiCloseHandle( hdb ); + r = libmsi_unref( hdb ); ok( r == ERROR_SUCCESS , "Failed to close database\n" ); /* read file from the Stream table */ - r = MsiOpenDatabase( msifile, LIBMSI_DB_OPEN_READONLY, &hdb ); + r = libmsi_database_open( msifile, LIBMSI_DB_OPEN_READONLY, &hdb ); ok( r == ERROR_SUCCESS , "Failed to open database\n" ); sql = "SELECT * FROM `_Streams`"; @@ -1753,17 +1753,17 @@ static void test_binary(void) ok( r == ERROR_SUCCESS, "SELECT query failed: %d\n", r ); size = MAX_PATH; - r = MsiRecordGetString( rec, 1, file, &size ); + r = libmsi_record_get_string( rec, 1, file, &size ); ok( r == ERROR_SUCCESS, "Failed to get string: %d\n", r ); ok( !strcmp(file, "Binary.filename1.1"), "Expected 'Binary.filename1.1', got %s\n", file ); size = MAX_PATH; memset( buf, 0, MAX_PATH ); - r = MsiRecordReadStream( rec, 2, buf, &size ); + r = libmsi_record_save_stream( rec, 2, buf, &size ); ok( r == ERROR_SUCCESS, "Failed to get stream: %d\n", r ); ok( !strcmp(buf, "test.txt\n"), "Expected 'test.txt\\n', got %s\n", buf ); - r = MsiCloseHandle( rec ); + r = libmsi_unref( rec ); ok( r == ERROR_SUCCESS , "Failed to close record handle\n" ); /* read file from the Binary table */ @@ -1772,20 +1772,20 @@ static void test_binary(void) ok( r == ERROR_SUCCESS, "SELECT query failed: %d\n", r ); size = MAX_PATH; - r = MsiRecordGetString( rec, 1, file, &size ); + r = libmsi_record_get_string( rec, 1, file, &size ); ok( r == ERROR_SUCCESS, "Failed to get string: %d\n", r ); ok( !strcmp(file, "filename1"), "Expected 'filename1', got %s\n", file ); size = MAX_PATH; memset( buf, 0, MAX_PATH ); - r = MsiRecordReadStream( rec, 3, buf, &size ); + r = libmsi_record_save_stream( rec, 3, buf, &size ); ok( r == ERROR_SUCCESS, "Failed to get stream: %d\n", r ); ok( !strcmp(buf, "test.txt\n"), "Expected 'test.txt\\n', got %s\n", buf ); - r = MsiCloseHandle( rec ); + r = libmsi_unref( rec ); ok( r == ERROR_SUCCESS , "Failed to close record handle\n" ); - r = MsiCloseHandle( hdb ); + r = libmsi_unref( hdb ); ok( r == ERROR_SUCCESS , "Failed to close database\n" ); DeleteFile( msifile ); @@ -1863,28 +1863,28 @@ static void test_where_not_in_selected(void) query = NULL; sql = "Select IESTable.Condition from CATable, IESTable where " "CATable.Action = IESTable.Action and CATable.Type = 32"; - r = MsiDatabaseOpenQuery(hdb, sql, &query); + r = libmsi_database_open_query(hdb, sql, &query); ok( r == ERROR_SUCCESS, "failed to open query: %d\n", r ); - r = MsiQueryExecute(query, 0); + r = libmsi_query_execute(query, 0); ok( r == ERROR_SUCCESS, "failed to execute query: %d\n", r ); - r = MsiQueryFetch(query, &rec); + r = libmsi_query_fetch(query, &rec); ok( r == ERROR_SUCCESS, "failed to fetch query: %d\n", r ); ok( check_record( rec, 1, "cond2"), "wrong condition\n"); - MsiCloseHandle( rec ); - r = MsiQueryFetch(query, &rec); + libmsi_unref( rec ); + r = libmsi_query_fetch(query, &rec); ok( r == ERROR_SUCCESS, "failed to fetch query: %d\n", r ); ok( check_record( rec, 1, "cond3"), "wrong condition\n"); - MsiCloseHandle( rec ); - MsiQueryClose(query); - MsiCloseHandle(query); + libmsi_unref( rec ); + libmsi_query_close(query); + libmsi_unref(query); - MsiCloseHandle( hdb ); + libmsi_unref( hdb ); DeleteFile(msifile); } @@ -1932,111 +1932,111 @@ static void test_where(void) sql = "SELECT * FROM `Media`"; r = do_query(hdb, sql, &rec); - ok(r == ERROR_SUCCESS, "MsiQueryFetch failed: %d\n", r); + ok(r == ERROR_SUCCESS, "libmsi_query_fetch failed: %d\n", r); ok( check_record( rec, 4, "zero.cab"), "wrong cabinet\n"); - MsiCloseHandle( rec ); + libmsi_unref( rec ); sql = "SELECT * FROM `Media` WHERE `LastSequence` >= 1"; r = do_query(hdb, sql, &rec); - ok(r == ERROR_SUCCESS, "MsiQueryFetch failed: %d\n", r); + ok(r == ERROR_SUCCESS, "libmsi_query_fetch failed: %d\n", r); ok( check_record( rec, 4, "one.cab"), "wrong cabinet\n"); - r = MsiRecordGetInteger(rec, 1); + r = libmsi_record_get_integer(rec, 1); ok( 2 == r, "field wrong\n"); - r = MsiRecordGetInteger(rec, 2); + r = libmsi_record_get_integer(rec, 2); ok( 1 == r, "field wrong\n"); - MsiCloseHandle( rec ); + libmsi_unref( rec ); sql = "SELECT `DiskId` FROM `Media` WHERE `LastSequence` >= 1 AND DiskId >= 0"; query = NULL; - r = MsiDatabaseOpenQuery(hdb, sql, &query); + r = libmsi_database_open_query(hdb, sql, &query); ok( r == ERROR_SUCCESS, "failed to open query: %d\n", r ); - r = MsiQueryExecute(query, 0); + r = libmsi_query_execute(query, 0); ok( r == ERROR_SUCCESS, "failed to execute query: %d\n", r ); - r = MsiQueryFetch(query, &rec); + r = libmsi_query_fetch(query, &rec); ok( r == ERROR_SUCCESS, "failed to fetch query: %d\n", r ); - count = MsiRecordGetFieldCount( rec ); + count = libmsi_record_get_field_count( rec ); ok( count == 1, "Expected 1 record fields, got %d\n", count ); size = MAX_PATH; - r = MsiRecordGetString( rec, 1, buf, &size ); + r = libmsi_record_get_string( rec, 1, buf, &size ); ok( r == ERROR_SUCCESS, "failed to get record string: %d\n", r ); ok( !strcmp( buf, "2" ), "For (row %d, column 1) expected '%d', got %s\n", 0, 2, buf ); - MsiCloseHandle( rec ); + libmsi_unref( rec ); - r = MsiQueryFetch(query, &rec); + r = libmsi_query_fetch(query, &rec); ok( r == ERROR_SUCCESS, "failed to fetch query: %d\n", r ); size = MAX_PATH; - r = MsiRecordGetString( rec, 1, buf, &size ); + r = libmsi_record_get_string( rec, 1, buf, &size ); ok( r == ERROR_SUCCESS, "failed to get record string: %d\n", r ); ok( !strcmp( buf, "3" ), "For (row %d, column 1) expected '%d', got %s\n", 1, 3, buf ); - MsiCloseHandle( rec ); + libmsi_unref( rec ); - r = MsiQueryFetch(query, &rec); + r = libmsi_query_fetch(query, &rec); ok( r == ERROR_NO_MORE_ITEMS, "expected no more items: %d\n", r ); - MsiQueryClose(query); - MsiCloseHandle(query); + libmsi_query_close(query); + libmsi_unref(query); - MsiCloseHandle( rec ); + libmsi_unref( rec ); rec = 0; sql = "SELECT * FROM `Media` WHERE `DiskPrompt` IS NULL"; r = do_query(hdb, sql, &rec); ok( r == ERROR_SUCCESS, "query failed: %d\n", r ); - MsiCloseHandle( rec ); + libmsi_unref( rec ); rec = 0; sql = "SELECT * FROM `Media` WHERE `DiskPrompt` < 'Cabinet'"; r = do_query(hdb, sql, &rec); ok( r == ERROR_BAD_QUERY_SYNTAX, "query failed: %d\n", r ); - MsiCloseHandle( rec ); + libmsi_unref( rec ); rec = 0; sql = "SELECT * FROM `Media` WHERE `DiskPrompt` > 'Cabinet'"; r = do_query(hdb, sql, &rec); ok( r == ERROR_BAD_QUERY_SYNTAX, "query failed: %d\n", r ); - MsiCloseHandle( rec ); + libmsi_unref( rec ); rec = 0; sql = "SELECT * FROM `Media` WHERE `DiskPrompt` <> 'Cabinet'"; r = do_query(hdb, sql, &rec); ok( r == ERROR_SUCCESS, "query failed: %d\n", r ); - MsiCloseHandle( rec ); + libmsi_unref( rec ); rec = 0; sql = "SELECT * FROM `Media` WHERE `DiskPrompt` = 'Cabinet'"; r = do_query(hdb, sql, &rec); ok( r == ERROR_NO_MORE_ITEMS, "query failed: %d\n", r ); - MsiCloseHandle( rec ); + libmsi_unref( rec ); - rec = MsiCreateRecord(1); - MsiRecordSetString(rec, 1, ""); + rec = libmsi_record_create(1); + libmsi_record_set_string(rec, 1, ""); sql = "SELECT * FROM `Media` WHERE `DiskPrompt` = ?"; query = NULL; - r = MsiDatabaseOpenQuery(hdb, sql, &query); + r = libmsi_database_open_query(hdb, sql, &query); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - r = MsiQueryExecute(query, rec); + r = libmsi_query_execute(query, rec); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - MsiCloseHandle(rec); + libmsi_unref(rec); - r = MsiQueryFetch(query, &rec); + r = libmsi_query_fetch(query, &rec); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - MsiCloseHandle(rec); - MsiQueryClose(query); - MsiCloseHandle(query); + libmsi_unref(rec); + libmsi_query_close(query); + libmsi_unref(query); - MsiCloseHandle( hdb ); + libmsi_unref( hdb ); DeleteFile(msifile); } @@ -2099,7 +2099,7 @@ static unsigned add_table_to_db(LibmsiDatabase *hdb, const char *table_data) unsigned r; write_file("temp_file", table_data, (strlen(table_data) - 1) * sizeof(char)); - r = MsiDatabaseImport(hdb, CURR_DIR, "temp_file"); + r = libmsi_database_import(hdb, CURR_DIR, "temp_file"); DeleteFileA("temp_file"); return r; @@ -2118,7 +2118,7 @@ static void test_suminfo_import(void) GetCurrentDirectoryA(MAX_PATH, CURR_DIR); - r = MsiOpenDatabase(msifile, LIBMSI_DB_OPEN_CREATE, &hdb); + r = libmsi_database_open(msifile, LIBMSI_DB_OPEN_CREATE, &hdb); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); r = add_table_to_db(hdb, suminfo); @@ -2128,26 +2128,26 @@ static void test_suminfo_import(void) query = NULL; sql = "SELECT * FROM `_SummaryInformation`"; - r = MsiDatabaseOpenQuery(hdb, sql, &query); + r = libmsi_database_open_query(hdb, sql, &query); ok(r == ERROR_BAD_QUERY_SYNTAX, "Expected ERROR_BAD_QUERY_SYNTAX, got %u\n", r); - MsiCloseHandle(query); + libmsi_unref(query); /* ...its data is added to the special summary information stream */ - r = MsiGetSummaryInformation(hdb, 0, &hsi); + r = libmsi_database_get_summary_info(hdb, 0, &hsi); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); - r = MsiSummaryInfoGetPropertyCount(hsi, &count); + r = libmsi_summary_info_get_property_count(hsi, &count); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); ok(count == 14, "Expected 14, got %u\n", count); - r = MsiSummaryInfoGetProperty(hsi, MSI_PID_CODEPAGE, &type, &int_value, NULL, NULL, NULL); + r = libmsi_summary_info_get_property(hsi, MSI_PID_CODEPAGE, &type, &int_value, NULL, NULL, NULL); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); ok(type == VT_I2, "Expected VT_I2, got %u\n", type); ok(int_value == 1252, "Expected 1252, got %d\n", int_value); size = sizeof(str_value); - r = MsiSummaryInfoGetProperty(hsi, MSI_PID_TITLE, &type, NULL, NULL, str_value, &size); + r = libmsi_summary_info_get_property(hsi, MSI_PID_TITLE, &type, NULL, NULL, str_value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); ok(type == VT_LPSTR, "Expected VT_LPSTR, got %u\n", type); ok(size == 18, "Expected 18, got %u\n", size); @@ -2155,78 +2155,78 @@ static void test_suminfo_import(void) "Expected \"Installer Database\", got %s\n", str_value); size = sizeof(str_value); - r = MsiSummaryInfoGetProperty(hsi, MSI_PID_SUBJECT, &type, NULL, NULL, str_value, &size); + r = libmsi_summary_info_get_property(hsi, MSI_PID_SUBJECT, &type, NULL, NULL, str_value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); ok(type == VT_LPSTR, "Expected VT_LPSTR, got %u\n", type); ok(!strcmp(str_value, "Installer description"), "Expected \"Installer description\", got %s\n", str_value); size = sizeof(str_value); - r = MsiSummaryInfoGetProperty(hsi, MSI_PID_AUTHOR, &type, NULL, NULL, str_value, &size); + r = libmsi_summary_info_get_property(hsi, MSI_PID_AUTHOR, &type, NULL, NULL, str_value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); ok(type == VT_LPSTR, "Expected VT_LPSTR, got %u\n", type); ok(!strcmp(str_value, "WineHQ"), "Expected \"WineHQ\", got %s\n", str_value); size = sizeof(str_value); - r = MsiSummaryInfoGetProperty(hsi, MSI_PID_KEYWORDS, &type, NULL, NULL, str_value, &size); + r = libmsi_summary_info_get_property(hsi, MSI_PID_KEYWORDS, &type, NULL, NULL, str_value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); ok(type == VT_LPSTR, "Expected VT_LPSTR, got %u\n", type); ok(!strcmp(str_value, "Installer"), "Expected \"Installer\", got %s\n", str_value); size = sizeof(str_value); - r = MsiSummaryInfoGetProperty(hsi, MSI_PID_COMMENTS, &type, NULL, NULL, str_value, &size); + r = libmsi_summary_info_get_property(hsi, MSI_PID_COMMENTS, &type, NULL, NULL, str_value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); ok(type == VT_LPSTR, "Expected VT_LPSTR, got %u\n", type); ok(!strcmp(str_value, "Installer comments"), "Expected \"Installer comments\", got %s\n", str_value); size = sizeof(str_value); - r = MsiSummaryInfoGetProperty(hsi, MSI_PID_TEMPLATE, &type, NULL, NULL, str_value, &size); + r = libmsi_summary_info_get_property(hsi, MSI_PID_TEMPLATE, &type, NULL, NULL, str_value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); ok(type == VT_LPSTR, "Expected VT_LPSTR, got %u\n", type); ok(!strcmp(str_value, "Intel;1033,2057"), "Expected \"Intel;1033,2057\", got %s\n", str_value); size = sizeof(str_value); - r = MsiSummaryInfoGetProperty(hsi, MSI_PID_REVNUMBER, &type, NULL, NULL, str_value, &size); + r = libmsi_summary_info_get_property(hsi, MSI_PID_REVNUMBER, &type, NULL, NULL, str_value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); ok(type == VT_LPSTR, "Expected VT_LPSTR, got %u\n", type); ok(!strcmp(str_value, "{12345678-1234-1234-1234-123456789012}"), "Expected \"{12345678-1234-1234-1234-123456789012}\", got %s\n", str_value); - r = MsiSummaryInfoGetProperty(hsi, MSI_PID_CREATE_DTM, &type, NULL, &ft_value, NULL, NULL); + r = libmsi_summary_info_get_property(hsi, MSI_PID_CREATE_DTM, &type, NULL, &ft_value, NULL, NULL); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); ok(type == VT_FILETIME, "Expected VT_FILETIME, got %u\n", type); - r = MsiSummaryInfoGetProperty(hsi, MSI_PID_LASTSAVE_DTM, &type, NULL, &ft_value, NULL, NULL); + r = libmsi_summary_info_get_property(hsi, MSI_PID_LASTSAVE_DTM, &type, NULL, &ft_value, NULL, NULL); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); ok(type == VT_FILETIME, "Expected VT_FILETIME, got %u\n", type); - r = MsiSummaryInfoGetProperty(hsi, MSI_PID_PAGECOUNT, &type, &int_value, NULL, NULL, NULL); + r = libmsi_summary_info_get_property(hsi, MSI_PID_PAGECOUNT, &type, &int_value, NULL, NULL, NULL); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); ok(type == VT_I4, "Expected VT_I4, got %u\n", type); ok(int_value == 200, "Expected 200, got %d\n", int_value); - r = MsiSummaryInfoGetProperty(hsi, MSI_PID_WORDCOUNT, &type, &int_value, NULL, NULL, NULL); + r = libmsi_summary_info_get_property(hsi, MSI_PID_WORDCOUNT, &type, &int_value, NULL, NULL, NULL); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); ok(type == VT_I4, "Expected VT_I4, got %u\n", type); ok(int_value == 2, "Expected 2, got %d\n", int_value); - r = MsiSummaryInfoGetProperty(hsi, MSI_PID_SECURITY, &type, &int_value, NULL, NULL, NULL); + r = libmsi_summary_info_get_property(hsi, MSI_PID_SECURITY, &type, &int_value, NULL, NULL, NULL); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); ok(type == VT_I4, "Expected VT_I4, got %u\n", type); ok(int_value == 2, "Expected 2, got %d\n", int_value); size = sizeof(str_value); - r = MsiSummaryInfoGetProperty(hsi, MSI_PID_APPNAME, &type, NULL, NULL, str_value, &size); + r = libmsi_summary_info_get_property(hsi, MSI_PID_APPNAME, &type, NULL, NULL, str_value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); ok(type == VT_LPSTR, "Expected VT_LPSTR, got %u\n", type); ok(!strcmp(str_value, "Vim"), "Expected \"Vim\", got %s\n", str_value); - MsiCloseHandle(hsi); - MsiCloseHandle(hdb); + libmsi_unref(hsi); + libmsi_unref(hdb); DeleteFileA(msifile); } @@ -2241,7 +2241,7 @@ static void test_msiimport(void) GetCurrentDirectoryA(MAX_PATH, CURR_DIR); - r = MsiOpenDatabase(msifile, LIBMSI_DB_OPEN_CREATE, &hdb); + r = libmsi_database_open(msifile, LIBMSI_DB_OPEN_CREATE, &hdb); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); r = add_table_to_db(hdb, test_data); @@ -2258,13 +2258,13 @@ static void test_msiimport(void) query = NULL; sql = "SELECT * FROM `TestTable`"; - r = MsiDatabaseOpenQuery(hdb, sql, &query); + r = libmsi_database_open_query(hdb, sql, &query); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); rec = NULL; - r = MsiQueryGetColumnInfo(query, LIBMSI_COL_INFO_NAMES, &rec); + r = libmsi_query_get_column_info(query, LIBMSI_COL_INFO_NAMES, &rec); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - count = MsiRecordGetFieldCount(rec); + count = libmsi_record_get_field_count(rec); ok(count == 9, "Expected 9, got %d\n", count); ok(check_record(rec, 1, "FirstPrimaryColumn"), "Expected FirstPrimaryColumn\n"); ok(check_record(rec, 2, "SecondPrimaryColumn"), "Expected SecondPrimaryColumn\n"); @@ -2275,12 +2275,12 @@ static void test_msiimport(void) ok(check_record(rec, 7, "String"), "Expected String\n"); ok(check_record(rec, 8, "LocalizableString"), "Expected LocalizableString\n"); ok(check_record(rec, 9, "LocalizableStringNullable"), "Expected LocalizableStringNullable\n"); - MsiCloseHandle(rec); + libmsi_unref(rec); rec = NULL; - r = MsiQueryGetColumnInfo(query, LIBMSI_COL_INFO_TYPES, &rec); + r = libmsi_query_get_column_info(query, LIBMSI_COL_INFO_TYPES, &rec); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - count = MsiRecordGetFieldCount(rec); + count = libmsi_record_get_field_count(rec); ok(count == 9, "Expected 9, got %d\n", count); ok(check_record(rec, 1, "s255"), "Expected s255\n"); ok(check_record(rec, 2, "i2"), "Expected i2\n"); @@ -2291,7 +2291,7 @@ static void test_msiimport(void) ok(check_record(rec, 7, "S255"), "Expected S255\n"); ok(check_record(rec, 8, "S0"), "Expected S0\n"); ok(check_record(rec, 9, "s0"), "Expected s0\n"); - MsiCloseHandle(rec); + libmsi_unref(rec); sql = "SELECT * FROM `TestTable`"; r = do_query(hdb, sql, &rec); @@ -2301,86 +2301,86 @@ static void test_msiimport(void) ok(check_record(rec, 8, "localizable"), "Expected 'localizable'\n"); ok(check_record(rec, 9, "duh"), "Expected 'duh'\n"); - i = MsiRecordGetInteger(rec, 2); + i = libmsi_record_get_integer(rec, 2); ok(i == 5, "Expected 5, got %d\n", i); - i = MsiRecordGetInteger(rec, 3); + i = libmsi_record_get_integer(rec, 3); ok(i == 2, "Expected 2, got %d\n", i); - i = MsiRecordGetInteger(rec, 4); + i = libmsi_record_get_integer(rec, 4); ok(i == MSI_NULL_INTEGER, "Expected MSI_NULL_INTEGER, got %d\n", i); - i = MsiRecordGetInteger(rec, 5); + i = libmsi_record_get_integer(rec, 5); ok(i == 2147483640, "Expected 2147483640, got %d\n", i); - i = MsiRecordGetInteger(rec, 6); + i = libmsi_record_get_integer(rec, 6); ok(i == -2147483640, "Expected -2147483640, got %d\n", i); - MsiCloseHandle(rec); - MsiQueryClose(query); - MsiCloseHandle(query); + libmsi_unref(rec); + libmsi_query_close(query); + libmsi_unref(query); query = NULL; sql = "SELECT * FROM `TwoPrimary`"; - r = MsiDatabaseOpenQuery(hdb, sql, &query); + r = libmsi_database_open_query(hdb, sql, &query); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); rec = NULL; - r = MsiQueryGetColumnInfo(query, LIBMSI_COL_INFO_NAMES, &rec); + r = libmsi_query_get_column_info(query, LIBMSI_COL_INFO_NAMES, &rec); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - count = MsiRecordGetFieldCount(rec); + count = libmsi_record_get_field_count(rec); ok(count == 2, "Expected 2, got %d\n", count); ok(check_record(rec, 1, "PrimaryOne"), "Expected PrimaryOne\n"); ok(check_record(rec, 2, "PrimaryTwo"), "Expected PrimaryTwo\n"); - MsiCloseHandle(rec); + libmsi_unref(rec); rec = NULL; - r = MsiQueryGetColumnInfo(query, LIBMSI_COL_INFO_TYPES, &rec); + r = libmsi_query_get_column_info(query, LIBMSI_COL_INFO_TYPES, &rec); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - count = MsiRecordGetFieldCount(rec); + count = libmsi_record_get_field_count(rec); ok(count == 2, "Expected 2, got %d\n", count); ok(check_record(rec, 1, "s255"), "Expected s255\n"); ok(check_record(rec, 2, "s255"), "Expected s255\n"); - MsiCloseHandle(rec); + libmsi_unref(rec); - r = MsiQueryExecute(query, 0); + r = libmsi_query_execute(query, 0); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - r = MsiQueryFetch(query, &rec); + r = libmsi_query_fetch(query, &rec); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(check_record(rec, 1, "papaya"), "Expected 'papaya'\n"); ok(check_record(rec, 2, "leaf"), "Expected 'leaf'\n"); - MsiCloseHandle(rec); + libmsi_unref(rec); - r = MsiQueryFetch(query, &rec); + r = libmsi_query_fetch(query, &rec); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(check_record(rec, 1, "papaya"), "Expected 'papaya'\n"); ok(check_record(rec, 2, "flower"), "Expected 'flower'\n"); - MsiCloseHandle(rec); + libmsi_unref(rec); - r = MsiQueryFetch(query, &rec); + r = libmsi_query_fetch(query, &rec); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - r = MsiQueryClose(query); + r = libmsi_query_close(query); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - MsiCloseHandle(query); + libmsi_unref(query); query = NULL; sql = "SELECT * FROM `Table`"; - r = MsiDatabaseOpenQuery(hdb, sql, &query); + r = libmsi_database_open_query(hdb, sql, &query); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); rec = NULL; - r = MsiQueryGetColumnInfo(query, LIBMSI_COL_INFO_NAMES, &rec); + r = libmsi_query_get_column_info(query, LIBMSI_COL_INFO_NAMES, &rec); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - count = MsiRecordGetFieldCount(rec); + count = libmsi_record_get_field_count(rec); ok(count == 6, "Expected 6, got %d\n", count); ok(check_record(rec, 1, "A"), "Expected A\n"); ok(check_record(rec, 2, "B"), "Expected B\n"); @@ -2388,12 +2388,12 @@ static void test_msiimport(void) ok(check_record(rec, 4, "D"), "Expected D\n"); ok(check_record(rec, 5, "E"), "Expected E\n"); ok(check_record(rec, 6, "F"), "Expected F\n"); - MsiCloseHandle(rec); + libmsi_unref(rec); rec = NULL; - r = MsiQueryGetColumnInfo(query, LIBMSI_COL_INFO_TYPES, &rec); + r = libmsi_query_get_column_info(query, LIBMSI_COL_INFO_TYPES, &rec); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - count = MsiRecordGetFieldCount(rec); + count = libmsi_record_get_field_count(rec); ok(count == 6, "Expected 6, got %d\n", count); ok(check_record(rec, 1, "s72"), "Expected s72\n"); ok(check_record(rec, 2, "s72"), "Expected s72\n"); @@ -2401,20 +2401,20 @@ static void test_msiimport(void) ok(check_record(rec, 4, "s72"), "Expected s72\n"); ok(check_record(rec, 5, "s72"), "Expected s72\n"); ok(check_record(rec, 6, "s72"), "Expected s72\n"); - MsiCloseHandle(rec); + libmsi_unref(rec); - MsiQueryClose(query); - MsiCloseHandle(query); + libmsi_query_close(query); + libmsi_unref(query); query = NULL; sql = "SELECT * FROM `Table`"; - r = MsiDatabaseOpenQuery(hdb, sql, &query); + r = libmsi_database_open_query(hdb, sql, &query); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - r = MsiQueryExecute(query, 0); + r = libmsi_query_execute(query, 0); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - r = MsiQueryFetch(query, &rec); + r = libmsi_query_fetch(query, &rec); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(check_record(rec, 1, "a"), "Expected 'a'\n"); ok(check_record(rec, 2, "b"), "Expected 'b'\n"); @@ -2423,9 +2423,9 @@ static void test_msiimport(void) ok(check_record(rec, 5, "e"), "Expected 'e'\n"); ok(check_record(rec, 6, "f"), "Expected 'f'\n"); - MsiCloseHandle(rec); + libmsi_unref(rec); - r = MsiQueryFetch(query, &rec); + r = libmsi_query_fetch(query, &rec); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(check_record(rec, 1, "g"), "Expected 'g'\n"); ok(check_record(rec, 2, "h"), "Expected 'h'\n"); @@ -2434,15 +2434,15 @@ static void test_msiimport(void) ok(check_record(rec, 5, "k"), "Expected 'k'\n"); ok(check_record(rec, 6, "l"), "Expected 'l'\n"); - MsiCloseHandle(rec); + libmsi_unref(rec); - r = MsiQueryFetch(query, &rec); + r = libmsi_query_fetch(query, &rec); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - MsiQueryClose(query); - MsiCloseHandle(query); - MsiCloseHandle(hdb); + libmsi_query_close(query); + libmsi_unref(query); + libmsi_unref(hdb); DeleteFileA(msifile); } @@ -2469,11 +2469,11 @@ static void test_binary_import(void) create_file_data("bin_import/filename1.ibd", "just some words", 15); /* import files into database */ - r = MsiOpenDatabase(msifile, LIBMSI_DB_OPEN_CREATE, &hdb); + r = libmsi_database_open(msifile, LIBMSI_DB_OPEN_CREATE, &hdb); ok( r == ERROR_SUCCESS , "Failed to open database\n"); GetCurrentDirectory(MAX_PATH, path); - r = MsiDatabaseImport(hdb, path, "bin_import.idt"); + r = libmsi_database_import(hdb, path, "bin_import.idt"); ok(r == ERROR_SUCCESS , "Failed to import Binary table\n"); /* read file from the Binary table */ @@ -2482,21 +2482,21 @@ static void test_binary_import(void) ok(r == ERROR_SUCCESS, "SELECT query failed: %d\n", r); size = MAX_PATH; - r = MsiRecordGetString(rec, 1, file, &size); + r = libmsi_record_get_string(rec, 1, file, &size); ok(r == ERROR_SUCCESS, "Failed to get string: %d\n", r); ok(!strcmp(file, "filename1"), "Expected 'filename1', got %s\n", file); size = MAX_PATH; memset(buf, 0, MAX_PATH); - r = MsiRecordReadStream(rec, 2, buf, &size); + r = libmsi_record_save_stream(rec, 2, buf, &size); ok(r == ERROR_SUCCESS, "Failed to get stream: %d\n", r); ok(!strcmp(buf, "just some words"), "Expected 'just some words', got %s\n", buf); - r = MsiCloseHandle(rec); + r = libmsi_unref(rec); ok(r == ERROR_SUCCESS , "Failed to close record handle\n"); - r = MsiCloseHandle(hdb); + r = libmsi_unref(hdb); ok(r == ERROR_SUCCESS , "Failed to close database\n"); DeleteFile("bin_import/filename1.ibd"); @@ -2514,20 +2514,20 @@ static void test_markers(void) hdb = create_db(); ok( hdb, "failed to create db\n"); - rec = MsiCreateRecord(3); - MsiRecordSetString(rec, 1, "Table"); - MsiRecordSetString(rec, 2, "Apples"); - MsiRecordSetString(rec, 3, "Oranges"); + rec = libmsi_record_create(3); + libmsi_record_set_string(rec, 1, "Table"); + libmsi_record_set_string(rec, 2, "Apples"); + libmsi_record_set_string(rec, 3, "Oranges"); /* try a legit create */ sql = "CREATE TABLE `Table` ( `One` SHORT NOT NULL, `Two` CHAR(255) PRIMARY KEY `One`)"; r = run_query(hdb, 0, sql); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - MsiCloseHandle(rec); + libmsi_unref(rec); /* try table name as marker */ - rec = MsiCreateRecord(1); - MsiRecordSetString(rec, 1, "Fable"); + rec = libmsi_record_create(1); + libmsi_record_set_string(rec, 1, "Fable"); sql = "CREATE TABLE `?` ( `One` SHORT NOT NULL, `Two` CHAR(255) PRIMARY KEY `One`)"; r = run_query(hdb, rec, sql); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); @@ -2540,32 +2540,32 @@ static void test_markers(void) ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); /* try table name as marker without backticks */ - MsiRecordSetString(rec, 1, "Mable"); + libmsi_record_set_string(rec, 1, "Mable"); sql = "CREATE TABLE ? ( `One` SHORT NOT NULL, `Two` CHAR(255) PRIMARY KEY `One`)"; r = run_query(hdb, rec, sql); ok(r == ERROR_BAD_QUERY_SYNTAX, "Expected ERROR_BAD_QUERY_SYNTAX, got %d\n", r); /* try one column name as marker */ - MsiRecordSetString(rec, 1, "One"); + libmsi_record_set_string(rec, 1, "One"); sql = "CREATE TABLE `Mable` ( `?` SHORT NOT NULL, `Two` CHAR(255) PRIMARY KEY `One`)"; r = run_query(hdb, rec, sql); ok(r == ERROR_BAD_QUERY_SYNTAX, "Expected ERROR_BAD_QUERY_SYNTAX, got %d\n", r); - MsiCloseHandle(rec); + libmsi_unref(rec); /* try column names as markers */ - rec = MsiCreateRecord(2); - MsiRecordSetString(rec, 1, "One"); - MsiRecordSetString(rec, 2, "Two"); + rec = libmsi_record_create(2); + libmsi_record_set_string(rec, 1, "One"); + libmsi_record_set_string(rec, 2, "Two"); sql = "CREATE TABLE `Mable` ( `?` SHORT NOT NULL, `?` CHAR(255) PRIMARY KEY `One`)"; r = run_query(hdb, rec, sql); ok(r == ERROR_BAD_QUERY_SYNTAX, "Expected ERROR_BAD_QUERY_SYNTAX, got %d\n", r); - MsiCloseHandle(rec); + libmsi_unref(rec); /* try names with backticks */ - rec = MsiCreateRecord(3); - MsiRecordSetString(rec, 1, "One"); - MsiRecordSetString(rec, 2, "Two"); - MsiRecordSetString(rec, 3, "One"); + rec = libmsi_record_create(3); + libmsi_record_set_string(rec, 1, "One"); + libmsi_record_set_string(rec, 2, "Two"); + libmsi_record_set_string(rec, 3, "One"); sql = "CREATE TABLE `Mable` ( `?` SHORT NOT NULL, `?` CHAR(255) PRIMARY KEY `?`)"; r = run_query(hdb, rec, sql); ok(r == ERROR_BAD_QUERY_SYNTAX, "Expected ERROR_BAD_QUERY_SYNTAX, got %d\n", r); @@ -2579,26 +2579,26 @@ static void test_markers(void) sql = "CREATE TABLE `Mable` ( ? SHORT NOT NULL, ? CHAR(255) PRIMARY KEY ?)"; r = run_query(hdb, rec, sql); ok(r == ERROR_BAD_QUERY_SYNTAX, "Expected ERROR_BAD_QUERY_SYNTAX, got %d\n", r); - MsiCloseHandle(rec); + libmsi_unref(rec); /* try one long marker */ - rec = MsiCreateRecord(1); - MsiRecordSetString(rec, 1, "`One` SHORT NOT NULL, `Two` CHAR(255) PRIMARY KEY `One`"); + rec = libmsi_record_create(1); + libmsi_record_set_string(rec, 1, "`One` SHORT NOT NULL, `Two` CHAR(255) PRIMARY KEY `One`"); sql = "CREATE TABLE `Mable` ( ? )"; r = run_query(hdb, rec, sql); ok(r == ERROR_BAD_QUERY_SYNTAX, "Expected ERROR_BAD_QUERY_SYNTAX, got %d\n", r); - MsiCloseHandle(rec); + libmsi_unref(rec); /* try all names as markers */ - rec = MsiCreateRecord(4); - MsiRecordSetString(rec, 1, "Mable"); - MsiRecordSetString(rec, 2, "One"); - MsiRecordSetString(rec, 3, "Two"); - MsiRecordSetString(rec, 4, "One"); + rec = libmsi_record_create(4); + libmsi_record_set_string(rec, 1, "Mable"); + libmsi_record_set_string(rec, 2, "One"); + libmsi_record_set_string(rec, 3, "Two"); + libmsi_record_set_string(rec, 4, "One"); sql = "CREATE TABLE `?` ( `?` SHORT NOT NULL, `?` CHAR(255) PRIMARY KEY `?`)"; r = run_query(hdb, rec, sql); ok(r == ERROR_BAD_QUERY_SYNTAX, "Expected ERROR_BAD_QUERY_SYNTAX, got %d\n", r); - MsiCloseHandle(rec); + libmsi_unref(rec); /* try a legit insert */ sql = "INSERT INTO `Table` ( `One`, `Two` ) VALUES ( 5, 'hello' )"; @@ -2609,83 +2609,83 @@ static void test_markers(void) ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); /* try values as markers */ - rec = MsiCreateRecord(2); - MsiRecordSetInteger(rec, 1, 4); - MsiRecordSetString(rec, 2, "hi"); + rec = libmsi_record_create(2); + libmsi_record_set_int(rec, 1, 4); + libmsi_record_set_string(rec, 2, "hi"); sql = "INSERT INTO `Table` ( `One`, `Two` ) VALUES ( ?, '?' )"; r = run_query(hdb, rec, sql); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - MsiCloseHandle(rec); + libmsi_unref(rec); /* try column names and values as markers */ - rec = MsiCreateRecord(4); - MsiRecordSetString(rec, 1, "One"); - MsiRecordSetString(rec, 2, "Two"); - MsiRecordSetInteger(rec, 3, 5); - MsiRecordSetString(rec, 4, "hi"); + rec = libmsi_record_create(4); + libmsi_record_set_string(rec, 1, "One"); + libmsi_record_set_string(rec, 2, "Two"); + libmsi_record_set_int(rec, 3, 5); + libmsi_record_set_string(rec, 4, "hi"); sql = "INSERT INTO `Table` ( `?`, `?` ) VALUES ( ?, '?' )"; r = run_query(hdb, rec, sql); ok(r == ERROR_BAD_QUERY_SYNTAX, "Expected ERROR_BAD_QUERY_SYNTAX, got %d\n", r); - MsiCloseHandle(rec); + libmsi_unref(rec); /* try column names as markers */ - rec = MsiCreateRecord(2); - MsiRecordSetString(rec, 1, "One"); - MsiRecordSetString(rec, 2, "Two"); + rec = libmsi_record_create(2); + libmsi_record_set_string(rec, 1, "One"); + libmsi_record_set_string(rec, 2, "Two"); sql = "INSERT INTO `Table` ( `?`, `?` ) VALUES ( 3, 'yellow' )"; r = run_query(hdb, rec, sql); ok(r == ERROR_BAD_QUERY_SYNTAX, "Expected ERROR_BAD_QUERY_SYNTAX, got %d\n", r); - MsiCloseHandle(rec); + libmsi_unref(rec); /* try table name as a marker */ - rec = MsiCreateRecord(1); - MsiRecordSetString(rec, 1, "Table"); + rec = libmsi_record_create(1); + libmsi_record_set_string(rec, 1, "Table"); sql = "INSERT INTO `?` ( `One`, `Two` ) VALUES ( 2, 'green' )"; r = run_query(hdb, rec, sql); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - MsiCloseHandle(rec); + libmsi_unref(rec); /* try table name and values as markers */ - rec = MsiCreateRecord(3); - MsiRecordSetString(rec, 1, "Table"); - MsiRecordSetInteger(rec, 2, 10); - MsiRecordSetString(rec, 3, "haha"); + rec = libmsi_record_create(3); + libmsi_record_set_string(rec, 1, "Table"); + libmsi_record_set_int(rec, 2, 10); + libmsi_record_set_string(rec, 3, "haha"); sql = "INSERT INTO `?` ( `One`, `Two` ) VALUES ( ?, '?' )"; r = run_query(hdb, rec, sql); ok(r == ERROR_FUNCTION_FAILED, "Expected ERROR_FUNCTION_FAILED, got %d\n", r); - MsiCloseHandle(rec); + libmsi_unref(rec); /* try all markers */ - rec = MsiCreateRecord(5); - MsiRecordSetString(rec, 1, "Table"); - MsiRecordSetString(rec, 1, "One"); - MsiRecordSetString(rec, 1, "Two"); - MsiRecordSetInteger(rec, 2, 10); - MsiRecordSetString(rec, 3, "haha"); + rec = libmsi_record_create(5); + libmsi_record_set_string(rec, 1, "Table"); + libmsi_record_set_string(rec, 1, "One"); + libmsi_record_set_string(rec, 1, "Two"); + libmsi_record_set_int(rec, 2, 10); + libmsi_record_set_string(rec, 3, "haha"); sql = "INSERT INTO `?` ( `?`, `?` ) VALUES ( ?, '?' )"; r = run_query(hdb, rec, sql); ok(r == ERROR_BAD_QUERY_SYNTAX, "Expected ERROR_BAD_QUERY_SYNTAX, got %d\n", r); - MsiCloseHandle(rec); + libmsi_unref(rec); /* insert an integer as a string */ - rec = MsiCreateRecord(2); - MsiRecordSetString(rec, 1, "11"); - MsiRecordSetString(rec, 2, "hi"); + rec = libmsi_record_create(2); + libmsi_record_set_string(rec, 1, "11"); + libmsi_record_set_string(rec, 2, "hi"); sql = "INSERT INTO `Table` ( `One`, `Two` ) VALUES ( ?, '?' )"; r = run_query(hdb, rec, sql); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - MsiCloseHandle(rec); + libmsi_unref(rec); /* leave off the '' for the string */ - rec = MsiCreateRecord(2); - MsiRecordSetInteger(rec, 1, 12); - MsiRecordSetString(rec, 2, "hi"); + rec = libmsi_record_create(2); + libmsi_record_set_int(rec, 1, 12); + libmsi_record_set_string(rec, 2, "hi"); sql = "INSERT INTO `Table` ( `One`, `Two` ) VALUES ( ?, ? )"; r = run_query(hdb, rec, sql); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - MsiCloseHandle(rec); + libmsi_unref(rec); - MsiCloseHandle(hdb); + libmsi_unref(hdb); DeleteFileA(msifile); } @@ -2706,7 +2706,7 @@ static void test_handle_limit(void) for (i=0; i