diff --git a/include/libpff.h.in b/include/libpff.h.in index 36204b6..664616d 100644 --- a/include/libpff.h.in +++ b/include/libpff.h.in @@ -1449,6 +1449,32 @@ int libpff_item_get_entry_multi_value( uint8_t flags, libpff_error_t **error ); +/* Retrieves the size of the UTF-16 encoded item Message-ID + * Size includes the end of string character + * Returns 1 if successful, 0 if not available or -1 on error + */ +#define libpff_item_get_utf16_internet_message_id_size( item, utf16_string_size, error ) \ + libpff_item_get_entry_value_utf16_string_size( item, 0, LIBPFF_ENTRY_TYPE_INTERNET_MESSAGE_ID, utf16_string_size, 0, error ) + +/* Retrieves the UTF-16 encoded item Message-ID + * Returns 1 if successful, 0 if not available or -1 on error + */ +#define libpff_item_get_utf16_internet_message_id( item, utf16_string, utf16_string_size, error ) \ + libpff_item_get_entry_value_utf16_string( item, 0, LIBPFF_ENTRY_TYPE_INTERNET_MESSAGE_ID, utf16_string, utf16_string_size, 0, error ) + +/* Retrieves the size of the UTF-16 encoded item In-Reply-To + * Size includes the end of string character + * Returns 1 if successful, 0 if not available or -1 on error + */ +#define libpff_item_get_utf16_in_reply_to_id_size( item, utf16_string_size, error ) \ + libpff_item_get_entry_value_utf16_string_size( item, 0, LIBPFF_ENTRY_TYPE_IN_REPLY_TO_ID, utf16_string_size, 0, error ) + +/* Retrieves the UTF-16 encoded item In-Reply-To + * Returns 1 if successful, 0 if not available or -1 on error + */ +#define libpff_item_get_utf16_in_reply_to_id( item, utf16_string, utf16_string_size, error ) \ + libpff_item_get_entry_value_utf16_string( item, 0, LIBPFF_ENTRY_TYPE_IN_REPLY_TO_ID, utf16_string, utf16_string_size, 0, error ) + /* Retrieves the size of the UTF-16 encoded item display name * Size includes the end of string character * Returns 1 if successful, 0 if not available or -1 on error @@ -1488,6 +1514,20 @@ int libpff_item_get_entry_multi_value( #define libpff_item_get_utf16_email_address( item, utf16_string, size, error ) \ libpff_item_get_entry_value_utf16_string( item, 0, LIBPFF_ENTRY_TYPE_EMAIL_ADDRESS, utf16_string, utf16_string_size, 0, error ) +/* Retrieves the size of the UTF-8 encoded item Message-ID + * Size includes the end of string character + * Returns 1 if successful, 0 if not available or -1 on error + */ +#define libpff_item_get_utf8_internet_message_id_size( item, utf8_string_size, error ) \ + libpff_item_get_entry_value_utf8_string_size( item, 0, LIBPFF_ENTRY_TYPE_INTERNET_MESSAGE_ID, utf8_string_size, 0, error ) + +/* Retrieves the size of the UTF-8 encoded item In-Reply-To + * Size includes the end of string character + * Returns 1 if successful, 0 if not available or -1 on error + */ +#define libpff_item_get_utf8_in_reply_to_id_size( item, utf8_string_size, error ) \ + libpff_item_get_entry_value_utf8_string_size( item, 0, LIBPFF_ENTRY_TYPE_IN_REPLY_TO_ID, utf8_string_size, 0, error ) + /* Retrieves the size of the UTF-8 encoded item display name * Size includes the end of string character * Returns 1 if successful, 0 if not available or -1 on error @@ -1509,6 +1549,18 @@ int libpff_item_get_entry_multi_value( #define libpff_item_get_utf8_email_address_size( item, utf8_string_size, error ) \ libpff_item_get_entry_value_utf8_string_size( item, 0, LIBPFF_ENTRY_TYPE_EMAIL_ADDRESS, utf8_string_size, 0, error ) +/* Retrieves the UTF-8 encoded item Message-ID + * Returns 1 if successful, 0 if not available or -1 on error + */ +#define libpff_item_get_utf8_internet_message_id( item, utf8_string, utf8_string_size, error ) \ + libpff_item_get_entry_value_utf8_string( item, 0, LIBPFF_ENTRY_TYPE_INTERNET_MESSAGE_ID, utf8_string, utf8_string_size, 0, error ) + +/* Retrieves the UTF-8 encoded item In-Reply-To + * Returns 1 if successful, 0 if not available or -1 on error + */ +#define libpff_item_get_utf8_in_reply_to_id( item, utf8_string, utf8_string_size, error ) \ + libpff_item_get_entry_value_utf8_string( item, 0, LIBPFF_ENTRY_TYPE_IN_REPLY_TO_ID, utf8_string, utf8_string_size, 0, error ) + /* Retrieves the UTF-8 encoded item display name * Returns 1 if successful, 0 if not available or -1 on error */ diff --git a/include/libpff/mapi.h b/include/libpff/mapi.h index 93eff37..fc0e37e 100644 --- a/include/libpff/mapi.h +++ b/include/libpff/mapi.h @@ -265,6 +265,9 @@ enum LIBPFF_ENTRY_TYPES LIBPFF_ENTRY_TYPE_MESSAGE_BODY_HTML = 0x1013, + LIBPFF_ENTRY_TYPE_INTERNET_MESSAGE_ID = 0x1035, + LIBPFF_ENTRY_TYPE_IN_REPLY_TO_ID = 0x1042, + LIBPFF_ENTRY_TYPE_EMAIL_EML_FILENAME = 0x10f3, LIBPFF_ENTRY_TYPE_DISPLAY_NAME = 0x3001, diff --git a/libpff/libpff_mapi.h b/libpff/libpff_mapi.h index b390fe3..290b1b8 100644 --- a/libpff/libpff_mapi.h +++ b/libpff/libpff_mapi.h @@ -273,6 +273,9 @@ enum LIBPFF_ENTRY_TYPES LIBPFF_ENTRY_TYPE_MESSAGE_BODY_HTML = 0x1013, + LIBPFF_ENTRY_TYPE_INTERNET_MESSAGE_ID = 0x1035, + LIBPFF_ENTRY_TYPE_IN_REPLY_TO_ID = 0x1042, + LIBPFF_ENTRY_TYPE_EMAIL_EML_FILENAME = 0x10f3, LIBPFF_ENTRY_TYPE_DISPLAY_NAME = 0x3001, diff --git a/pfftools/export_handle.c b/pfftools/export_handle.c index 0723dca..ba2fb03 100644 --- a/pfftools/export_handle.c +++ b/pfftools/export_handle.c @@ -4946,7 +4946,7 @@ int export_handle_export_message_header_to_item_file( item_file_t *item_file, libcerror_error_t **error ) { - mapi_property_definitions_t property_definitions[ 21 ] = { + mapi_property_definitions_t property_definitions[ 23 ] = { { _SYSTEM_STRING( "Client submit time:\t\t\t" ), LIBPFF_ENTRY_TYPE_MESSAGE_CLIENT_SUBMIT_TIME, LIBPFF_VALUE_TYPE_FILETIME, 0, NULL }, { _SYSTEM_STRING( "Delivery time:\t\t\t\t" ), LIBPFF_ENTRY_TYPE_MESSAGE_DELIVERY_TIME, LIBPFF_VALUE_TYPE_FILETIME, 0, NULL }, { _SYSTEM_STRING( "Creation time:\t\t\t\t" ), LIBPFF_ENTRY_TYPE_MESSAGE_CREATION_TIME, LIBPFF_VALUE_TYPE_FILETIME, 0, NULL }, @@ -4967,6 +4967,8 @@ int export_handle_export_message_header_to_item_file( { _SYSTEM_STRING( "Reminder time:\t\t\t\t" ), LIBPFF_ENTRY_TYPE_MESSAGE_REMINDER_TIME, LIBPFF_VALUE_TYPE_FILETIME, 0, NULL }, { _SYSTEM_STRING( "Reminder signal time:\t\t\t" ), LIBPFF_ENTRY_TYPE_MESSAGE_REMINDER_SIGNAL_TIME, LIBPFF_VALUE_TYPE_FILETIME, 0, NULL }, { _SYSTEM_STRING( "Is private:\t\t\t\t" ), LIBPFF_ENTRY_TYPE_MESSAGE_IS_PRIVATE, LIBPFF_VALUE_TYPE_BOOLEAN, 0, NULL }, + { _SYSTEM_STRING( "Message-ID:\t\t\t\t" ), LIBPFF_ENTRY_TYPE_INTERNET_MESSAGE_ID, LIBPFF_VALUE_TYPE_STRING, 0, NULL }, + { _SYSTEM_STRING( "In-Reply-To:\t\t\t\t" ), LIBPFF_ENTRY_TYPE_IN_REPLY_TO_ID, LIBPFF_VALUE_TYPE_STRING, 0, NULL }, { _SYSTEM_STRING( "Status:\t\t\t\t\t" ), LIBPFF_ENTRY_TYPE_MESSAGE_STATUS, LIBPFF_VALUE_TYPE_INTEGER_32BIT_SIGNED, 0, &export_handle_export_message_status_to_item_file } }; static char *function = "export_handle_export_message_header_to_item_file"; @@ -4978,7 +4980,7 @@ int export_handle_export_message_header_to_item_file( message, 0, (mapi_property_definitions_t *) &property_definitions, - 21, + 23, error ) != 1 ) { libcerror_error_set(