logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

libpff.h — Library to access the Personal Folder File (OST, PAB and PST) format

Author

       These man pages are generated from "libpff.h".

Bugs

       Please report bugs of any kind on the project issue tracker: https://github.com/libyal/libpff/issues

Description

       The libpff_get_version() function is used to retrieve the library version.

Environment

       None

Files

       None

Name

       libpff.h — Library to access the Personal Folder File (OST, PAB and PST) format

Notes

       libpff can be compiled with wide character support (wchar_t).

       To compile libpff with wide character support use: ./configure--enable-wide-character-type=yes
        or define: _UNICODE
        or UNICODE
        during compilation.

       LIBPFF_WIDE_CHARACTER_TYPE
        in libpff/features.h can be used to determine if libpff was compiled with wide character support.

Return Values

       Most of the functions return NULL or -1 on error, dependent on the return type.  For  the  actual  return
       values see "libpff.h".

See Also

       the libpff.h include file

libpff                                          January 15, 2017                                       libpff(3)

Synopsis

#include<libpff.h>

       Support functions

       constchar*libpff_get_version(void);

       intlibpff_get_access_flags_read(void);

       intlibpff_get_codepage(int*codepage, libpff_error_t**error);

       intlibpff_set_codepage(intcodepage, libpff_error_t**error);

       intlibpff_check_file_signature(constchar*filename, libpff_error_t**error);

       Available when compiled with wide character string support:

       intlibpff_check_file_signature_wide(constwchar_t*filename, libpff_error_t**error);

       Available when compiled with libbfio support:

       intlibpff_check_file_signature_file_io_handle(libbfio_handle_t*file_io_handle, libpff_error_t**error);

       Notify functions

       voidlibpff_notify_set_verbose(intverbose);

       intlibpff_notify_set_stream(FILE*stream, libpff_error_t**error);

       intlibpff_notify_stream_open(constchar*filename, libpff_error_t**error);

       intlibpff_notify_stream_close(libpff_error_t**error);

       Error functions

       voidlibpff_error_free(libpff_error_t**error);

       intlibpff_error_fprint(libpff_error_t*error, FILE*stream);

       intlibpff_error_sprint(libpff_error_t*error, char*string, size_tsize);

       intlibpff_error_backtrace_fprint(libpff_error_t*error, FILE*stream);

       intlibpff_error_backtrace_sprint(libpff_error_t*error, char*string, size_tsize);

       File functions

       intlibpff_file_initialize(libpff_file_t**file, libpff_error_t**error);

       intlibpff_file_free(libpff_file_t**file, libpff_error_t**error);

       intlibpff_file_signal_abort(libpff_file_t*file, libpff_error_t**error);

       intlibpff_file_open(libpff_file_t*file, constchar*filename, intaccess_flags, libpff_error_t**error);

       intlibpff_file_close(libpff_file_t*file, libpff_error_t**error);

       intlibpff_file_is_corrupted(libpff_file_t*file, libpff_error_t**error);

       intlibpff_file_recover_items(libpff_file_t*file, uint8_trecovery_flags, libpff_error_t**error);

       intlibpff_file_get_size(libpff_file_t*file, size64_t*size, libpff_error_t**error);

       intlibpff_file_get_content_type(libpff_file_t*file, uint8_t*content_type, libpff_error_t**error);

       intlibpff_file_get_type(libpff_file_t*file, uint8_t*type, libpff_error_t**error);

       intlibpff_file_get_encryption_type(libpff_file_t*file, uint8_t*encryption_type, libpff_error_t**error);

       intlibpff_file_get_ascii_codepage(libpff_file_t*file, int*ascii_codepage, libpff_error_t**error);

       intlibpff_file_set_ascii_codepage(libpff_file_t*file, intascii_codepage, libpff_error_t**error);

       intlibpff_file_get_number_of_unallocated_blocks(libpff_file_t*file,     intunallocated_block_type,
           int*number_of_unallocated_blocks, libpff_error_t**error);

       intlibpff_file_get_unallocated_block(libpff_file_t*file,         intunallocated_block_type,
           intunallocated_block_index, off64_t*offset, size64_t*size, libpff_error_t**error);

       intlibpff_file_get_root_item(libpff_file_t*file, libpff_item_t**root_item, libpff_error_t**error);

       intlibpff_file_get_message_store(libpff_file_t*file,         libpff_item_t**message_store,
           libpff_error_t**error);

       intlibpff_file_get_name_to_id_map(libpff_file_t*file,        libpff_item_t**name_to_id_map,
           libpff_error_t**error);

       intlibpff_file_get_root_folder(libpff_file_t*file, libpff_item_t**root_folder, libpff_error_t**error);

       intlibpff_file_get_item_by_identifier(libpff_file_t*file,  uint32_titem_identifier, libpff_item_t**item,
           libpff_error_t**error);

       intlibpff_file_get_number_of_orphan_items(libpff_file_t*file,       int*number_of_orphan_items,
           libpff_error_t**error);

       intlibpff_file_get_orphan_item_by_index(libpff_file_t*file,         intorphan_item_index,
           libpff_item_t**orphan_item, libpff_error_t**error);

       intlibpff_file_get_number_of_recovered_items(libpff_file_t*file,     int*number_of_recovered_items,
           libpff_error_t**error);

       intlibpff_file_get_recovered_item_by_index(libpff_file_t*file,       intrecovered_item_index,
           libpff_item_t**recovered_item, libpff_error_t**error);

       Available when compiled with wide character string support:

       intlibpff_file_open_wide(libpff_file_t*file,    constwchar_t*filename,     intaccess_flags,
           libpff_error_t**error);

       Available when compiled with libbfio support:

       intlibpff_file_open_file_io_handle(libpff_file_t*file, libbfio_handle_t*file_io_handle, intaccess_flags,
           libpff_error_t**error);

       Item functions

       intlibpff_item_clone(libpff_item_t**destination_item, libpff_item_t*source_item, libpff_error_t**error);

       intlibpff_item_free(libpff_item_t**item, libpff_error_t**error);

       intlibpff_item_get_identifier(libpff_item_t*item, uint32_t*identifier, libpff_error_t**error);

       intlibpff_item_get_number_of_record_sets(libpff_item_t*item,       int*number_of_record_sets,
           libpff_error_t**error);

       intlibpff_item_get_record_set_by_index(libpff_item_t*item,          intrecord_set_index,
           libpff_record_set_t**record_set, libpff_error_t**error);

       intlibpff_item_get_number_of_entries(libpff_item_t*item,        uint32_t*number_of_entries,
           libpff_error_t**error);

       intlibpff_item_get_type(libpff_item_t*item, uint8_t*item_type, libpff_error_t**error);

       intlibpff_item_get_number_of_sub_items(libpff_item_t*item,         int*number_of_sub_items,
           libpff_error_t**error);

       intlibpff_item_get_sub_item(libpff_item_t*item,    intsub_item_index,    libpff_item_t**sub_item,
           libpff_error_t**error);

       intlibpff_item_get_sub_item_by_identifier(libpff_item_t*item,      uint32_tsub_item_identifier,
           libpff_item_t**sub_item, libpff_error_t**error);

       Name to ID map entry functions

       intlibpff_name_to_id_map_entry_get_type(libpff_name_to_id_map_entry_t*name_to_id_map_entry,
           uint8_t*entry_type, libpff_error_t**error);

       intlibpff_name_to_id_map_entry_get_number(libpff_name_to_id_map_entry_t*name_to_id_map_entry,
           uint32_t*number, libpff_error_t**error);

       intlibpff_name_to_id_map_entry_get_utf8_string_size(libpff_name_to_id_map_entry_t*name_to_id_map_entry,
           size_t*utf8_string_size, libpff_error_t**error);

       intlibpff_name_to_id_map_entry_get_utf8_string(libpff_name_to_id_map_entry_t*name_to_id_map_entry,
           uint8_t*utf8_string, size_tutf8_string_size, libpff_error_t**error);

       intlibpff_name_to_id_map_entry_get_utf16_string_size(libpff_name_to_id_map_entry_t*name_to_id_map_entry,
           size_t*utf16_string_size, libpff_error_t**error);

       intlibpff_name_to_id_map_entry_get_utf16_string(libpff_name_to_id_map_entry_t*name_to_id_map_entry,
           uint16_t*utf16_string, size_tutf16_string_size, libpff_error_t**error);

       intlibpff_name_to_id_map_entry_get_guid(libpff_name_to_id_map_entry_t*name_to_id_map_entry, uint8_t*guid,
           size_tsize, libpff_error_t**error);

       Record set functions

       intlibpff_record_set_free(libpff_record_set_t**record_set, libpff_error_t**error);

       intlibpff_record_set_get_number_of_entries(libpff_record_set_t*record_set,    int*number_of_entries,
           libpff_error_t**error);

       intlibpff_record_set_get_entry_by_index(libpff_record_set_t*record_set,     intrecord_entry_index,
           libpff_record_entry_t**record_entry, libpff_error_t**error);

       intlibpff_record_set_get_entry_by_type(libpff_record_set_t*record_set,      uint32_tentry_type,
           uint32_tvalue_type, libpff_record_entry_t**record_entry, uint8_tflags, libpff_error_t**error);

       intlibpff_record_set_get_entry_by_utf8_name(libpff_record_set_t*record_set,  constuint8_t*utf8_string,
           size_tutf8_string_length, uint32_tvalue_type, libpff_record_entry_t**record_entry, uint8_tflags,
           libpff_error_t**error);

       intlibpff_record_set_get_entry_by_utf16_name(libpff_record_set_t*record_set, constuint16_t*utf16_string,
           size_tutf16_string_length, uint32_tvalue_type, libpff_record_entry_t**record_entry, uint8_tflags,
           libpff_error_t**error);

       Record entry functions

       intlibpff_record_entry_free(libpff_record_entry_t**record_entry, libpff_error_t**error);

       intlibpff_record_entry_get_entry_type(libpff_record_entry_t*record_entry,     uint32_t*entry_type,
           libpff_error_t**error);

       intlibpff_record_entry_get_value_type(libpff_record_entry_t*record_entry,     uint32_t*value_type,
           libpff_error_t**error);

       intlibpff_record_entry_get_name_to_id_map_entry(libpff_record_entry_t*record_entry,
           libpff_name_to_id_map_entry_t**name_to_id_map_entry, libpff_error_t**error);

       intlibpff_record_entry_get_data_size(libpff_record_entry_t*record_entry,      size_t*data_size,
           libpff_error_t**error);

       intlibpff_record_entry_get_data(libpff_record_entry_t*record_entry,   uint8_t*data,  size_tdata_size,
           libpff_error_t**error);

       intlibpff_record_entry_get_data_as_boolean(libpff_record_entry_t*record_entry,   uint8_t*value_boolean,
           libpff_error_t**error);

       intlibpff_record_entry_get_data_as_16bit_integer(libpff_record_entry_t*record_entry, uint16_t*value_16bit,
           libpff_error_t**error);

       intlibpff_record_entry_get_data_as_32bit_integer(libpff_record_entry_t*record_entry, uint32_t*value_32bit,
           libpff_error_t**error);

       intlibpff_record_entry_get_data_as_64bit_integer(libpff_record_entry_t*record_entry, uint64_t*value_64bit,
           libpff_error_t**error);

       intlibpff_record_entry_get_data_as_filetime(libpff_record_entry_t*record_entry,    uint64_t*filetime,
           libpff_error_t**error);

       intlibpff_record_entry_get_data_as_floatingtime(libpff_record_entry_t*record_entry, uint64_t*floatingtime,
           libpff_error_t**error);

       intlibpff_record_entry_get_data_as_size(libpff_record_entry_t*record_entry,    size64_t*value_size,
           libpff_error_t**error);

       intlibpff_record_entry_get_data_as_floating_point(libpff_record_entry_t*record_entry,
           double*value_floating_point, libpff_error_t**error);

       intlibpff_record_entry_get_data_as_utf8_string_size(libpff_record_entry_t*record_entry,
           size_t*utf8_string_size, libpff_error_t**error);

       intlibpff_record_entry_get_data_as_utf8_string(libpff_record_entry_t*record_entry,  uint8_t*utf8_string,
           size_tutf8_string_size, libpff_error_t**error);

       intlibpff_record_entry_get_data_as_utf16_string_size(libpff_record_entry_t*record_entry,
           size_t*utf16_string_size, libpff_error_t**error);

       intlibpff_record_entry_get_data_as_utf16_string(libpff_record_entry_t*record_entry, uint16_t*utf16_string,
           size_tutf16_string_size, libpff_error_t**error);

       intlibpff_record_entry_get_data_as_guid(libpff_record_entry_t*record_entry,     uint8_t*guid_data,
           size_tguid_data_size, libpff_error_t**error);

       intlibpff_record_entry_get_multi_value(libpff_record_entry_t*record_entry,
           libpff_multi_value_t**multi_value, libpff_error_t**error);

       ssize_tlibpff_record_entry_read_buffer(libpff_record_entry_t*record_entry, uint8_t*buffer, size_tbuffer_size,
           libpff_error_t**error);

       off64_tlibpff_record_entry_seek_offset(libpff_record_entry_t*record_entry,   off64_toffset,   intwhence,
           libpff_error_t**error);

       Multi value functions

       intlibpff_multi_value_free(libpff_multi_value_t**multi_value, libpff_error_t**error);

       intlibpff_multi_value_get_number_of_values(libpff_multi_value_t*multi_value,    int*number_of_values,
           libpff_error_t**error);

       intlibpff_multi_value_get_value(libpff_multi_value_t*multi_value,  intvalue_index, uint32_t*value_type,
           uint8_t**value_data, size_t*value_data_size, libpff_error_t**error);

       intlibpff_multi_value_get_value_32bit(libpff_multi_value_t*multi_value,       intvalue_index,
           uint32_t*value_32bit, libpff_error_t**error);

       intlibpff_multi_value_get_value_64bit(libpff_multi_value_t*multi_value,       intvalue_index,
           uint64_t*value_64bit, libpff_error_t**error);

       intlibpff_multi_value_get_value_filetime(libpff_multi_value_t*multi_value,      intvalue_index,
           uint64_t*value_64bit, libpff_error_t**error);

       intlibpff_multi_value_get_value_utf8_string_size(libpff_multi_value_t*multi_value,    intvalue_index,
           size_t*utf8_string_size, libpff_error_t**error);

       intlibpff_multi_value_get_value_utf8_string(libpff_multi_value_t*multi_value,     intvalue_index,
           uint8_t*utf8_string, size_tutf8_string_size, libpff_error_t**error);

       intlibpff_multi_value_get_value_utf16_string_size(libpff_multi_value_t*multi_value,   intvalue_index,
           size_t*utf16_string_size, libpff_error_t**error);

       intlibpff_multi_value_get_value_utf16_string(libpff_multi_value_t*multi_value,     intvalue_index,
           uint16_t*utf16_string, size_tutf16_string_size, libpff_error_t**error);

       intlibpff_multi_value_get_value_binary_data_size(libpff_multi_value_t*multi_value,    intvalue_index,
           size_t*size, libpff_error_t**error);

       intlibpff_multi_value_get_value_binary_data(libpff_multi_value_t*multi_value,     intvalue_index,
           uint8_t*binary_data, size_tsize, libpff_error_t**error);

       intlibpff_multi_value_get_value_guid(libpff_multi_value_t*multi_value,  intvalue_index,  uint8_t*guid,
           size_tsize, libpff_error_t**error);

       Folder item functions

       intlibpff_folder_get_type(libpff_item_t*folder, uint8_t*type, libpff_error_t**error);

       intlibpff_folder_get_utf8_name_size(libpff_item_t*folder,         size_t*utf8_string_size,
           libpff_error_t**error);

       intlibpff_folder_get_utf8_name(libpff_item_t*folder,   uint8_t*utf8_string,  size_tutf8_string_size,
           libpff_error_t**error);

       intlibpff_folder_get_utf16_name_size(libpff_item_t*folder,        size_t*utf16_string_size,
           libpff_error_t**error);

       intlibpff_folder_get_utf16_name(libpff_item_t*folder,  uint16_t*utf16_string,  size_tutf16_string_size,
           libpff_error_t**error);

       intlibpff_folder_get_number_of_sub_folders(libpff_item_t*folder,      int*number_of_sub_folders,
           libpff_error_t**error);

       intlibpff_folder_get_sub_folder(libpff_item_t*folder,  intsub_folder_index,  libpff_item_t**sub_folder,
           libpff_error_t**error);

       intlibpff_folder_get_sub_folder_by_utf8_name(libpff_item_t*folder,    uint8_t*utf8_sub_folder_name,
           size_tutf8_sub_folder_name_size, libpff_item_t**sub_folder, libpff_error_t**error);

       intlibpff_folder_get_sub_folder_by_utf16_name(libpff_item_t*folder,   uint16_t*utf16_sub_folder_name,
           size_tutf16_sub_folder_name_size, libpff_item_t**sub_folder, libpff_error_t**error);

       intlibpff_folder_get_sub_folders(libpff_item_t*folder,         libpff_item_t**sub_folders,
           libpff_error_t**error);

       intlibpff_folder_get_number_of_sub_messages(libpff_item_t*folder,     int*number_of_sub_messages,
           libpff_error_t**error);

       intlibpff_folder_get_sub_message(libpff_item_t*folder, intsub_message_index, libpff_item_t**sub_message,
           libpff_error_t**error);

       intlibpff_folder_get_sub_message_by_utf8_name(libpff_item_t*folder,    uint8_t*utf8_sub_message_name,
           size_tutf8_sub_message_name_size, libpff_item_t**sub_message, libpff_error_t**error);

       intlibpff_folder_get_sub_message_by_utf16_name(libpff_item_t*folder,   uint16_t*utf16_sub_message_name,
           size_tutf16_sub_message_name_size, libpff_item_t**sub_message, libpff_error_t**error);

       intlibpff_folder_get_sub_messages(libpff_item_t*folder,        libpff_item_t**sub_messages,
           libpff_error_t**error);

       intlibpff_folder_get_number_of_sub_associated_contents(libpff_item_t*folder,
           int*number_of_sub_associated_contents, libpff_error_t**error);

       intlibpff_folder_get_sub_associated_content(libpff_item_t*folder,    intsub_associated_content_index,
           libpff_item_t**sub_associated_content, libpff_error_t**error);

       intlibpff_folder_get_sub_associated_contents(libpff_item_t*folder, libpff_item_t**sub_associated_contents,
           libpff_error_t**error);

       intlibpff_folder_get_unknowns(libpff_item_t*folder, libpff_item_t**unknowns, libpff_error_t**error);

       Message item functions

       intlibpff_message_get_entry_value_utf8_string_size(libpff_item_t*message,     uint32_tentry_type,
           size_t*utf8_string_size, libpff_error_t**error);

       intlibpff_message_get_entry_value_utf8_string(libpff_item_t*message,       uint32_tentry_type,
           uint8_t*utf8_string, size_tutf8_string_size, libpff_error_t**error);

       intlibpff_message_get_entry_value_utf16_string_size(libpff_item_t*message,     uint32_tentry_type,
           size_t*utf16_string_size, libpff_error_t**error);

       intlibpff_message_get_entry_value_utf16_string(libpff_item_t*message,       uint32_tentry_type,
           uint16_t*utf16_string, size_tutf16_string_size, libpff_error_t**error);

       intlibpff_message_get_client_submit_time(libpff_item_t*message,         uint64_t*filetime,
           libpff_error_t**error);

       intlibpff_message_get_delivery_time(libpff_item_t*message, uint64_t*filetime, libpff_error_t**error);

       intlibpff_message_get_creation_time(libpff_item_t*message, uint64_t*filetime, libpff_error_t**error);

       intlibpff_message_get_modification_time(libpff_item_t*message, uint64_t*filetime, libpff_error_t**error);

       intlibpff_message_get_number_of_attachments(libpff_item_t*message,     int*number_of_attachments,
           libpff_error_t**error);

       intlibpff_message_get_attachment(libpff_item_t*message, intattachment_index,  libpff_item_t**attachment,
           libpff_error_t**error);

       intlibpff_message_get_attachments(libpff_item_t*message,        libpff_item_t**attachments,
           libpff_error_t**error);

       intlibpff_message_get_recipients(libpff_item_t*message,         libpff_item_t**recipients,
           libpff_error_t**error);

       intlibpff_message_get_plain_text_body_size(libpff_item_t*message, size_t*size, libpff_error_t**error);

       intlibpff_message_get_plain_text_body(libpff_item_t*message,   uint8_t*message_body,   size_tsize,
           libpff_error_t**error);

       intlibpff_message_get_rtf_body_size(libpff_item_t*message, size_t*size, libpff_error_t**error);

       intlibpff_message_get_rtf_body(libpff_item_t*message,    uint8_t*message_body,     size_tsize,
           libpff_error_t**error);

       intlibpff_message_get_html_body_size(libpff_item_t*message, size_t*size, libpff_error_t**error);

       intlibpff_message_get_html_body(libpff_item_t*message,     uint8_t*message_body,    size_tsize,
           libpff_error_t**error);

       Attachment item functions

       intlibpff_attachment_get_type(libpff_item_t*attachment, int*attachment_type, libpff_error_t**error);

       intlibpff_attachment_get_data_size(libpff_item_t*attachment, size64_t*size, libpff_error_t**error);

       ssize_tlibpff_attachment_data_read_buffer(libpff_item_t*attachment,  uint8_t*buffer,   size_tbuffer_size,
           libpff_error_t**error);

       off64_tlibpff_attachment_data_seek_offset(libpff_item_t*attachment,    off64_toffset,    intwhence,
           libpff_error_t**error);

       intlibpff_attachment_get_item(libpff_item_t*attachment,        libpff_item_t**attached_item,
           libpff_error_t**error);

       Available when compiled with libbfio support:

       intlibpff_attachment_get_data_file_io_handle(libpff_item_t*attachment,  libbfio_handle_t**file_io_handle,
           libpff_error_t**error);

See Also