diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2012-10-23 10:06:48 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2012-12-06 20:26:29 +0100 |
commit | ee54109d9b784c72b25418933494e0691f42c2e8 (patch) | |
tree | 25fe1e3793887a5ab1c16b507149d416dd5c4b2c /libmsi | |
parent | 4194f5245fd2c0277f432bc0b7be4e681d546af2 (diff) | |
download | msitools-ee54109d9b784c72b25418933494e0691f42c2e8.tar.gz msitools-ee54109d9b784c72b25418933494e0691f42c2e8.tar.xz msitools-ee54109d9b784c72b25418933494e0691f42c2e8.zip |
get rid of handles
Diffstat (limited to 'libmsi')
-rw-r--r-- | libmsi/database.c | 37 | ||||
-rw-r--r-- | libmsi/handle.c | 213 | ||||
-rw-r--r-- | libmsi/msipriv.h | 50 | ||||
-rw-r--r-- | libmsi/msiquery.c | 104 | ||||
-rw-r--r-- | libmsi/record.c | 64 | ||||
-rw-r--r-- | libmsi/suminfo.c | 50 |
6 files changed, 159 insertions, 359 deletions
diff --git a/libmsi/database.c b/libmsi/database.c index d8f264a..e37bcb8 100644 --- a/libmsi/database.c +++ b/libmsi/database.c @@ -239,7 +239,7 @@ void append_storage_to_db( MSIDATABASE *db, IStorage *stg ) free_streams( db ); } -static VOID MSI_CloseDatabase( MSIOBJECTHDR *arg ) +static VOID MSI_CloseDatabase( MSIOBJECT *arg ) { MSIDATABASE *db = (MSIDATABASE *) arg; @@ -398,7 +398,7 @@ UINT MSI_OpenDatabaseW(LPCWSTR szDBPath, LPCWSTR szPersist, MSIDATABASE **pdb) goto end; } - db = alloc_msiobject( MSIHANDLETYPE_DATABASE, sizeof (MSIDATABASE), + db = alloc_msiobject( MSIOBJECTTYPE_DATABASE, sizeof (MSIDATABASE), MSI_CloseDatabase ); if( !db ) { @@ -449,7 +449,7 @@ end: return ret; } -UINT WINAPI MsiOpenDatabaseW(LPCWSTR szDBPath, LPCWSTR szPersist, MSIHANDLE *phDB) +UINT WINAPI MsiOpenDatabaseW(LPCWSTR szDBPath, LPCWSTR szPersist, PMSIOBJECT *phDB) { MSIDATABASE *db; UINT ret; @@ -459,16 +459,13 @@ UINT WINAPI MsiOpenDatabaseW(LPCWSTR szDBPath, LPCWSTR szPersist, MSIHANDLE *phD ret = MSI_OpenDatabaseW( szDBPath, szPersist, &db ); if( ret == ERROR_SUCCESS ) { - *phDB = alloc_msihandle( &db->hdr ); - if (! *phDB) - ret = ERROR_NOT_ENOUGH_MEMORY; - msiobj_release( &db->hdr ); + *phDB = &db->hdr; } return ret; } -UINT WINAPI MsiOpenDatabaseA(LPCSTR szDBPath, LPCSTR szPersist, MSIHANDLE *phDB) +UINT WINAPI MsiOpenDatabaseA(LPCSTR szDBPath, LPCSTR szPersist, PMSIOBJECT *phDB) { HRESULT r = ERROR_FUNCTION_FAILED; LPWSTR szwDBPath = NULL, szwPersist = NULL; @@ -1016,14 +1013,14 @@ done: return r; } -UINT WINAPI MsiDatabaseImportW(MSIHANDLE handle, LPCWSTR szFolder, LPCWSTR szFilename) +UINT WINAPI MsiDatabaseImportW(PMSIOBJECT handle, LPCWSTR szFolder, LPCWSTR szFilename) { MSIDATABASE *db; UINT r; TRACE("%x %s %s\n",handle,debugstr_w(szFolder), debugstr_w(szFilename)); - db = msihandle2msiinfo( handle, MSIHANDLETYPE_DATABASE ); + db = msihandle2msiinfo( handle, MSIOBJECTTYPE_DATABASE ); if( !db ) return ERROR_INVALID_HANDLE; r = MSI_DatabaseImport( db, szFolder, szFilename ); @@ -1031,7 +1028,7 @@ UINT WINAPI MsiDatabaseImportW(MSIHANDLE handle, LPCWSTR szFolder, LPCWSTR szFil return r; } -UINT WINAPI MsiDatabaseImportA( MSIHANDLE handle, +UINT WINAPI MsiDatabaseImportA( PMSIOBJECT handle, LPCSTR szFolder, LPCSTR szFilename ) { LPWSTR path = NULL, file = NULL; @@ -1223,7 +1220,7 @@ done: * * row4 : data <tab> data <tab> data <tab> ... data <cr> <lf> */ -UINT WINAPI MsiDatabaseExportW( MSIHANDLE handle, LPCWSTR szTable, +UINT WINAPI MsiDatabaseExportW( PMSIOBJECT handle, LPCWSTR szTable, LPCWSTR szFolder, LPCWSTR szFilename ) { MSIDATABASE *db; @@ -1232,7 +1229,7 @@ UINT WINAPI MsiDatabaseExportW( MSIHANDLE handle, LPCWSTR szTable, TRACE("%x %s %s %s\n", handle, debugstr_w(szTable), debugstr_w(szFolder), debugstr_w(szFilename)); - db = msihandle2msiinfo( handle, MSIHANDLETYPE_DATABASE ); + db = msihandle2msiinfo( handle, MSIOBJECTTYPE_DATABASE ); if( !db ) return ERROR_INVALID_HANDLE; r = MSI_DatabaseExport( db, szTable, szFolder, szFilename ); @@ -1240,7 +1237,7 @@ UINT WINAPI MsiDatabaseExportW( MSIHANDLE handle, LPCWSTR szTable, return r; } -UINT WINAPI MsiDatabaseExportA( MSIHANDLE handle, LPCSTR szTable, +UINT WINAPI MsiDatabaseExportA( PMSIOBJECT handle, LPCSTR szTable, LPCSTR szFolder, LPCSTR szFilename ) { LPWSTR path = NULL, file = NULL, table = NULL; @@ -1280,7 +1277,7 @@ end: return r; } -UINT WINAPI MsiDatabaseMergeA(MSIHANDLE hDatabase, MSIHANDLE hDatabaseMerge, +UINT WINAPI MsiDatabaseMergeA(PMSIOBJECT hDatabase, PMSIOBJECT hDatabaseMerge, LPCSTR szTableName) { UINT r; @@ -1945,7 +1942,7 @@ static UINT update_merge_errors(MSIDATABASE *db, LPCWSTR error, return r; } -UINT WINAPI MsiDatabaseMergeW(MSIHANDLE hDatabase, MSIHANDLE hDatabaseMerge, +UINT WINAPI MsiDatabaseMergeW(PMSIOBJECT hDatabase, PMSIOBJECT hDatabaseMerge, LPCWSTR szTableName) { struct list tabledata = LIST_INIT(tabledata); @@ -1961,8 +1958,8 @@ UINT WINAPI MsiDatabaseMergeW(MSIHANDLE hDatabase, MSIHANDLE hDatabaseMerge, if (szTableName && !*szTableName) return ERROR_INVALID_TABLE; - db = msihandle2msiinfo(hDatabase, MSIHANDLETYPE_DATABASE); - merge = msihandle2msiinfo(hDatabaseMerge, MSIHANDLETYPE_DATABASE); + db = msihandle2msiinfo(hDatabase, MSIOBJECTTYPE_DATABASE); + merge = msihandle2msiinfo(hDatabaseMerge, MSIOBJECTTYPE_DATABASE); if (!db || !merge) { r = ERROR_INVALID_HANDLE; @@ -2009,14 +2006,14 @@ done: return r; } -MSIDBSTATE WINAPI MsiGetDatabaseState( MSIHANDLE handle ) +MSIDBSTATE WINAPI MsiGetDatabaseState( PMSIOBJECT handle ) { MSIDBSTATE ret = MSIDBSTATE_READ; MSIDATABASE *db; TRACE("%d\n", handle); - db = msihandle2msiinfo( handle, MSIHANDLETYPE_DATABASE ); + db = msihandle2msiinfo( handle, MSIOBJECTTYPE_DATABASE ); if( !db ) return ERROR_INVALID_HANDLE; if (db->mode != MSIDBOPEN_READONLY ) diff --git a/libmsi/handle.c b/libmsi/handle.c index cf6f901..bf1fb98 100644 --- a/libmsi/handle.c +++ b/libmsi/handle.c @@ -31,16 +31,6 @@ #include "msipriv.h" -static CRITICAL_SECTION MSI_handle_cs; -static CRITICAL_SECTION_DEBUG MSI_handle_cs_debug = -{ - 0, 0, &MSI_handle_cs, - { &MSI_handle_cs_debug.ProcessLocksList, - &MSI_handle_cs_debug.ProcessLocksList }, - 0, 0, { (DWORD_PTR)(__FILE__ ": MSI_handle_cs") } -}; -static CRITICAL_SECTION MSI_handle_cs = { &MSI_handle_cs_debug, -1, 0, 0, 0, 0 }; - static CRITICAL_SECTION MSI_object_cs; static CRITICAL_SECTION_DEBUG MSI_object_cs_debug = { @@ -51,109 +41,24 @@ static CRITICAL_SECTION_DEBUG MSI_object_cs_debug = }; static CRITICAL_SECTION MSI_object_cs = { &MSI_object_cs_debug, -1, 0, 0, 0, 0 }; -typedef struct msi_handle_info_t -{ - MSIOBJECTHDR *obj; - DWORD dwThreadId; -} msi_handle_info; - -static msi_handle_info *msihandletable = NULL; -static unsigned int msihandletable_size = 0; - -void msi_free_handle_table(void) -{ - msi_free( msihandletable ); - msihandletable = NULL; - msihandletable_size = 0; - DeleteCriticalSection(&MSI_handle_cs); - DeleteCriticalSection(&MSI_object_cs); -} - -static MSIHANDLE alloc_handle_table_entry(void) -{ - UINT i; - - /* find a slot */ - for(i=0; i<msihandletable_size; i++) - if( !msihandletable[i].obj ) - break; - if( i==msihandletable_size ) - { - msi_handle_info *p; - int newsize; - if (msihandletable_size == 0) - { - newsize = 256; - p = msi_alloc_zero(newsize*sizeof(msi_handle_info)); - } - else - { - newsize = msihandletable_size * 2; - p = msi_realloc_zero(msihandletable, - newsize*sizeof(msi_handle_info)); - } - if (!p) - return 0; - msihandletable = p; - msihandletable_size = newsize; - } - return i + 1; -} - -MSIHANDLE alloc_msihandle( MSIOBJECTHDR *obj ) -{ - msi_handle_info *entry; - MSIHANDLE ret; - - EnterCriticalSection( &MSI_handle_cs ); - - ret = alloc_handle_table_entry(); - if (ret) - { - entry = &msihandletable[ ret - 1 ]; - msiobj_addref( obj ); - entry->obj = obj; - entry->dwThreadId = GetCurrentThreadId(); - } - - LeaveCriticalSection( &MSI_handle_cs ); - - TRACE("%p -> %d\n", obj, ret ); - - return ret; -} - -void *msihandle2msiinfo(MSIHANDLE handle, UINT type) +void *msihandle2msiinfo(PMSIOBJECT obj, UINT type) { - MSIOBJECTHDR *ret = NULL; - - EnterCriticalSection( &MSI_handle_cs ); - handle--; - if( handle >= msihandletable_size ) - goto out; - if( !msihandletable[handle].obj ) - goto out; - if( msihandletable[handle].obj->magic != MSIHANDLE_MAGIC ) - goto out; - if( type && (msihandletable[handle].obj->type != type) ) - goto out; - ret = msihandletable[handle].obj; - msiobj_addref( ret ); - -out: - LeaveCriticalSection( &MSI_handle_cs ); + if( !obj ) + return NULL; + if( type && obj->type != type ) + return NULL; - return ret; + msiobj_addref( obj ); + return obj; } void *alloc_msiobject(UINT type, UINT size, msihandledestructor destroy ) { - MSIOBJECTHDR *info; + MSIOBJECT *info; info = msi_alloc_zero( size ); if( info ) { - info->magic = MSIHANDLE_MAGIC; info->type = type; info->refcount = 1; info->destructor = destroy; @@ -162,50 +67,38 @@ void *alloc_msiobject(UINT type, UINT size, msihandledestructor destroy ) return info; } -void msiobj_addref( MSIOBJECTHDR *info ) +void msiobj_addref( MSIOBJECT *info ) { if( !info ) return; - if( info->magic != MSIHANDLE_MAGIC ) - { - ERR("Invalid handle!\n"); - return; - } - InterlockedIncrement(&info->refcount); } -void msiobj_lock( MSIOBJECTHDR *info ) +void msiobj_lock( MSIOBJECT *obj ) { EnterCriticalSection( &MSI_object_cs ); } -void msiobj_unlock( MSIOBJECTHDR *info ) +void msiobj_unlock( MSIOBJECT *obj ) { LeaveCriticalSection( &MSI_object_cs ); } -int msiobj_release( MSIOBJECTHDR *info ) +int msiobj_release( MSIOBJECT *obj ) { int ret; - if( !info ) - return -1; - - if( info->magic != MSIHANDLE_MAGIC ) - { - ERR("Invalid handle!\n"); + if( !obj ) return -1; - } - ret = InterlockedDecrement( &info->refcount ); + ret = InterlockedDecrement( &obj->refcount ); if( ret==0 ) { - if( info->destructor ) - info->destructor( info ); - msi_free( info ); - TRACE("object %p destroyed\n", info); + if( obj->destructor ) + obj->destructor( obj ); + msi_free( obj ); + TRACE("object %p destroyed\n", obj); } return ret; @@ -214,72 +107,12 @@ int msiobj_release( MSIOBJECTHDR *info ) /*********************************************************** * MsiCloseHandle [MSI.@] */ -UINT WINAPI MsiCloseHandle(MSIHANDLE handle) +UINT WINAPI MsiCloseHandle(PMSIOBJECT obj) { - MSIOBJECTHDR *info = NULL; - UINT ret = ERROR_INVALID_HANDLE; - - TRACE("%x\n",handle); - - if (!handle) - return ERROR_SUCCESS; - - EnterCriticalSection( &MSI_handle_cs ); - - handle--; - if (handle >= msihandletable_size) - goto out; - - info = msihandletable[handle].obj; - if( !info ) - goto out; - - if( info->magic != MSIHANDLE_MAGIC ) - { - ERR("Invalid handle!\n"); - goto out; - } - - msihandletable[handle].obj = NULL; - msihandletable[handle].dwThreadId = 0; + TRACE("%x\n",obj); - ret = ERROR_SUCCESS; - - TRACE("handle %x destroyed\n", handle+1); -out: - LeaveCriticalSection( &MSI_handle_cs ); - if( info ) - msiobj_release( info ); - - return ret; -} - -/*********************************************************** - * MsiCloseAllHandles [MSI.@] - * - * Closes all handles owned by the current thread - * - * RETURNS: - * The number of handles closed - */ -UINT WINAPI MsiCloseAllHandles(void) -{ - UINT i, n=0; - - TRACE("\n"); - - EnterCriticalSection( &MSI_handle_cs ); - for(i=0; i<msihandletable_size; i++) - { - if(msihandletable[i].dwThreadId == GetCurrentThreadId()) - { - LeaveCriticalSection( &MSI_handle_cs ); - MsiCloseHandle( i+1 ); - EnterCriticalSection( &MSI_handle_cs ); - n++; - } - } - LeaveCriticalSection( &MSI_handle_cs ); + if( obj ) + msiobj_release( obj ); - return n; + return ERROR_SUCCESS; } diff --git a/libmsi/msipriv.h b/libmsi/msipriv.h index 0e950ee..ae7d862 100644 --- a/libmsi/msipriv.h +++ b/libmsi/msipriv.h @@ -55,12 +55,12 @@ typedef struct tagMSITABLE MSITABLE; struct string_table; typedef struct string_table string_table; -struct tagMSIOBJECTHDR; -typedef struct tagMSIOBJECTHDR MSIOBJECTHDR; +struct tagMSIOBJECT; +typedef struct tagMSIOBJECT MSIOBJECT; -typedef VOID (*msihandledestructor)( MSIOBJECTHDR * ); +typedef VOID (*msihandledestructor)( MSIOBJECT * ); -struct tagMSIOBJECTHDR +struct tagMSIOBJECT { UINT magic; UINT type; @@ -73,7 +73,7 @@ struct tagMSIOBJECTHDR typedef struct tagMSIDATABASE { - MSIOBJECTHDR hdr; + MSIOBJECT hdr; IStorage *storage; string_table *strings; UINT bytes_per_strref; @@ -91,7 +91,7 @@ typedef struct tagMSIVIEW MSIVIEW; typedef struct tagMSIQUERY { - MSIOBJECTHDR hdr; + MSIOBJECT hdr; MSIVIEW *view; UINT row; MSIDATABASE *db; @@ -113,7 +113,7 @@ typedef struct tagMSIFIELD typedef struct tagMSIRECORD { - MSIOBJECTHDR hdr; + MSIOBJECT hdr; UINT count; /* as passed to MsiCreateRecord */ MSIFIELD fields[1]; /* nb. array size is count+1 */ } MSIRECORD; @@ -256,7 +256,7 @@ typedef struct tagMSIVIEWOPS struct tagMSIVIEW { - MSIOBJECTHDR hdr; + MSIOBJECT hdr; const MSIVIEWOPS *ops; MSIDBERROR error; const WCHAR *error_column; @@ -266,21 +266,21 @@ struct tagMSIVIEW typedef struct tagMSISUMMARYINFO { - MSIOBJECTHDR hdr; + MSIOBJECT hdr; IStorage *storage; DWORD update_count; PROPVARIANT property[MSI_MAX_PROPS]; } MSISUMMARYINFO; -#define MSIHANDLETYPE_ANY 0 -#define MSIHANDLETYPE_DATABASE 1 -#define MSIHANDLETYPE_SUMMARYINFO 2 -#define MSIHANDLETYPE_VIEW 3 -#define MSIHANDLETYPE_RECORD 4 -#define MSIHANDLETYPE_PACKAGE 5 -#define MSIHANDLETYPE_PREVIEW 6 +#define MSIOBJECTTYPE_ANY 0 +#define MSIOBJECTTYPE_DATABASE 1 +#define MSIOBJECTTYPE_SUMMARYINFO 2 +#define MSIOBJECTTYPE_VIEW 3 +#define MSIOBJECTTYPE_RECORD 4 +#define MSIOBJECTTYPE_PACKAGE 5 +#define MSIOBJECTTYPE_PREVIEW 6 -#define MSIHANDLE_MAGIC 0x4d434923 +#define PMSIOBJECT_MAGIC 0x4d434923 /* handle unicode/ascii output in the Msi* API functions */ typedef struct { @@ -302,14 +302,14 @@ typedef struct { UINT msi_strcpy_to_awstring( LPCWSTR str, awstring *awbuf, DWORD *sz ); /* handle functions */ -extern void *msihandle2msiinfo(MSIHANDLE handle, UINT type); -extern MSIHANDLE alloc_msihandle( MSIOBJECTHDR * ); -extern MSIHANDLE alloc_msi_remote_handle( IUnknown *unk ); +extern void *msihandle2msiinfo(PMSIOBJECT handle, UINT type); +extern PMSIOBJECT alloc_msihandle( MSIOBJECT * ); +extern PMSIOBJECT alloc_msi_remote_handle( IUnknown *unk ); extern void *alloc_msiobject(UINT type, UINT size, msihandledestructor destroy ); -extern void msiobj_addref(MSIOBJECTHDR *); -extern int msiobj_release(MSIOBJECTHDR *); -extern void msiobj_lock(MSIOBJECTHDR *); -extern void msiobj_unlock(MSIOBJECTHDR *); +extern void msiobj_addref(MSIOBJECT *); +extern int msiobj_release(MSIOBJECT *); +extern void msiobj_lock(MSIOBJECT *); +extern void msiobj_unlock(MSIOBJECT *); extern void msi_free_handle_table(void); extern void free_cached_tables( MSIDATABASE *db ); @@ -348,7 +348,7 @@ extern UINT MSI_DatabaseApplyTransformW( MSIDATABASE *db, extern void append_storage_to_db( MSIDATABASE *db, IStorage *stg ); /* record internals */ -extern void MSI_CloseRecord( MSIOBJECTHDR * ); +extern void MSI_CloseRecord( MSIOBJECT * ); extern UINT MSI_RecordSetIStream( MSIRECORD *, UINT, IStream *); extern UINT MSI_RecordGetIStream( MSIRECORD *, UINT, IStream **); extern const WCHAR *MSI_RecordGetString( const MSIRECORD *, UINT ); diff --git a/libmsi/msiquery.c b/libmsi/msiquery.c index f624879..2c73a90 100644 --- a/libmsi/msiquery.c +++ b/libmsi/msiquery.c @@ -39,7 +39,7 @@ #include "initguid.h" -static void MSI_CloseView( MSIOBJECTHDR *arg ) +static void MSI_CloseView( MSIOBJECT *arg ) { MSIQUERY *query = (MSIQUERY*) arg; struct list *ptr, *t; @@ -83,8 +83,8 @@ UINT VIEW_find_column( MSIVIEW *table, LPCWSTR name, LPCWSTR table_name, UINT *n return ERROR_INVALID_PARAMETER; } -UINT WINAPI MsiDatabaseOpenViewA(MSIHANDLE hdb, - LPCSTR szQuery, MSIHANDLE *phView) +UINT WINAPI MsiDatabaseOpenViewA(PMSIOBJECT hdb, + LPCSTR szQuery, PMSIOBJECT *phView) { UINT r; LPWSTR szwQuery; @@ -118,7 +118,7 @@ UINT MSI_DatabaseOpenViewW(MSIDATABASE *db, return ERROR_INVALID_PARAMETER; /* pre allocate a handle to hold a pointer to the view */ - query = alloc_msiobject( MSIHANDLETYPE_VIEW, sizeof (MSIQUERY), + query = alloc_msiobject( MSIOBJECTTYPE_VIEW, sizeof (MSIQUERY), MSI_CloseView ); if( !query ) return ERROR_FUNCTION_FAILED; @@ -236,8 +236,8 @@ MSIRECORD *MSI_QueryGetRecord( MSIDATABASE *db, LPCWSTR fmt, ... ) return rec; } -UINT WINAPI MsiDatabaseOpenViewW(MSIHANDLE hdb, - LPCWSTR szQuery, MSIHANDLE *phView) +UINT WINAPI MsiDatabaseOpenViewW(PMSIOBJECT hdb, + LPCWSTR szQuery, PMSIOBJECT *phView) { MSIDATABASE *db; MSIQUERY *query = NULL; @@ -245,18 +245,13 @@ UINT WINAPI MsiDatabaseOpenViewW(MSIHANDLE hdb, TRACE("%s %p\n", debugstr_w(szQuery), phView); - db = msihandle2msiinfo( hdb, MSIHANDLETYPE_DATABASE ); + db = msihandle2msiinfo( hdb, MSIOBJECTTYPE_DATABASE ); if( !db ) return ERROR_INVALID_HANDLE; ret = MSI_DatabaseOpenViewW( db, szQuery, &query ); if( ret == ERROR_SUCCESS ) - { - *phView = alloc_msihandle( &query->hdr ); - if (! *phView) - ret = ERROR_NOT_ENOUGH_MEMORY; - msiobj_release( &query->hdr ); - } + *phView = &query->hdr; msiobj_release( &db->hdr ); return ret; @@ -361,7 +356,7 @@ UINT MSI_ViewFetch(MSIQUERY *query, MSIRECORD **prec) return r; } -UINT WINAPI MsiViewFetch(MSIHANDLE hView, MSIHANDLE *record) +UINT WINAPI MsiViewFetch(PMSIOBJECT hView, PMSIOBJECT *record) { MSIQUERY *query; MSIRECORD *rec = NULL; @@ -373,17 +368,12 @@ UINT WINAPI MsiViewFetch(MSIHANDLE hView, MSIHANDLE *record) return ERROR_INVALID_PARAMETER; *record = 0; - query = msihandle2msiinfo( hView, MSIHANDLETYPE_VIEW ); + query = msihandle2msiinfo( hView, MSIOBJECTTYPE_VIEW ); if( !query ) return ERROR_INVALID_HANDLE; ret = MSI_ViewFetch( query, &rec ); if( ret == ERROR_SUCCESS ) - { - *record = alloc_msihandle( &rec->hdr ); - if (! *record) - ret = ERROR_NOT_ENOUGH_MEMORY; - msiobj_release( &rec->hdr ); - } + *record = &rec->hdr; msiobj_release( &query->hdr ); return ret; } @@ -403,14 +393,14 @@ UINT MSI_ViewClose(MSIQUERY *query) return view->ops->close( view ); } -UINT WINAPI MsiViewClose(MSIHANDLE hView) +UINT WINAPI MsiViewClose(PMSIOBJECT hView) { MSIQUERY *query; UINT ret; TRACE("%d\n", hView ); - query = msihandle2msiinfo( hView, MSIHANDLETYPE_VIEW ); + query = msihandle2msiinfo( hView, MSIOBJECTTYPE_VIEW ); if( !query ) return ERROR_INVALID_HANDLE; @@ -435,7 +425,7 @@ UINT MSI_ViewExecute(MSIQUERY *query, MSIRECORD *rec ) return view->ops->execute( view, rec ); } -UINT WINAPI MsiViewExecute(MSIHANDLE hView, MSIHANDLE hRec) +UINT WINAPI MsiViewExecute(PMSIOBJECT hView, PMSIOBJECT hRec) { MSIQUERY *query; MSIRECORD *rec = NULL; @@ -443,13 +433,13 @@ UINT WINAPI MsiViewExecute(MSIHANDLE hView, MSIHANDLE hRec) TRACE("%d %d\n", hView, hRec); - query = msihandle2msiinfo( hView, MSIHANDLETYPE_VIEW ); + query = msihandle2msiinfo( hView, MSIOBJECTTYPE_VIEW ); if( !query ) return ERROR_INVALID_HANDLE; if( hRec ) { - rec = msihandle2msiinfo( hRec, MSIHANDLETYPE_RECORD ); + rec = msihandle2msiinfo( hRec, MSIOBJECTTYPE_RECORD ); if( !rec ) { ret = ERROR_INVALID_HANDLE; @@ -545,7 +535,7 @@ UINT MSI_ViewGetColumnInfo( MSIQUERY *query, MSICOLINFO info, MSIRECORD **prec ) return ERROR_SUCCESS; } -UINT WINAPI MsiViewGetColumnInfo(MSIHANDLE hView, MSICOLINFO info, MSIHANDLE *hRec) +UINT WINAPI MsiViewGetColumnInfo(PMSIOBJECT hView, MSICOLINFO info, PMSIOBJECT *hRec) { MSIQUERY *query = NULL; MSIRECORD *rec = NULL; @@ -559,18 +549,13 @@ UINT WINAPI MsiViewGetColumnInfo(MSIHANDLE hView, MSICOLINFO info, MSIHANDLE *hR if( info != MSICOLINFO_NAMES && info != MSICOLINFO_TYPES ) return ERROR_INVALID_PARAMETER; - query = msihandle2msiinfo( hView, MSIHANDLETYPE_VIEW ); + query = msihandle2msiinfo( hView, MSIOBJECTTYPE_VIEW ); if( !query ) return ERROR_INVALID_HANDLE; r = MSI_ViewGetColumnInfo( query, info, &rec ); if ( r == ERROR_SUCCESS ) - { - *hRec = alloc_msihandle( &rec->hdr ); - if ( !*hRec ) - r = ERROR_NOT_ENOUGH_MEMORY; - msiobj_release( &rec->hdr ); - } + *hRec = &rec->hdr; msiobj_release( &query->hdr ); @@ -599,8 +584,8 @@ UINT MSI_ViewModify( MSIQUERY *query, MSIMODIFY mode, MSIRECORD *rec ) return r; } -UINT WINAPI MsiViewModify( MSIHANDLE hView, MSIMODIFY eModifyMode, - MSIHANDLE hRecord) +UINT WINAPI MsiViewModify( PMSIOBJECT hView, MSIMODIFY eModifyMode, + PMSIOBJECT hRecord) { MSIQUERY *query = NULL; MSIRECORD *rec = NULL; @@ -608,11 +593,11 @@ UINT WINAPI MsiViewModify( MSIHANDLE hView, MSIMODIFY eModifyMode, TRACE("%d %x %d\n", hView, eModifyMode, hRecord); - query = msihandle2msiinfo( hView, MSIHANDLETYPE_VIEW ); + query = msihandle2msiinfo( hView, MSIOBJECTTYPE_VIEW ); if( !query ) return ERROR_INVALID_HANDLE; - rec = msihandle2msiinfo( hRecord, MSIHANDLETYPE_RECORD ); + rec = msihandle2msiinfo( hRecord, MSIOBJECTTYPE_RECORD ); r = MSI_ViewModify( query, eModifyMode, rec ); msiobj_release( &query->hdr ); @@ -622,7 +607,7 @@ UINT WINAPI MsiViewModify( MSIHANDLE hView, MSIMODIFY eModifyMode, return r; } -MSIDBERROR WINAPI MsiViewGetErrorW( MSIHANDLE handle, LPWSTR buffer, LPDWORD buflen ) +MSIDBERROR WINAPI MsiViewGetErrorW( PMSIOBJECT handle, LPWSTR buffer, LPDWORD buflen ) { MSIQUERY *query; const WCHAR *column; @@ -634,7 +619,7 @@ MSIDBERROR WINAPI MsiViewGetErrorW( MSIHANDLE handle, LPWSTR buffer, LPDWORD buf if (!buflen) return MSIDBERROR_INVALIDARG; - query = msihandle2msiinfo( handle, MSIHANDLETYPE_VIEW ); + query = msihandle2msiinfo( handle, MSIOBJECTTYPE_VIEW ); if( !query ) return MSIDBERROR_INVALIDARG; @@ -654,7 +639,7 @@ MSIDBERROR WINAPI MsiViewGetErrorW( MSIHANDLE handle, LPWSTR buffer, LPDWORD buf return r; } -MSIDBERROR WINAPI MsiViewGetErrorA( MSIHANDLE handle, LPSTR buffer, LPDWORD buflen ) +MSIDBERROR WINAPI MsiViewGetErrorA( PMSIOBJECT handle, LPSTR buffer, LPDWORD buflen ) { MSIQUERY *query; const WCHAR *column; @@ -666,7 +651,7 @@ MSIDBERROR WINAPI MsiViewGetErrorA( MSIHANDLE handle, LPSTR buffer, LPDWORD bufl if (!buflen) return MSIDBERROR_INVALIDARG; - query = msihandle2msiinfo( handle, MSIHANDLETYPE_VIEW ); + query = msihandle2msiinfo( handle, MSIOBJECTTYPE_VIEW ); if (!query) return MSIDBERROR_INVALIDARG; @@ -686,7 +671,7 @@ MSIDBERROR WINAPI MsiViewGetErrorA( MSIHANDLE handle, LPSTR buffer, LPDWORD bufl return r; } -MSIHANDLE WINAPI MsiGetLastErrorRecord( void ) +PMSIOBJECT WINAPI MsiGetLastErrorRecord( void ) { FIXME("\n"); return 0; @@ -728,13 +713,13 @@ end: return ret; } -UINT WINAPI MsiDatabaseApplyTransformW( MSIHANDLE hdb, +UINT WINAPI MsiDatabaseApplyTransformW( PMSIOBJECT hdb, LPCWSTR szTransformFile, int iErrorCond) { MSIDATABASE *db; UINT r; - db = msihandle2msiinfo( hdb, MSIHANDLETYPE_DATABASE ); + db = msihandle2msiinfo( hdb, MSIOBJECTTYPE_DATABASE ); if( !db ) return ERROR_INVALID_HANDLE; r = MSI_DatabaseApplyTransformW( db, szTransformFile, iErrorCond ); @@ -742,7 +727,7 @@ UINT WINAPI MsiDatabaseApplyTransformW( MSIHANDLE hdb, return r; } -UINT WINAPI MsiDatabaseApplyTransformA( MSIHANDLE hdb, +UINT WINAPI MsiDatabaseApplyTransformA( PMSIOBJECT hdb, LPCSTR szTransformFile, int iErrorCond) { LPWSTR wstr; @@ -761,14 +746,14 @@ UINT WINAPI MsiDatabaseApplyTransformA( MSIHANDLE hdb, return ret; } -UINT WINAPI MsiDatabaseCommit( MSIHANDLE hdb ) +UINT WINAPI MsiDatabaseCommit( PMSIOBJECT hdb ) { MSIDATABASE *db; UINT r; TRACE("%d\n", hdb); - db = msihandle2msiinfo( hdb, MSIHANDLETYPE_DATABASE ); + db = msihandle2msiinfo( hdb, MSIOBJECTTYPE_DATABASE ); if( !db ) return ERROR_INVALID_HANDLE; @@ -869,8 +854,8 @@ UINT MSI_DatabaseGetPrimaryKeys( MSIDATABASE *db, return r; } -UINT WINAPI MsiDatabaseGetPrimaryKeysW( MSIHANDLE hdb, - LPCWSTR table, MSIHANDLE* phRec ) +UINT WINAPI MsiDatabaseGetPrimaryKeysW( PMSIOBJECT hdb, + LPCWSTR table, PMSIOBJECT* phRec ) { MSIRECORD *rec = NULL; MSIDATABASE *db; @@ -878,25 +863,20 @@ UINT WINAPI MsiDatabaseGetPrimaryKeysW( MSIHANDLE hdb, TRACE("%d %s %p\n", hdb, debugstr_w(table), phRec); - db = msihandle2msiinfo( hdb, MSIHANDLETYPE_DATABASE ); + db = msihandle2msiinfo( hdb, MSIOBJECTTYPE_DATABASE ); if( !db ) return ERROR_INVALID_HANDLE; r = MSI_DatabaseGetPrimaryKeys( db, table, &rec ); if( r == ERROR_SUCCESS ) - { - *phRec = alloc_msihandle( &rec->hdr ); - if (! *phRec) - r = ERROR_NOT_ENOUGH_MEMORY; - msiobj_release( &rec->hdr ); - } + *phRec = &rec->hdr; msiobj_release( &db->hdr ); return r; } -UINT WINAPI MsiDatabaseGetPrimaryKeysA(MSIHANDLE hdb, - LPCSTR table, MSIHANDLE* phRec) +UINT WINAPI MsiDatabaseGetPrimaryKeysA(PMSIOBJECT hdb, + LPCSTR table, PMSIOBJECT* phRec) { LPWSTR szwTable = NULL; UINT r; @@ -916,7 +896,7 @@ UINT WINAPI MsiDatabaseGetPrimaryKeysA(MSIHANDLE hdb, } MSICONDITION WINAPI MsiDatabaseIsTablePersistentA( - MSIHANDLE hDatabase, LPCSTR szTableName) + PMSIOBJECT hDatabase, LPCSTR szTableName) { LPWSTR szwTableName = NULL; MSICONDITION r; @@ -936,14 +916,14 @@ MSICONDITION WINAPI MsiDatabaseIsTablePersistentA( } MSICONDITION WINAPI MsiDatabaseIsTablePersistentW( - MSIHANDLE hDatabase, LPCWSTR szTableName) + PMSIOBJECT hDatabase, LPCWSTR szTableName) { MSIDATABASE *db; MSICONDITION r; TRACE("%x %s\n", hDatabase, debugstr_w(szTableName)); - db = msihandle2msiinfo( hDatabase, MSIHANDLETYPE_DATABASE ); + db = msihandle2msiinfo( hDatabase, MSIOBJECTTYPE_DATABASE ); if( !db ) return MSICONDITION_ERROR; diff --git a/libmsi/record.c b/libmsi/record.c index 9a0ee77..bfa4b58 100644 --- a/libmsi/record.c +++ b/libmsi/record.c @@ -63,7 +63,7 @@ static void MSI_FreeField( MSIFIELD *field ) } } -void MSI_CloseRecord( MSIOBJECTHDR *arg ) +void MSI_CloseRecord( MSIOBJECT *arg ) { MSIRECORD *rec = (MSIRECORD *) arg; UINT i; @@ -83,26 +83,20 @@ MSIRECORD *MSI_CreateRecord( UINT cParams ) return NULL; len = sizeof (MSIRECORD) + sizeof (MSIFIELD)*cParams; - rec = alloc_msiobject( MSIHANDLETYPE_RECORD, len, MSI_CloseRecord ); + rec = alloc_msiobject( MSIOBJECTTYPE_RECORD, len, MSI_CloseRecord ); if( rec ) rec->count = cParams; return rec; } -MSIHANDLE WINAPI MsiCreateRecord( UINT cParams ) +PMSIOBJECT WINAPI MsiCreateRecord( UINT cParams ) { MSIRECORD *rec; - MSIHANDLE ret = 0; TRACE("%d\n", cParams); rec = MSI_CreateRecord( cParams ); - if( rec ) - { - ret = alloc_msihandle( &rec->hdr ); - msiobj_release( &rec->hdr ); - } - return ret; + return &rec->hdr; } UINT MSI_RecordGetFieldCount( const MSIRECORD *rec ) @@ -110,14 +104,14 @@ UINT MSI_RecordGetFieldCount( const MSIRECORD *rec ) return rec->count; } -UINT WINAPI MsiRecordGetFieldCount( MSIHANDLE handle ) +UINT WINAPI MsiRecordGetFieldCount( PMSIOBJECT handle ) { MSIRECORD *rec; UINT ret; TRACE("%d\n", handle ); - rec = msihandle2msiinfo( handle, MSIHANDLETYPE_RECORD ); + rec = msihandle2msiinfo( handle, MSIOBJECTTYPE_RECORD ); if( !rec ) return -1; @@ -254,14 +248,14 @@ int MSI_RecordGetInteger( MSIRECORD *rec, UINT iField) return MSI_NULL_INTEGER; } -int WINAPI MsiRecordGetInteger( MSIHANDLE handle, UINT iField) +int WINAPI MsiRecordGetInteger( PMSIOBJECT handle, UINT iField) { MSIRECORD *rec; UINT ret; TRACE("%d %d\n", handle, iField ); - rec = msihandle2msiinfo( handle, MSIHANDLETYPE_RECORD ); + rec = msihandle2msiinfo( handle, MSIOBJECTTYPE_RECORD ); if( !rec ) return MSI_NULL_INTEGER; @@ -273,14 +267,14 @@ int WINAPI MsiRecordGetInteger( MSIHANDLE handle, UINT iField) return ret; } -UINT WINAPI MsiRecordClearData( MSIHANDLE handle ) +UINT WINAPI MsiRecordClearData( PMSIOBJECT handle ) { MSIRECORD *rec; UINT i; TRACE("%d\n", handle ); - rec = msihandle2msiinfo( handle, MSIHANDLETYPE_RECORD ); + rec = msihandle2msiinfo( handle, MSIOBJECTTYPE_RECORD ); if( !rec ) return ERROR_INVALID_HANDLE; @@ -325,14 +319,14 @@ UINT MSI_RecordSetInteger( MSIRECORD *rec, UINT iField, int iVal ) return ERROR_SUCCESS; } -UINT WINAPI MsiRecordSetInteger( MSIHANDLE handle, UINT iField, int iVal ) +UINT WINAPI MsiRecordSetInteger( PMSIOBJECT handle, UINT iField, int iVal ) { MSIRECORD *rec; UINT ret; TRACE("%d %u %d\n", handle, iField, iVal); - rec = msihandle2msiinfo( handle, MSIHANDLETYPE_RECORD ); + rec = msihandle2msiinfo( handle, MSIOBJECTTYPE_RECORD ); if( !rec ) return ERROR_INVALID_HANDLE; @@ -355,14 +349,14 @@ BOOL MSI_RecordIsNull( MSIRECORD *rec, UINT iField ) return r; } -BOOL WINAPI MsiRecordIsNull( MSIHANDLE handle, UINT iField ) +BOOL WINAPI MsiRecordIsNull( PMSIOBJECT handle, UINT iField ) { MSIRECORD *rec; UINT ret; TRACE("%d %d\n", handle, iField ); - rec = msihandle2msiinfo( handle, MSIHANDLETYPE_RECORD ); + rec = msihandle2msiinfo( handle, MSIOBJECTTYPE_RECORD ); if( !rec ) return 0; msiobj_lock( &rec->hdr ); @@ -426,7 +420,7 @@ UINT MSI_RecordGetStringA(MSIRECORD *rec, UINT iField, return ret; } -UINT WINAPI MsiRecordGetStringA(MSIHANDLE handle, UINT iField, +UINT WINAPI MsiRecordGetStringA(PMSIOBJECT handle, UINT iField, LPSTR szValue, LPDWORD pcchValue) { MSIRECORD *rec; @@ -434,7 +428,7 @@ UINT WINAPI MsiRecordGetStringA(MSIHANDLE handle, UINT iField, TRACE("%d %d %p %p\n", handle, iField, szValue, pcchValue); - rec = msihandle2msiinfo( handle, MSIHANDLETYPE_RECORD ); + rec = msihandle2msiinfo( handle, MSIOBJECTTYPE_RECORD ); if( !rec ) return ERROR_INVALID_HANDLE; msiobj_lock( &rec->hdr ); @@ -502,7 +496,7 @@ UINT MSI_RecordGetStringW(MSIRECORD *rec, UINT iField, return ret; } -UINT WINAPI MsiRecordGetStringW(MSIHANDLE handle, UINT iField, +UINT WINAPI MsiRecordGetStringW(PMSIOBJECT handle, UINT iField, LPWSTR szValue, LPDWORD pcchValue) { MSIRECORD *rec; @@ -510,7 +504,7 @@ UINT WINAPI MsiRecordGetStringW(MSIHANDLE handle, UINT iField, TRACE("%d %d %p %p\n", handle, iField, szValue, pcchValue); - rec = msihandle2msiinfo( handle, MSIHANDLETYPE_RECORD ); + rec = msihandle2msiinfo( handle, MSIOBJECTTYPE_RECORD ); if( !rec ) return ERROR_INVALID_HANDLE; @@ -553,14 +547,14 @@ static UINT MSI_RecordDataSize(MSIRECORD *rec, UINT iField) return 0; } -UINT WINAPI MsiRecordDataSize(MSIHANDLE handle, UINT iField) +UINT WINAPI MsiRecordDataSize(PMSIOBJECT handle, UINT iField) { MSIRECORD *rec; UINT ret; TRACE("%d %d\n", handle, iField); - rec = msihandle2msiinfo( handle, MSIHANDLETYPE_RECORD ); + rec = msihandle2msiinfo( handle, MSIOBJECTTYPE_RECORD ); if( !rec ) return 0; msiobj_lock( &rec->hdr ); @@ -595,14 +589,14 @@ static UINT MSI_RecordSetStringA( MSIRECORD *rec, UINT iField, LPCSTR szValue ) return 0; } -UINT WINAPI MsiRecordSetStringA( MSIHANDLE handle, UINT iField, LPCSTR szValue ) +UINT WINAPI MsiRecordSetStringA( PMSIOBJECT handle, UINT iField, LPCSTR szValue ) { MSIRECORD *rec; UINT ret; TRACE("%d %d %s\n", handle, iField, debugstr_a(szValue)); - rec = msihandle2msiinfo( handle, MSIHANDLETYPE_RECORD ); + rec = msihandle2msiinfo( handle, MSIOBJECTTYPE_RECORD ); if( !rec ) return ERROR_INVALID_HANDLE; msiobj_lock( &rec->hdr ); @@ -638,14 +632,14 @@ UINT MSI_RecordSetStringW( MSIRECORD *rec, UINT iField, LPCWSTR szValue ) return 0; } -UINT WINAPI MsiRecordSetStringW( MSIHANDLE handle, UINT iField, LPCWSTR szValue ) +UINT WINAPI MsiRecordSetStringW( PMSIOBJECT handle, UINT iField, LPCWSTR szValue ) { MSIRECORD *rec; UINT ret; TRACE("%d %d %s\n", handle, iField, debugstr_w(szValue)); - rec = msihandle2msiinfo( handle, MSIHANDLETYPE_RECORD ); + rec = msihandle2msiinfo( handle, MSIOBJECTTYPE_RECORD ); if( !rec ) return ERROR_INVALID_HANDLE; @@ -758,7 +752,7 @@ UINT MSI_RecordSetStreamFromFileW(MSIRECORD *rec, UINT iField, LPCWSTR szFilenam return ERROR_SUCCESS; } -UINT WINAPI MsiRecordSetStreamA(MSIHANDLE hRecord, UINT iField, LPCSTR szFilename) +UINT WINAPI MsiRecordSetStreamA(PMSIOBJECT hRecord, UINT iField, LPCSTR szFilename) { LPWSTR wstr = NULL; UINT ret; @@ -777,14 +771,14 @@ UINT WINAPI MsiRecordSetStreamA(MSIHANDLE hRecord, UINT iField, LPCSTR szFilenam return ret; } -UINT WINAPI MsiRecordSetStreamW(MSIHANDLE handle, UINT iField, LPCWSTR szFilename) +UINT WINAPI MsiRecordSetStreamW(PMSIOBJECT handle, UINT iField, LPCWSTR szFilename) { MSIRECORD *rec; UINT ret; TRACE("%d %d %s\n", handle, iField, debugstr_w(szFilename)); - rec = msihandle2msiinfo( handle, MSIHANDLETYPE_RECORD ); + rec = msihandle2msiinfo( handle, MSIOBJECTTYPE_RECORD ); if( !rec ) return ERROR_INVALID_HANDLE; @@ -853,14 +847,14 @@ UINT MSI_RecordReadStream(MSIRECORD *rec, UINT iField, char *buf, LPDWORD sz) return ERROR_SUCCESS; } -UINT WINAPI MsiRecordReadStream(MSIHANDLE handle, UINT iField, char *buf, LPDWORD sz) +UINT WINAPI MsiRecordReadStream(PMSIOBJECT handle, UINT iField, char *buf, LPDWORD sz) { MSIRECORD *rec; UINT ret; TRACE("%d %d %p %p\n", handle, iField, buf, sz); - rec = msihandle2msiinfo( handle, MSIHANDLETYPE_RECORD ); + rec = msihandle2msiinfo( handle, MSIOBJECTTYPE_RECORD ); if( !rec ) return ERROR_INVALID_HANDLE; msiobj_lock( &rec->hdr ); diff --git a/libmsi/suminfo.c b/libmsi/suminfo.c index 4cefaab..94edf9e 100644 --- a/libmsi/suminfo.c +++ b/libmsi/suminfo.c @@ -92,7 +92,7 @@ static void free_prop( PROPVARIANT *prop ) prop->vt = VT_EMPTY; } -static void MSI_CloseSummaryInfo( MSIOBJECTHDR *arg ) +static void MSI_CloseSummaryInfo( MSIOBJECT *arg ) { MSISUMMARYINFO *si = (MSISUMMARYINFO *) arg; DWORD i; @@ -434,7 +434,7 @@ MSISUMMARYINFO *MSI_GetSummaryInformationW( IStorage *stg, UINT uiUpdateCount ) TRACE("%p %d\n", stg, uiUpdateCount ); - si = alloc_msiobject( MSIHANDLETYPE_SUMMARYINFO, + si = alloc_msiobject( MSIOBJECTTYPE_SUMMARYINFO, sizeof (MSISUMMARYINFO), MSI_CloseSummaryInfo ); if( !si ) return si; @@ -455,8 +455,8 @@ MSISUMMARYINFO *MSI_GetSummaryInformationW( IStorage *stg, UINT uiUpdateCount ) return si; } -UINT WINAPI MsiGetSummaryInformationW( MSIHANDLE hDatabase, - LPCWSTR szDatabase, UINT uiUpdateCount, MSIHANDLE *pHandle ) +UINT WINAPI MsiGetSummaryInformationW( PMSIOBJECT hDatabase, + LPCWSTR szDatabase, UINT uiUpdateCount, PMSIOBJECT *pHandle ) { MSISUMMARYINFO *si; MSIDATABASE *db; @@ -478,7 +478,7 @@ UINT WINAPI MsiGetSummaryInformationW( MSIHANDLE hDatabase, } else { - db = msihandle2msiinfo( hDatabase, MSIHANDLETYPE_DATABASE ); + db = msihandle2msiinfo( hDatabase, MSIOBJECTTYPE_DATABASE ); if( !db ) return ERROR_INVALID_HANDLE; } @@ -486,20 +486,16 @@ UINT WINAPI MsiGetSummaryInformationW( MSIHANDLE hDatabase, si = MSI_GetSummaryInformationW( db->storage, uiUpdateCount ); if (si) { - *pHandle = alloc_msihandle( &si->hdr ); - if( *pHandle ) - ret = ERROR_SUCCESS; - else - ret = ERROR_NOT_ENOUGH_MEMORY; - msiobj_release( &si->hdr ); + *pHandle = &si->hdr; + ret = ERROR_SUCCESS; } msiobj_release( &db->hdr ); return ret; } -UINT WINAPI MsiGetSummaryInformationA(MSIHANDLE hDatabase, - LPCSTR szDatabase, UINT uiUpdateCount, MSIHANDLE *pHandle) +UINT WINAPI MsiGetSummaryInformationA(PMSIOBJECT hDatabase, + LPCSTR szDatabase, UINT uiUpdateCount, PMSIOBJECT *pHandle) { LPWSTR szwDatabase = NULL; UINT ret; @@ -521,13 +517,13 @@ UINT WINAPI MsiGetSummaryInformationA(MSIHANDLE hDatabase, return ret; } -UINT WINAPI MsiSummaryInfoGetPropertyCount(MSIHANDLE hSummaryInfo, PUINT pCount) +UINT WINAPI MsiSummaryInfoGetPropertyCount(PMSIOBJECT hSummaryInfo, PUINT pCount) { MSISUMMARYINFO *si; TRACE("%d %p\n", hSummaryInfo, pCount); - si = msihandle2msiinfo( hSummaryInfo, MSIHANDLETYPE_SUMMARYINFO ); + si = msihandle2msiinfo( hSummaryInfo, MSIOBJECTTYPE_SUMMARYINFO ); if( !si ) return ERROR_INVALID_HANDLE; @@ -538,7 +534,7 @@ UINT WINAPI MsiSummaryInfoGetPropertyCount(MSIHANDLE hSummaryInfo, PUINT pCount) return ERROR_SUCCESS; } -static UINT get_prop( MSIHANDLE handle, UINT uiProperty, UINT *puiDataType, +static UINT get_prop( PMSIOBJECT handle, UINT uiProperty, UINT *puiDataType, INT *piValue, FILETIME *pftValue, awstring *str, DWORD *pcchValueBuf) { MSISUMMARYINFO *si; @@ -554,7 +550,7 @@ static UINT get_prop( MSIHANDLE handle, UINT uiProperty, UINT *puiDataType, return ERROR_UNKNOWN_PROPERTY; } - si = msihandle2msiinfo( handle, MSIHANDLETYPE_SUMMARYINFO ); + si = msihandle2msiinfo( handle, MSIOBJECTTYPE_SUMMARYINFO ); if( !si ) return ERROR_INVALID_HANDLE; @@ -649,7 +645,7 @@ LPWSTR msi_get_suminfo_product( IStorage *stg ) } UINT WINAPI MsiSummaryInfoGetPropertyA( - MSIHANDLE handle, UINT uiProperty, PUINT puiDataType, LPINT piValue, + PMSIOBJECT handle, UINT uiProperty, PUINT puiDataType, LPINT piValue, FILETIME *pftValue, LPSTR szValueBuf, LPDWORD pcchValueBuf) { awstring str; @@ -665,7 +661,7 @@ UINT WINAPI MsiSummaryInfoGetPropertyA( } UINT WINAPI MsiSummaryInfoGetPropertyW( - MSIHANDLE handle, UINT uiProperty, PUINT puiDataType, LPINT piValue, + PMSIOBJECT handle, UINT uiProperty, PUINT puiDataType, LPINT piValue, FILETIME *pftValue, LPWSTR szValueBuf, LPDWORD pcchValueBuf) { awstring str; @@ -735,7 +731,7 @@ static UINT set_prop( MSISUMMARYINFO *si, UINT uiProperty, UINT type, return ERROR_SUCCESS; } -UINT WINAPI MsiSummaryInfoSetPropertyW( MSIHANDLE handle, UINT uiProperty, +UINT WINAPI MsiSummaryInfoSetPropertyW( PMSIOBJECT handle, UINT uiProperty, UINT uiDataType, INT iValue, FILETIME* pftValue, LPCWSTR szValue ) { awcstring str; @@ -755,7 +751,7 @@ UINT WINAPI MsiSummaryInfoSetPropertyW( MSIHANDLE handle, UINT uiProperty, if( uiDataType == VT_FILETIME && !pftValue ) return ERROR_INVALID_PARAMETER; - si = msihandle2msiinfo( handle, MSIHANDLETYPE_SUMMARYINFO ); + si = msihandle2msiinfo( handle, MSIOBJECTTYPE_SUMMARYINFO ); if( !si ) return ERROR_INVALID_HANDLE; @@ -767,7 +763,7 @@ UINT WINAPI MsiSummaryInfoSetPropertyW( MSIHANDLE handle, UINT uiProperty, return ret; } -UINT WINAPI MsiSummaryInfoSetPropertyA( MSIHANDLE handle, UINT uiProperty, +UINT WINAPI MsiSummaryInfoSetPropertyA( PMSIOBJECT handle, UINT uiProperty, UINT uiDataType, INT iValue, FILETIME* pftValue, LPCSTR szValue ) { awcstring str; @@ -787,7 +783,7 @@ UINT WINAPI MsiSummaryInfoSetPropertyA( MSIHANDLE handle, UINT uiProperty, if( uiDataType == VT_FILETIME && !pftValue ) return ERROR_INVALID_PARAMETER; - si = msihandle2msiinfo( handle, MSIHANDLETYPE_SUMMARYINFO ); + si = msihandle2msiinfo( handle, MSIOBJECTTYPE_SUMMARYINFO ); if( !si ) return ERROR_INVALID_HANDLE; @@ -937,14 +933,14 @@ end: return r; } -UINT WINAPI MsiSummaryInfoPersist( MSIHANDLE handle ) +UINT WINAPI MsiSummaryInfoPersist( PMSIOBJECT handle ) { MSISUMMARYINFO *si; UINT ret; TRACE("%d\n", handle ); - si = msihandle2msiinfo( handle, MSIHANDLETYPE_SUMMARYINFO ); + si = msihandle2msiinfo( handle, MSIOBJECTTYPE_SUMMARYINFO ); if( !si ) return ERROR_INVALID_HANDLE; @@ -954,7 +950,7 @@ UINT WINAPI MsiSummaryInfoPersist( MSIHANDLE handle ) return ret; } -UINT WINAPI MsiCreateTransformSummaryInfoA( MSIHANDLE db, MSIHANDLE db_ref, LPCSTR transform, int error, int validation ) +UINT WINAPI MsiCreateTransformSummaryInfoA( PMSIOBJECT db, PMSIOBJECT db_ref, LPCSTR transform, int error, int validation ) { UINT r; WCHAR *transformW = NULL; @@ -969,7 +965,7 @@ UINT WINAPI MsiCreateTransformSummaryInfoA( MSIHANDLE db, MSIHANDLE db_ref, LPCS return r; } -UINT WINAPI MsiCreateTransformSummaryInfoW( MSIHANDLE db, MSIHANDLE db_ref, LPCWSTR transform, int error, int validation ) +UINT WINAPI MsiCreateTransformSummaryInfoW( PMSIOBJECT db, PMSIOBJECT db_ref, LPCWSTR transform, int error, int validation ) { FIXME("%u, %u, %s, %d, %d\n", db, db_ref, debugstr_w(transform), error, validation); return ERROR_FUNCTION_FAILED; |