libfmapi(3)

πŸ“¦ in opensuse-leap 16.0

πŸ’– libfmapi(3) β€” the libyal library manual, bestie edition πŸŽ€

Okay so real talk: this page is from the libfmapi Library Functions Manual, and it's literally about libfmapi.h β€” the Library to support the MAPI data types. MAPI besties, this one's for you πŸ’…


✨ SYNOPSIS ✨

Like, you gotta pull it in first:

#include <libfmapi.h>

🌸 Support functions

const char *
libfmapi_get_version(void);

🩷 Error functions

void
libfmapi_error_free(libfmapi_error_t **error);

int
libfmapi_error_fprint(libfmapi_error_t *error, FILE *stream);

int
libfmapi_error_sprint(libfmapi_error_t *error, char *string,
    size_t size);

int
libfmapi_error_backtrace_fprint(libfmapi_error_t *error, FILE *stream);

int
libfmapi_error_backtrace_sprint(libfmapi_error_t *error, char *string,
    size_t size);

πŸ¦‹ Entry identifier functions

int
libfmapi_entry_identifier_initialize(libfmapi_entry_identifier_t **entry_identifier,
    libfmapi_error_t **error);

int
libfmapi_entry_identifier_free(libfmapi_entry_identifier_t **entry_identifier,
    libfmapi_error_t **error);

int
libfmapi_entry_identifier_copy_from_byte_stream(libfmapi_entry_identifier_t *entry_identifier,
    const uint8_t *byte_stream, size_t byte_stream_size,
    libfmapi_error_t **error);

int
libfmapi_entry_identifier_get_service_provider_identifier(libfmapi_entry_identifier_t *entry_identifier,
    uint8_t *guid_data, size_t guid_data_size,
    libfmapi_error_t **error);

🧚 One-off entry identifier functions

int
libfmapi_one_off_entry_identifier_initialize(libfmapi_one_off_entry_identifier_t **entry_identifier,
    libfmapi_error_t **error);

int
libfmapi_one_off_entry_identifier_free(libfmapi_one_off_entry_identifier_t **entry_identifier,
    libfmapi_error_t **error);

int
libfmapi_one_off_entry_identifier_copy_from_byte_stream(libfmapi_one_off_entry_identifier_t *entry_identifier,
    const uint8_t *byte_stream, size_t byte_stream_size,
    int ascii_codepage, libfmapi_error_t **error);

int
libfmapi_one_off_entry_identifier_get_version(libfmapi_one_off_entry_identifier_t *entry_identifier,
    uint16_t *format_version, libfmapi_error_t **error);

int
libfmapi_one_off_entry_identifier_get_flags(libfmapi_one_off_entry_identifier_t *entry_identifier,
    uint16_t *flags, libfmapi_error_t **error);

int
libfmapi_one_off_entry_identifier_get_utf8_display_name_size(libfmapi_one_off_entry_identifier_t *entry_identifier,
    size_t *utf8_string_size, libfmapi_error_t **error);

int
libfmapi_one_off_entry_identifier_get_utf8_display_name(libfmapi_one_off_entry_identifier_t *entry_identifier,
    uint8_t *utf8_string, size_t utf8_string_size,
    libfmapi_error_t **error);

int
libfmapi_one_off_entry_identifier_get_utf16_display_name_size(libfmapi_one_off_entry_identifier_t *entry_identifier,
    size_t *utf16_string_size, libfmapi_error_t **error);

int
libfmapi_one_off_entry_identifier_get_utf16_display_name(libfmapi_one_off_entry_identifier_t *entry_identifier,
    uint16_t *utf16_string, size_t utf16_string_size,
    libfmapi_error_t **error);

int
libfmapi_one_off_entry_identifier_get_utf8_address_type_size(libfmapi_one_off_entry_identifier_t *entry_identifier,
    size_t *utf8_string_size, libfmapi_error_t **error);

int
libfmapi_one_off_entry_identifier_get_utf8_address_type(libfmapi_one_off_entry_identifier_t *entry_identifier,
    uint8_t *utf8_string, size_t utf8_string_size,
    libfmapi_error_t **error);

int
libfmapi_one_off_entry_identifier_get_utf16_address_type_size(libfmapi_one_off_entry_identifier_t *entry_identifier,
    size_t *utf16_string_size, libfmapi_error_t **error);

int
libfmapi_one_off_entry_identifier_get_utf16_address_type(libfmapi_one_off_entry_identifier_t *entry_identifier,
    uint16_t *utf16_string, size_t utf16_string_size,
    libfmapi_error_t **error);

int
libfmapi_one_off_entry_identifier_get_utf8_email_address_size(libfmapi_one_off_entry_identifier_t *entry_identifier,
    size_t *utf8_string_size, libfmapi_error_t **error);

int
libfmapi_one_off_entry_identifier_get_utf8_email_address(libfmapi_one_off_entry_identifier_t *entry_identifier,
    uint8_t *utf8_string, size_t utf8_string_size,
    libfmapi_error_t **error);

int
libfmapi_one_off_entry_identifier_get_utf16_email_address_size(libfmapi_one_off_entry_identifier_t *entry_identifier,
    size_t *utf16_string_size, libfmapi_error_t **error);

int
libfmapi_one_off_entry_identifier_get_utf16_email_address(libfmapi_one_off_entry_identifier_t *entry_identifier,
    uint16_t *utf16_string, size_t utf16_string_size,
    libfmapi_error_t **error);

πŸ’œ LZFu (de)compression functions

int
libfmapi_lzfu_get_uncompressed_data_size(const uint8_t *compressed_data,
    size_t compressed_data_size, size_t *uncompressed_data_size,
    libfmapi_error_t **error);

int
libfmapi_lzfu_decompress(const uint8_t *compressed_data,
    size_t compressed_data_size, uint8_t *uncompressed_data,
    size_t *uncompressed_data_size, libfmapi_error_t **error);

🌈 DESCRIPTION 🌈

Okay so the one function that actually gets called out by name here is libfmapi_get_version() β€” it's the glow-up function, the one you use to retrieve the library version. That's it, that's the description section, she's short and iconic πŸ’…


πŸ’€ RETURN VALUES πŸ’€

Most of the functions return NULL or -1 on error, dependent on the return type β€” so yeah, check your returns, bestie, or you're gonna have a bad time. For the actual return values, go look at libfmapi.h (that's the source of truth, no cap).


🫢 ENVIRONMENT 🫢

None. Literally nothing. Not a single environment variable to your name πŸŽ€


πŸ“ FILES πŸ“

None. Also nothing. Empty. Iconic in its minimalism ✨


πŸ™ˆ BUGS πŸ™ˆ

Please report bugs of any kind on the project issue tracker:

https://github.com/libyal/libfmapi/issues

Spill the tea, don't sit on it πŸ’–


πŸ‘‘ AUTHOR πŸ‘‘

These man pages are generated from libfmapi.h. That's the whole origin story β€” generated, not hand-written, and honestly? Slay πŸŽ€


Copyright (C) 2009-2024, Joachim Metz <joachim.metz@gmail.com>.

This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

⚠️ Straight up: NO warranty, like, at all. Not even the implied "it'll work for its intended purpose" one. Use at your own risk, bestie 😭

πŸ’œ SEE ALSO πŸ’œ

  • the libfmapi.h include file

🌸 That's the whole vibe β€” this page came to you from libfmapi itself, and it's dated April 4, 2023. Read it, love it, reference it forever 🫢✨