diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2012-12-10 00:01:22 +0100 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2012-12-11 11:23:19 +0100 |
commit | ae4c81e4fca5bb5816b5cbabb17a7dcc22f58a3b (patch) | |
tree | 76012c4f3d176b748961c24f96e87724804f260a /libmsi/msipriv.h | |
parent | 0ffc9bc6e55b5e42766e68fb6cc087f6cbead6e0 (diff) | |
download | msitools-ae4c81e4fca5bb5816b5cbabb17a7dcc22f58a3b.tar.gz msitools-ae4c81e4fca5bb5816b5cbabb17a7dcc22f58a3b.tar.xz msitools-ae4c81e4fca5bb5816b5cbabb17a7dcc22f58a3b.zip |
convert to GObject
Diffstat (limited to 'libmsi/msipriv.h')
-rw-r--r-- | libmsi/msipriv.h | 56 |
1 files changed, 22 insertions, 34 deletions
diff --git a/libmsi/msipriv.h b/libmsi/msipriv.h index d9fb5e8..b085e27 100644 --- a/libmsi/msipriv.h +++ b/libmsi/msipriv.h @@ -59,24 +59,13 @@ typedef struct _LibmsiTable LibmsiTable; struct string_table; typedef struct string_table string_table; -struct _LibmsiObject; -typedef struct _LibmsiObject LibmsiObject; - -typedef VOID (*msihandledestructor)( LibmsiObject * ); - -struct _LibmsiObject -{ - unsigned magic; - LONG refcount; - msihandledestructor destructor; -}; - #define MSI_INITIAL_MEDIA_TRANSFORM_OFFSET 10000 #define MSI_INITIAL_MEDIA_TRANSFORM_DISKID 30000 -typedef struct _LibmsiDatabase +struct _LibmsiDatabase { - LibmsiObject hdr; + GObject parent; + IStorage *infile; IStorage *outfile; string_table *strings; @@ -85,25 +74,27 @@ typedef struct _LibmsiDatabase char *outpath; bool rename_outpath; bool patch; - const char *mode; + const char *mode; /* FIXME: turn this into an enum */ unsigned media_transform_offset; unsigned media_transform_disk_id; struct list tables; struct list transforms; struct list streams; struct list storages; -} LibmsiDatabase; +}; typedef struct _LibmsiView LibmsiView; -typedef struct _LibmsiQuery +struct _LibmsiQuery { - LibmsiObject hdr; + GObject parent; + LibmsiView *view; unsigned row; - LibmsiDatabase *db; + LibmsiDatabase *database; + gchar *query; struct list mem; -} LibmsiQuery; +}; /* maybe we can use a Variant instead of doing it ourselves? */ typedef struct _LibmsiField @@ -117,12 +108,13 @@ typedef struct _LibmsiField } u; } LibmsiField; -typedef struct _LibmsiRecord +struct _LibmsiRecord { - LibmsiObject hdr; + GObject parent; + unsigned count; /* as passed to libmsi_record_new */ - LibmsiField fields[1]; /* nb. array size is count+1 */ -} LibmsiRecord; + LibmsiField *fields; /* nb. array size is count+1 */ +}; typedef struct _column_info { @@ -284,13 +276,14 @@ typedef struct _LibmsiOLEVariant }; } LibmsiOLEVariant; -typedef struct _LibmsiSummaryInfo +struct _LibmsiSummaryInfo { - LibmsiObject hdr; + GObject parent; + LibmsiDatabase *database; unsigned update_count; LibmsiOLEVariant property[MSI_MAX_PROPS]; -} LibmsiSummaryInfo; +}; extern const char clsid_msi_transform[16]; extern const char clsid_msi_database[16]; @@ -315,11 +308,6 @@ typedef struct { unsigned msi_strcpy_to_awstring( const WCHAR *str, awstring *awbuf, unsigned *sz ); -/* handle functions */ -extern void *alloc_msiobject(unsigned size, msihandledestructor destroy ); -extern void msiobj_addref(LibmsiObject *); -extern int msiobj_release(LibmsiObject *); - extern void free_cached_tables( LibmsiDatabase *db ); extern unsigned _libmsi_database_commit_tables( LibmsiDatabase *db, unsigned bytes_per_strref ); @@ -361,7 +349,7 @@ extern void append_storage_to_db( LibmsiDatabase *db, IStorage *stg ); extern unsigned _libmsi_database_commit_storages( LibmsiDatabase *db ); /* record internals */ -extern void _libmsi_record_destroy( LibmsiObject * ); +extern void _libmsi_record_destroy( LibmsiRecord * ); extern unsigned _libmsi_record_set_IStream( LibmsiRecord *, unsigned, IStream *); extern unsigned _libmsi_record_get_IStream( const LibmsiRecord *, unsigned, IStream **); extern const WCHAR *_libmsi_record_get_string_raw( const LibmsiRecord *, unsigned ); @@ -381,7 +369,7 @@ extern WCHAR *encode_streamname(bool bTable, const WCHAR *in); extern void decode_streamname(const WCHAR *in, WCHAR *out); /* database internals */ -extern LibmsiResult _libmsi_database_start_transaction(LibmsiDatabase *db, const char *szPersist); +extern LibmsiResult _libmsi_database_start_transaction(LibmsiDatabase *db); extern LibmsiResult _libmsi_database_open(LibmsiDatabase *db); extern LibmsiResult _libmsi_database_close(LibmsiDatabase *db, bool committed); unsigned msi_create_stream( LibmsiDatabase *db, const WCHAR *stname, IStream *stm ); |