libfmapi(3)
π 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 β
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.hinclude 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 π«Άβ¨
π¦ where this page comes from
- opensuse-leap 16.0: libfmapi-devel 20240415-bp160.1.12 Β· LGPL-3.0-or-later
- opensuse-leap 16.0: libfmapi-devel 20240415-bp160.1.12 Β· LGPL-3.0-or-later
- opensuse-leap 16.0: libfmapi-devel 20240415-bp160.1.12 Β· LGPL-3.0-or-later
- opensuse-leap 16.0: libfmapi-devel 20240415-bp160.1.12 Β· LGPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms