diff options
Diffstat (limited to 'libmsi/database.c')
-rw-r--r-- | libmsi/database.c | 234 |
1 files changed, 117 insertions, 117 deletions
diff --git a/libmsi/database.c b/libmsi/database.c index 824d263..a3bc8da 100644 --- a/libmsi/database.c +++ b/libmsi/database.c @@ -88,20 +88,20 @@ static unsigned find_open_stream( LibmsiDatabase *db, IStorage *stg, const WCHAR TRACE("found %s\n", debugstr_w(name)); *stm = stream->stm; CoTaskMemFree( stat.pwcsName ); - return ERROR_SUCCESS; + return LIBMSI_RESULT_SUCCESS; } CoTaskMemFree( stat.pwcsName ); } - return ERROR_FUNCTION_FAILED; + return LIBMSI_RESULT_FUNCTION_FAILED; } unsigned msi_clone_open_stream( LibmsiDatabase *db, IStorage *stg, const WCHAR *name, IStream **stm ) { IStream *stream; - if (find_open_stream( db, stg, name, &stream ) == ERROR_SUCCESS) + if (find_open_stream( db, stg, name, &stream ) == LIBMSI_RESULT_SUCCESS) { HRESULT r; LARGE_INTEGER pos; @@ -110,7 +110,7 @@ unsigned msi_clone_open_stream( LibmsiDatabase *db, IStorage *stg, const WCHAR * if( FAILED( r ) ) { WARN("failed to clone stream r = %08x!\n", r); - return ERROR_FUNCTION_FAILED; + return LIBMSI_RESULT_FUNCTION_FAILED; } pos.QuadPart = 0; @@ -118,13 +118,13 @@ unsigned msi_clone_open_stream( LibmsiDatabase *db, IStorage *stg, const WCHAR * if( FAILED( r ) ) { IStream_Release( *stm ); - return ERROR_FUNCTION_FAILED; + return LIBMSI_RESULT_FUNCTION_FAILED; } - return ERROR_SUCCESS; + return LIBMSI_RESULT_SUCCESS; } - return ERROR_FUNCTION_FAILED; + return LIBMSI_RESULT_FUNCTION_FAILED; } unsigned msi_get_raw_stream( LibmsiDatabase *db, const WCHAR *stname, IStream **stm ) @@ -136,8 +136,8 @@ unsigned msi_get_raw_stream( LibmsiDatabase *db, const WCHAR *stname, IStream ** decode_streamname( stname, decoded ); TRACE("%s -> %s\n", debugstr_w(stname), debugstr_w(decoded)); - if (msi_clone_open_stream( db, db->storage, stname, stm ) == ERROR_SUCCESS) - return ERROR_SUCCESS; + if (msi_clone_open_stream( db, db->storage, stname, stm ) == LIBMSI_RESULT_SUCCESS) + return LIBMSI_RESULT_SUCCESS; r = IStorage_OpenStream( db->storage, stname, NULL, STGM_READ | STGM_SHARE_EXCLUSIVE, 0, stm ); @@ -162,7 +162,7 @@ unsigned msi_get_raw_stream( LibmsiDatabase *db, const WCHAR *stname, IStream ** { LibmsiStream *stream; - if (!(stream = msi_alloc( sizeof(LibmsiStream) ))) return ERROR_NOT_ENOUGH_MEMORY; + if (!(stream = msi_alloc( sizeof(LibmsiStream) ))) return LIBMSI_RESULT_NOT_ENOUGH_MEMORY; stream->stg = stg; IStorage_AddRef( stg ); stream->stm = *stm; @@ -170,7 +170,7 @@ unsigned msi_get_raw_stream( LibmsiDatabase *db, const WCHAR *stname, IStream ** list_add_tail( &db->streams, &stream->entry ); } - return SUCCEEDED(r) ? ERROR_SUCCESS : ERROR_FUNCTION_FAILED; + return SUCCEEDED(r) ? LIBMSI_RESULT_SUCCESS : LIBMSI_RESULT_FUNCTION_FAILED; } static void free_transforms( LibmsiDatabase *db ) @@ -296,12 +296,12 @@ static HRESULT db_initialize( IStorage *stg, const GUID *clsid ) return S_OK; } -unsigned libmsi_database_open(const char *szDBPath, const char *szPersist, LibmsiDatabase **pdb) +LibmsiResult libmsi_database_open(const char *szDBPath, const char *szPersist, LibmsiDatabase **pdb) { IStorage *stg = NULL; HRESULT r; LibmsiDatabase *db = NULL; - unsigned ret = ERROR_FUNCTION_FAILED; + unsigned ret = LIBMSI_RESULT_FUNCTION_FAILED; WCHAR *szwDBPath; const char *szMode; STATSTG stat; @@ -311,7 +311,7 @@ unsigned libmsi_database_open(const char *szDBPath, const char *szPersist, Libms TRACE("%s %p\n",debugstr_a(szDBPath),szPersist ); if( !pdb ) - return ERROR_INVALID_PARAMETER; + return LIBMSI_RESULT_INVALID_PARAMETER; if (szPersist - LIBMSI_DB_OPEN_PATCHFILE >= LIBMSI_DB_OPEN_READONLY && szPersist - LIBMSI_DB_OPEN_PATCHFILE <= LIBMSI_DB_OPEN_CREATEDIRECT) @@ -325,7 +325,7 @@ unsigned libmsi_database_open(const char *szDBPath, const char *szPersist, Libms if( !IS_INTMSIDBOPEN(szPersist) ) { if (!CopyFileA( szDBPath, szPersist, false )) - return ERROR_OPEN_FAILED; + return LIBMSI_RESULT_OPEN_FAILED; szDBPath = szPersist; szPersist = LIBMSI_DB_OPEN_TRANSACT; @@ -369,14 +369,14 @@ unsigned libmsi_database_open(const char *szDBPath, const char *szPersist, Libms else { ERR("unknown flag %p\n",szPersist); - return ERROR_INVALID_PARAMETER; + return LIBMSI_RESULT_INVALID_PARAMETER; } msi_free(szwDBPath); if( FAILED( r ) || !stg ) { WARN("open failed r = %08x for %s\n", r, debugstr_a(szDBPath)); - return ERROR_FUNCTION_FAILED; + return LIBMSI_RESULT_FUNCTION_FAILED; } r = IStorage_Stat( stg, &stat, STATFLAG_NONAME ); @@ -399,7 +399,7 @@ unsigned libmsi_database_open(const char *szDBPath, const char *szPersist, Libms { ERR("storage GUID is not the MSI patch GUID %s\n", debugstr_guid(&stat.clsid) ); - ret = ERROR_OPEN_FAILED; + ret = LIBMSI_RESULT_OPEN_FAILED; goto end; } @@ -438,7 +438,7 @@ unsigned libmsi_database_open(const char *szDBPath, const char *szPersist, Libms if( !db->strings ) goto end; - ret = ERROR_SUCCESS; + ret = LIBMSI_RESULT_SUCCESS; msiobj_addref( &db->hdr ); IStorage_AddRef( stg ); @@ -710,7 +710,7 @@ done: static unsigned msi_add_table_to_db(LibmsiDatabase *db, WCHAR **columns, WCHAR **types, WCHAR **labels, unsigned num_labels, unsigned num_columns) { - unsigned r = ERROR_OUTOFMEMORY; + unsigned r = LIBMSI_RESULT_OUTOFMEMORY; unsigned size; LibmsiQuery *view; WCHAR *create_sql = NULL; @@ -735,7 +735,7 @@ static unsigned msi_add_table_to_db(LibmsiDatabase *db, WCHAR **columns, WCHAR * strcatW(create_sql, postlude); r = _libmsi_database_open_query( db, create_sql, &view ); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) goto done; r = _libmsi_query_execute(view, NULL); @@ -784,7 +784,7 @@ static unsigned construct_record(unsigned num_columns, WCHAR **types, *rec = libmsi_record_create(num_columns); if (!*rec) - return ERROR_OUTOFMEMORY; + return LIBMSI_RESULT_OUTOFMEMORY; for (i = 0; i < num_columns; i++) { @@ -803,22 +803,22 @@ static unsigned construct_record(unsigned num_columns, WCHAR **types, unsigned r; char *file = msi_import_stream_filename(path, data[i]); if (!file) - return ERROR_FUNCTION_FAILED; + return LIBMSI_RESULT_FUNCTION_FAILED; r = _libmsi_record_load_stream_from_file(*rec, i + 1, file); msi_free (file); - if (r != ERROR_SUCCESS) - return ERROR_FUNCTION_FAILED; + if (r != LIBMSI_RESULT_SUCCESS) + return LIBMSI_RESULT_FUNCTION_FAILED; } break; default: ERR("Unhandled column type: %c\n", types[i][0]); msiobj_release(&(*rec)->hdr); - return ERROR_FUNCTION_FAILED; + return LIBMSI_RESULT_FUNCTION_FAILED; } } - return ERROR_SUCCESS; + return LIBMSI_RESULT_SUCCESS; } static unsigned msi_add_records_to_table(LibmsiDatabase *db, WCHAR **columns, WCHAR **types, @@ -837,25 +837,25 @@ static unsigned msi_add_records_to_table(LibmsiDatabase *db, WCHAR **columns, WC }; r = _libmsi_query_open(db, &view, select, labels[0]); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) return r; - while (_libmsi_query_fetch(view, &rec) != ERROR_NO_MORE_ITEMS) + while (_libmsi_query_fetch(view, &rec) != LIBMSI_RESULT_NO_MORE_ITEMS) { r = _libmsi_query_modify(view, LIBMSI_MODIFY_DELETE, rec); msiobj_release(&rec->hdr); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) goto done; } for (i = 0; i < num_records; i++) { r = construct_record(num_columns, types, records[i], path, &rec); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) goto done; r = _libmsi_query_modify(view, LIBMSI_MODIFY_INSERT, rec); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) { msiobj_release(&rec->hdr); goto done; @@ -871,7 +871,7 @@ done: static unsigned _libmsi_database_import(LibmsiDatabase *db, const char *folder, const char *file) { - unsigned r = ERROR_OUTOFMEMORY; + unsigned r = LIBMSI_RESULT_OUTOFMEMORY; unsigned len, i; unsigned num_labels, num_types; unsigned num_columns, num_records = 0; @@ -892,12 +892,12 @@ static unsigned _libmsi_database_import(LibmsiDatabase *db, const char *folder, TRACE("%p %s %s\n", db, debugstr_a(folder), debugstr_a(file) ); if( folder == NULL || file == NULL ) - return ERROR_INVALID_PARAMETER; + return LIBMSI_RESULT_INVALID_PARAMETER; len = strlen(folder) + 1 + strlen(file) + 1; path = msi_alloc( len ); if (!path) - return ERROR_OUTOFMEMORY; + return LIBMSI_RESULT_OUTOFMEMORY; strcpy( path, folder ); strcat( path, "\\" ); @@ -921,14 +921,14 @@ static unsigned _libmsi_database_import(LibmsiDatabase *db, const char *folder, if (num_columns != num_types) { - r = ERROR_FUNCTION_FAILED; + r = LIBMSI_RESULT_FUNCTION_FAILED; goto done; } records = msi_alloc(sizeof(WCHAR **)); if (!records) { - r = ERROR_OUTOFMEMORY; + r = LIBMSI_RESULT_OUTOFMEMORY; goto done; } @@ -941,7 +941,7 @@ static unsigned _libmsi_database_import(LibmsiDatabase *db, const char *folder, temp_records = msi_realloc(records, (num_records + 1) * sizeof(WCHAR **)); if (!temp_records) { - r = ERROR_OUTOFMEMORY; + r = LIBMSI_RESULT_OUTOFMEMORY; goto done; } records = temp_records; @@ -950,9 +950,9 @@ static unsigned _libmsi_database_import(LibmsiDatabase *db, const char *folder, if (!strcmpW(labels[0], suminfo)) { r = msi_add_suminfo( db, records, num_records, num_columns ); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) { - r = ERROR_FUNCTION_FAILED; + r = LIBMSI_RESULT_FUNCTION_FAILED; goto done; } } @@ -961,9 +961,9 @@ static unsigned _libmsi_database_import(LibmsiDatabase *db, const char *folder, if (!table_view_exists(db, labels[0])) { r = msi_add_table_to_db( db, columns, types, labels, num_labels, num_columns ); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) { - r = ERROR_FUNCTION_FAILED; + r = LIBMSI_RESULT_FUNCTION_FAILED; goto done; } } @@ -986,14 +986,14 @@ done: return r; } -unsigned libmsi_database_import(LibmsiDatabase *db, const char *szFolder, const char *szFilename) +LibmsiResult libmsi_database_import(LibmsiDatabase *db, const char *szFolder, const char *szFilename) { unsigned r; TRACE("%x %s %s\n",db,debugstr_a(szFolder), debugstr_a(szFilename)); if( !db ) - return ERROR_INVALID_HANDLE; + return LIBMSI_RESULT_INVALID_HANDLE; msiobj_addref( &db->hdr ); r = _libmsi_database_import( db, szFolder, szFilename ); @@ -1003,7 +1003,7 @@ unsigned libmsi_database_import(LibmsiDatabase *db, const char *szFolder, const static unsigned msi_export_record( int fd, LibmsiRecord *row, unsigned start ) { - unsigned i, count, len, r = ERROR_SUCCESS; + unsigned i, count, len, r = LIBMSI_RESULT_SUCCESS; const char *sep; char *buffer; unsigned sz; @@ -1011,14 +1011,14 @@ static unsigned msi_export_record( int fd, LibmsiRecord *row, unsigned start ) len = 0x100; buffer = msi_alloc( len ); if ( !buffer ) - return ERROR_OUTOFMEMORY; + return LIBMSI_RESULT_OUTOFMEMORY; count = libmsi_record_get_field_count( row ); for ( i=start; i<=count; i++ ) { sz = len; r = libmsi_record_get_string( row, i, buffer, &sz ); - if (r == ERROR_MORE_DATA) + if (r == LIBMSI_RESULT_MORE_DATA) { char *p = msi_realloc( buffer, sz + 1 ); if (!p) @@ -1028,20 +1028,20 @@ static unsigned msi_export_record( int fd, LibmsiRecord *row, unsigned start ) } sz = len; r = libmsi_record_get_string( row, i, buffer, &sz ); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) break; /* TODO full_write */ if (write( fd, buffer, sz ) != sz) { - r = ERROR_FUNCTION_FAILED; + r = LIBMSI_RESULT_FUNCTION_FAILED; break; } sep = (i < count) ? "\t" : "\r\n"; if (write( fd, sep, strlen(sep) ) != strlen(sep)) { - r = ERROR_FUNCTION_FAILED; + r = LIBMSI_RESULT_FUNCTION_FAILED; break; } } @@ -1064,9 +1064,9 @@ static unsigned msi_export_forcecodepage( int fd, unsigned codepage ) sz = strlen(data) + 1; if (write( fd, data, sz ) != sz) - return ERROR_FUNCTION_FAILED; + return LIBMSI_RESULT_FUNCTION_FAILED; - return ERROR_SUCCESS; + return LIBMSI_RESULT_SUCCESS; } static unsigned _libmsi_database_export( LibmsiDatabase *db, const WCHAR *table, @@ -1090,11 +1090,11 @@ static unsigned _libmsi_database_export( LibmsiDatabase *db, const WCHAR *table, } r = _libmsi_query_open( db, &view, query, table ); - if (r == ERROR_SUCCESS) + if (r == LIBMSI_RESULT_SUCCESS) { /* write out row 1, the column names */ r = _libmsi_query_get_column_info(view, LIBMSI_COL_INFO_NAMES, &rec); - if (r == ERROR_SUCCESS) + if (r == LIBMSI_RESULT_SUCCESS) { msi_export_record( fd, rec, 1 ); msiobj_release( &rec->hdr ); @@ -1102,7 +1102,7 @@ static unsigned _libmsi_database_export( LibmsiDatabase *db, const WCHAR *table, /* write out row 2, the column types */ r = _libmsi_query_get_column_info(view, LIBMSI_COL_INFO_TYPES, &rec); - if (r == ERROR_SUCCESS) + if (r == LIBMSI_RESULT_SUCCESS) { msi_export_record( fd, rec, 1 ); msiobj_release( &rec->hdr ); @@ -1110,7 +1110,7 @@ static unsigned _libmsi_database_export( LibmsiDatabase *db, const WCHAR *table, /* write out row 3, the table name + keys */ r = _libmsi_database_get_primary_keys( db, table, &rec ); - if (r == ERROR_SUCCESS) + if (r == LIBMSI_RESULT_SUCCESS) { _libmsi_record_set_stringW( rec, 0, table ); msi_export_record( fd, rec, 0 ); @@ -1141,13 +1141,13 @@ done: * * row4 : data <tab> data <tab> data <tab> ... data <cr> <lf> */ -unsigned libmsi_database_export( LibmsiDatabase *db, const char *szTable, +LibmsiResult libmsi_database_export( LibmsiDatabase *db, const char *szTable, int fd ) { WCHAR *path = NULL; WCHAR *file = NULL; WCHAR *table = NULL; - unsigned r = ERROR_OUTOFMEMORY; + unsigned r = LIBMSI_RESULT_OUTOFMEMORY; TRACE("%x %s %d\n", db, debugstr_a(szTable), fd); @@ -1159,7 +1159,7 @@ unsigned libmsi_database_export( LibmsiDatabase *db, const char *szTable, } if( !db ) - return ERROR_INVALID_HANDLE; + return LIBMSI_RESULT_INVALID_HANDLE; msiobj_addref ( &db->hdr ); r = _libmsi_database_export( db, table, fd ); @@ -1221,11 +1221,11 @@ static unsigned merge_verify_colnames(LibmsiQuery *dbview, LibmsiQuery *mergevie unsigned r, i, count; r = _libmsi_query_get_column_info(dbview, LIBMSI_COL_INFO_NAMES, &dbrec); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) return r; r = _libmsi_query_get_column_info(mergeview, LIBMSI_COL_INFO_NAMES, &mergerec); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) return r; count = libmsi_record_get_field_count(dbrec); @@ -1236,7 +1236,7 @@ static unsigned merge_verify_colnames(LibmsiQuery *dbview, LibmsiQuery *mergevie if (strcmpW( _libmsi_record_get_string_raw( dbrec, i ), _libmsi_record_get_string_raw( mergerec, i ) )) { - r = ERROR_DATATYPE_MISMATCH; + r = LIBMSI_RESULT_DATATYPE_MISMATCH; goto done; } } @@ -1246,11 +1246,11 @@ static unsigned merge_verify_colnames(LibmsiQuery *dbview, LibmsiQuery *mergevie dbrec = mergerec = NULL; r = _libmsi_query_get_column_info(dbview, LIBMSI_COL_INFO_TYPES, &dbrec); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) return r; r = _libmsi_query_get_column_info(mergeview, LIBMSI_COL_INFO_TYPES, &mergerec); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) return r; count = libmsi_record_get_field_count(dbrec); @@ -1262,7 +1262,7 @@ static unsigned merge_verify_colnames(LibmsiQuery *dbview, LibmsiQuery *mergevie if (!merge_type_match(_libmsi_record_get_string_raw(dbrec, i), _libmsi_record_get_string_raw(mergerec, i))) { - r = ERROR_DATATYPE_MISMATCH; + r = LIBMSI_RESULT_DATATYPE_MISMATCH; break; } } @@ -1281,17 +1281,17 @@ static unsigned merge_verify_primary_keys(LibmsiDatabase *db, LibmsiDatabase *me unsigned r, i, count; r = _libmsi_database_get_primary_keys(db, table, &dbrec); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) return r; r = _libmsi_database_get_primary_keys(mergedb, table, &mergerec); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) goto done; count = libmsi_record_get_field_count(dbrec); if (count != libmsi_record_get_field_count(mergerec)) { - r = ERROR_DATATYPE_MISMATCH; + r = LIBMSI_RESULT_DATATYPE_MISMATCH; goto done; } @@ -1299,7 +1299,7 @@ static unsigned merge_verify_primary_keys(LibmsiDatabase *db, LibmsiDatabase *me { if (strcmpW( _libmsi_record_get_string_raw( dbrec, i ), _libmsi_record_get_string_raw( mergerec, i ) )) { - r = ERROR_DATATYPE_MISMATCH; + r = LIBMSI_RESULT_DATATYPE_MISMATCH; goto done; } } @@ -1320,7 +1320,7 @@ static WCHAR *get_key_value(LibmsiQuery *view, const WCHAR *key, LibmsiRecord *r int cmp; r = _libmsi_query_get_column_info(view, LIBMSI_COL_INFO_NAMES, &colnames); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) return NULL; do @@ -1333,7 +1333,7 @@ static WCHAR *get_key_value(LibmsiQuery *view, const WCHAR *key, LibmsiRecord *r msiobj_release(&colnames->hdr); r = _libmsi_record_get_stringW(rec, i, NULL, &sz); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) return NULL; sz++; @@ -1360,7 +1360,7 @@ static WCHAR *get_key_value(LibmsiQuery *view, const WCHAR *key, LibmsiRecord *r r = _libmsi_record_get_stringW(rec, i, val, &sz); } - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) { ERR("failed to get string!\n"); msi_free(val); @@ -1391,7 +1391,7 @@ static WCHAR *create_diff_row_query(LibmsiDatabase *merge, LibmsiQuery *view, 'W','H','E','R','E',' ','%','s',0}; r = _libmsi_database_get_primary_keys(merge, table, &keys); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) return NULL; clause = msi_alloc_zero(sizeof(WCHAR)); @@ -1444,45 +1444,45 @@ static unsigned merge_diff_row(LibmsiRecord *rec, void *param) LibmsiQuery *dbview = NULL; LibmsiRecord *row = NULL; WCHAR *query = NULL; - unsigned r = ERROR_SUCCESS; + unsigned r = LIBMSI_RESULT_SUCCESS; if (table_view_exists(data->db, table->name)) { query = create_diff_row_query(data->merge, data->curview, table->name, rec); if (!query) - return ERROR_OUTOFMEMORY; + return LIBMSI_RESULT_OUTOFMEMORY; r = _libmsi_database_open_query(data->db, query, &dbview); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) goto done; r = _libmsi_query_execute(dbview, NULL); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) goto done; r = _libmsi_query_fetch(dbview, &row); - if (r == ERROR_SUCCESS && !_libmsi_record_compare(rec, row)) + if (r == LIBMSI_RESULT_SUCCESS && !_libmsi_record_compare(rec, row)) { table->numconflicts++; goto done; } - else if (r != ERROR_NO_MORE_ITEMS) + else if (r != LIBMSI_RESULT_NO_MORE_ITEMS) goto done; - r = ERROR_SUCCESS; + r = LIBMSI_RESULT_SUCCESS; } mergerow = msi_alloc(sizeof(MERGEROW)); if (!mergerow) { - r = ERROR_OUTOFMEMORY; + r = LIBMSI_RESULT_OUTOFMEMORY; goto done; } mergerow->data = _libmsi_record_clone(rec); if (!mergerow->data) { - r = ERROR_OUTOFMEMORY; + r = LIBMSI_RESULT_OUTOFMEMORY; msi_free(mergerow); goto done; } @@ -1502,7 +1502,7 @@ static unsigned msi_get_table_labels(LibmsiDatabase *db, const WCHAR *table, WCH LibmsiRecord *prec = NULL; r = _libmsi_database_get_primary_keys(db, table, &prec); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) return r; count = libmsi_record_get_field_count(prec); @@ -1510,7 +1510,7 @@ static unsigned msi_get_table_labels(LibmsiDatabase *db, const WCHAR *table, WCH *labels = msi_alloc((*numlabels)*sizeof(WCHAR *)); if (!*labels) { - r = ERROR_OUTOFMEMORY; + r = LIBMSI_RESULT_OUTOFMEMORY; goto end; } @@ -1531,14 +1531,14 @@ static unsigned msi_get_query_columns(LibmsiQuery *query, WCHAR ***columns, unsi LibmsiRecord *prec = NULL; r = _libmsi_query_get_column_info(query, LIBMSI_COL_INFO_NAMES, &prec); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) return r; count = libmsi_record_get_field_count(prec); *columns = msi_alloc(count*sizeof(WCHAR *)); if (!*columns) { - r = ERROR_OUTOFMEMORY; + r = LIBMSI_RESULT_OUTOFMEMORY; goto end; } @@ -1560,14 +1560,14 @@ static unsigned msi_get_query_types(LibmsiQuery *query, WCHAR ***types, unsigned LibmsiRecord *prec = NULL; r = _libmsi_query_get_column_info(query, LIBMSI_COL_INFO_TYPES, &prec); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) return r; count = libmsi_record_get_field_count(prec); *types = msi_alloc(count*sizeof(WCHAR *)); if (!*types) { - r = ERROR_OUTOFMEMORY; + r = LIBMSI_RESULT_OUTOFMEMORY; goto end; } @@ -1643,23 +1643,23 @@ static unsigned msi_get_merge_table (LibmsiDatabase *db, const WCHAR *name, MERG if (!table) { *ptable = NULL; - return ERROR_OUTOFMEMORY; + return LIBMSI_RESULT_OUTOFMEMORY; } r = msi_get_table_labels(db, name, &table->labels, &table->numlabels); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) goto err; r = _libmsi_query_open(db, &mergeview, query, name); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) goto err; r = msi_get_query_columns(mergeview, &table->columns, &table->numcolumns); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) goto err; r = msi_get_query_types(mergeview, &table->types, &table->numtypes); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) goto err; list_init(&table->rows); @@ -1669,7 +1669,7 @@ static unsigned msi_get_merge_table (LibmsiDatabase *db, const WCHAR *name, MERG msiobj_release(&mergeview->hdr); *ptable = table; - return ERROR_SUCCESS; + return LIBMSI_RESULT_SUCCESS; err: msiobj_release(&mergeview->hdr); @@ -1693,32 +1693,32 @@ static unsigned merge_diff_tables(LibmsiRecord *rec, void *param) name = _libmsi_record_get_string_raw(rec, 1); r = _libmsi_query_open(data->merge, &mergeview, query, name); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) goto done; if (table_view_exists(data->db, name)) { r = _libmsi_query_open(data->db, &dbview, query, name); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) goto done; r = merge_verify_colnames(dbview, mergeview); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) goto done; r = merge_verify_primary_keys(data->db, data->merge, name); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) goto done; } r = msi_get_merge_table(data->merge, name, &table); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) goto done; data->curtable = table; data->curview = mergeview; r = _libmsi_query_iterate_records(mergeview, NULL, merge_diff_row, data); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) { free_merge_table(table); goto done; @@ -1743,7 +1743,7 @@ static unsigned gather_merge_data(LibmsiDatabase *db, LibmsiDatabase *merge, unsigned r; r = _libmsi_database_open_query(merge, query, &view); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) return r; data.db = db; @@ -1764,24 +1764,24 @@ static unsigned merge_table(LibmsiDatabase *db, MERGETABLE *table) { r = msi_add_table_to_db(db, table->columns, table->types, table->labels, table->numlabels, table->numcolumns); - if (r != ERROR_SUCCESS) - return ERROR_FUNCTION_FAILED; + if (r != LIBMSI_RESULT_SUCCESS) + return LIBMSI_RESULT_FUNCTION_FAILED; } LIST_FOR_EACH_ENTRY(row, &table->rows, MERGEROW, entry) { r = table_view_create(db, table->name, &tv); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) return r; r = tv->ops->insert_row(tv, row->data, -1, false); tv->ops->delete(tv); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) return r; } - return ERROR_SUCCESS; + return LIBMSI_RESULT_SUCCESS; } static unsigned update_merge_errors(LibmsiDatabase *db, const WCHAR *error, @@ -1808,17 +1808,17 @@ static unsigned update_merge_errors(LibmsiDatabase *db, const WCHAR *error, if (!table_view_exists(db, error)) { r = _libmsi_query_open(db, &view, create, error); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) return r; r = _libmsi_query_execute(view, NULL); msiobj_release(&view->hdr); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) return r; } r = _libmsi_query_open(db, &view, insert, error, table, numconflicts); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) return r; r = _libmsi_query_execute(view, NULL); @@ -1826,7 +1826,7 @@ static unsigned update_merge_errors(LibmsiDatabase *db, const WCHAR *error, return r; } -unsigned libmsi_database_merge(LibmsiDatabase *db, LibmsiDatabase *merge, +LibmsiResult libmsi_database_merge(LibmsiDatabase *db, LibmsiDatabase *merge, const char *szTableName) { struct list tabledata = LIST_INIT(tabledata); @@ -1840,16 +1840,16 @@ unsigned libmsi_database_merge(LibmsiDatabase *db, LibmsiDatabase *merge, debugstr_a(szTableName)); if (szTableName && !*szTableName) - return ERROR_INVALID_TABLE; + return LIBMSI_RESULT_INVALID_TABLE; if (!db || !merge) - return ERROR_INVALID_HANDLE; + return LIBMSI_RESULT_INVALID_HANDLE; szwTableName = strdupAtoW(szTableName); msiobj_addref( &db->hdr ); msiobj_addref( &merge->hdr ); r = gather_merge_data(db, merge, &tabledata); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) goto done; conflicts = false; @@ -1861,13 +1861,13 @@ unsigned libmsi_database_merge(LibmsiDatabase *db, LibmsiDatabase *merge, r = update_merge_errors(db, szwTableName, table->name, table->numconflicts); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) break; } else { r = merge_table(db, table); - if (r != ERROR_SUCCESS) + if (r != LIBMSI_RESULT_SUCCESS) break; } } @@ -1880,7 +1880,7 @@ unsigned libmsi_database_merge(LibmsiDatabase *db, LibmsiDatabase *merge, } if (conflicts) - r = ERROR_FUNCTION_FAILED; + r = LIBMSI_RESULT_FUNCTION_FAILED; done: msiobj_release(&db->hdr); @@ -1895,7 +1895,7 @@ LibmsiDBState libmsi_database_get_state( LibmsiDatabase *db ) TRACE("%d\n", db); if( !db ) - return ERROR_INVALID_HANDLE; + return LIBMSI_RESULT_INVALID_HANDLE; msiobj_addref( &db->hdr ); if (db->mode != LIBMSI_DB_OPEN_READONLY ) |