summaryrefslogtreecommitdiffstats
path: root/libmsi/libmsi-summary-info.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmsi/libmsi-summary-info.c')
-rw-r--r--libmsi/libmsi-summary-info.c31
1 files changed, 16 insertions, 15 deletions
diff --git a/libmsi/libmsi-summary-info.c b/libmsi/libmsi-summary-info.c
index edec5da..a185055 100644
--- a/libmsi/libmsi-summary-info.c
+++ b/libmsi/libmsi-summary-info.c
@@ -194,6 +194,22 @@ static unsigned get_property_count( const LibmsiOLEVariant *property )
return n;
}
+GArray *
+libmsi_summary_info_get_properties (LibmsiSummaryInfo *self)
+{
+ GArray *props;
+ int i;
+
+ g_return_val_if_fail (LIBMSI_IS_SUMMARY_INFO (self), NULL);
+
+ props = g_array_new (FALSE, FALSE, sizeof(LibmsiProperty));
+ for (i = 0; i < MSI_MAX_PROPS; i++)
+ if (self->property[i].vt != OLEVT_EMPTY)
+ g_array_append_val (props, i);
+
+ return props;
+}
+
static unsigned read_word( const uint8_t *data, unsigned *ofs )
{
unsigned val = 0;
@@ -541,21 +557,6 @@ static unsigned suminfo_persist( LibmsiSummaryInfo *si )
return r;
}
-LibmsiResult libmsi_summary_info_get_property_count (LibmsiSummaryInfo *si, unsigned *pCount)
-{
- TRACE("%d %p\n", si, pCount);
-
- if( !si )
- return LIBMSI_RESULT_INVALID_HANDLE;
-
- g_object_ref(si);
- if( pCount )
- *pCount = get_property_count( si->property );
- g_object_unref(si);
-
- return LIBMSI_RESULT_SUCCESS;
-}
-
LibmsiPropertyType
libmsi_summary_info_get_property_type (LibmsiSummaryInfo *self,
LibmsiProperty prop,