diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2012-12-15 17:08:39 +0100 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2013-01-09 13:56:06 +0100 |
commit | f1f6327ce6d9d693e22b222eaeee50fe137ec596 (patch) | |
tree | 42398a4c25e7ceae05f58d66c3d5fc8f8ae359a8 /libmsi/libmsi-summary-info.c | |
parent | ab8e8a0cd0f9b5611f07c71a94ec17ffd9bd4e84 (diff) | |
download | msitools-f1f6327ce6d9d693e22b222eaeee50fe137ec596.tar.gz msitools-f1f6327ce6d9d693e22b222eaeee50fe137ec596.tar.xz msitools-f1f6327ce6d9d693e22b222eaeee50fe137ec596.zip |
Add libmsi_summary_info_get_property_type()
Diffstat (limited to 'libmsi/libmsi-summary-info.c')
-rw-r--r-- | libmsi/libmsi-summary-info.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/libmsi/libmsi-summary-info.c b/libmsi/libmsi-summary-info.c index cc257ea..eba98d3 100644 --- a/libmsi/libmsi-summary-info.c +++ b/libmsi/libmsi-summary-info.c @@ -595,6 +595,37 @@ LibmsiResult libmsi_summary_info_get_property_count (LibmsiSummaryInfo *si, unsi return LIBMSI_RESULT_SUCCESS; } +LibmsiPropertyType +libmsi_summary_info_get_property_type (LibmsiSummaryInfo *self, + LibmsiProperty prop, + GError **error) +{ + g_return_val_if_fail (LIBMSI_SUMMARY_INFO (self), FALSE); + g_return_val_if_fail (!error || *error == NULL, FALSE); + + if (prop >= MSI_MAX_PROPS) { + g_set_error (error, LIBMSI_RESULT_ERROR, LIBMSI_RESULT_UNKNOWN_PROPERTY, + "Unknown property"); + return LIBMSI_PROPERTY_TYPE_EMPTY; + } + + switch (self->property[prop].vt) { + case OLEVT_I2: + case OLEVT_I4: + return LIBMSI_PROPERTY_TYPE_INT; + case OLEVT_LPSTR: + return LIBMSI_PROPERTY_TYPE_STRING; + case OLEVT_FILETIME: + return LIBMSI_PROPERTY_TYPE_FILETIME; + case OLEVT_EMPTY: + return LIBMSI_PROPERTY_TYPE_EMPTY; + default: + g_set_error (error, LIBMSI_RESULT_ERROR, LIBMSI_RESULT_FUNCTION_FAILED, + "Unknown type"); + return LIBMSI_PROPERTY_TYPE_EMPTY; + } +} + static void _summary_info_get_property (LibmsiSummaryInfo *si, unsigned uiProperty, unsigned *puiDataType, int *pintvalue, guint64 *pftValue, char *szValueBuf, |