libfwsi(3)

NAME
libfwsi.h - Library to access the Windows Shell Item format

SYNOPSIS
#include <libfwsi.h>

Support functions
const char *
libfwsi_get_version(void);

Notify functions
void
libfwsi_notify_set_verbose(int verbose);
int
libfwsi_notify_set_stream(FILE *stream, libfwsi_error_t **error);
int
libfwsi_notify_stream_open(const char *filename, libfwsi_error_t **error);
int
libfwsi_notify_stream_close(libfwsi_error_t **error);

Error functions
void
libfwsi_error_free(libfwsi_error_t **error);
int
libfwsi_error_fprint(libfwsi_error_t *error, FILE *stream);
int
libfwsi_error_sprint(libfwsi_error_t *error, char *string, size_t size);
int
libfwsi_error_backtrace_fprint(libfwsi_error_t *error, FILE *stream);
int
libfwsi_error_backtrace_sprint(libfwsi_error_t *error, char *string, size_t size);

Item list functions
int
libfwsi_item_list_initialize(libfwsi_item_list_t **item_list, libfwsi_error_t **error);
int
libfwsi_item_list_free(libfwsi_item_list_t **item_list, libfwsi_error_t **error);
int
libfwsi_item_list_copy_from_byte_stream(libfwsi_item_list_t *item_list, const uint8_t *byte_stream, size_t byte_stream_size, int ascii_codepage, libfwsi_error_t **error);
int
libfwsi_item_list_get_data_size(libfwsi_item_list_t *item_list, size_t *data_size, libfwsi_error_t **error);
int
libfwsi_item_list_get_number_of_items(libfwsi_item_list_t *item_list, int *number_of_items, libfwsi_error_t **error);
int
libfwsi_item_list_get_item(libfwsi_item_list_t *item_list, int item_index, libfwsi_item_t **item, libfwsi_error_t **error);

Item functions
int
libfwsi_item_initialize(libfwsi_item_t **item, libfwsi_error_t **error);
int
libfwsi_item_free(libfwsi_item_t **item, libfwsi_error_t **error);
int
libfwsi_item_copy_from_byte_stream(libfwsi_item_t *item, const uint8_t *byte_stream, size_t byte_stream_size, int ascii_codepage, libfwsi_error_t **error);
int
libfwsi_item_get_type(libfwsi_item_t *item, int *type, libfwsi_error_t **error);
int
libfwsi_item_get_class_type(libfwsi_item_t *item, uint8_t *class_type, libfwsi_error_t **error);
int
libfwsi_item_get_signature(libfwsi_item_t *item, uint32_t *signature, libfwsi_error_t **error);
int
libfwsi_item_get_data_size(libfwsi_item_t *item, size_t *data_size, libfwsi_error_t **error);
int
libfwsi_item_get_delegate_folder_identifier(libfwsi_item_t *item, uint8_t *guid_data, size_t guid_data_size, libfwsi_error_t **error);
int
libfwsi_item_get_number_of_extension_blocks(libfwsi_item_t *item, int *number_of_extension_blocks, libfwsi_error_t **error);
int
libfwsi_item_get_extension_block(libfwsi_item_t *item, int extension_block_index, libfwsi_extension_block_t **extension_block, libfwsi_error_t **error);

Root folder item functions
int
libfwsi_root_folder_get_shell_folder_identifier(libfwsi_item_t *root_folder, uint8_t *guid_data, size_t guid_data_size, libfwsi_error_t **error);

Volume item functions
int
libfwsi_volume_get_utf8_name_size(libfwsi_item_t *volume, size_t *utf8_string_size, libfwsi_error_t **error);
int
libfwsi_volume_get_utf8_name(libfwsi_item_t *volume, uint8_t *utf8_string, size_t utf8_string_size, libfwsi_error_t **error);
int
libfwsi_volume_get_utf16_name_size(libfwsi_item_t *volume, size_t *utf16_string_size, libfwsi_error_t **error);
int
libfwsi_volume_get_utf16_name(libfwsi_item_t *volume, uint16_t *utf16_string, size_t utf16_string_size, libfwsi_error_t **error);
int
libfwsi_volume_get_identifier(libfwsi_item_t *volume, uint8_t *guid_data, size_t guid_data_size, libfwsi_error_t **error);
int
libfwsi_volume_get_shell_folder_identifier(libfwsi_item_t *volume, uint8_t *guid_data, size_t guid_data_size, libfwsi_error_t **error);

File entry item functions
int
libfwsi_file_entry_get_file_size(libfwsi_item_t *file_entry, uint32_t *file_size, libfwsi_error_t **error);
int
libfwsi_file_entry_get_modification_time(libfwsi_item_t *file_entry, uint32_t *fat_date_time, libfwsi_error_t **error);
int
libfwsi_file_entry_get_file_attribute_flags(libfwsi_item_t *file_entry, uint32_t *file_attribute_flags, libfwsi_error_t **error);
int
libfwsi_file_entry_get_utf8_name_size(libfwsi_item_t *file_entry, size_t *utf8_string_size, libfwsi_error_t **error);
int
libfwsi_file_entry_get_utf8_name(libfwsi_item_t *file_entry, uint8_t *utf8_string, size_t utf8_string_size, libfwsi_error_t **error);
int
libfwsi_file_entry_get_utf16_name_size(libfwsi_item_t *file_entry, size_t *utf16_string_size, libfwsi_error_t **error);
int
libfwsi_file_entry_get_utf16_name(libfwsi_item_t *file_entry, uint16_t *utf16_string, size_t utf16_string_size, libfwsi_error_t **error);

Network location item functions
int
libfwsi_network_location_get_utf8_location_size(libfwsi_item_t *network_location, size_t *utf8_string_size, libfwsi_error_t **error);
int
libfwsi_network_location_get_utf8_location(libfwsi_item_t *network_location, uint8_t *utf8_string, size_t utf8_string_size, libfwsi_error_t **error);
int
libfwsi_network_location_get_utf16_location_size(libfwsi_item_t *network_location, size_t *utf16_string_size, libfwsi_error_t **error);
int
libfwsi_network_location_get_utf16_location(libfwsi_item_t *network_location, uint16_t *utf16_string, size_t utf16_string_size, libfwsi_error_t **error);
int
libfwsi_network_location_get_utf8_description_size(libfwsi_item_t *network_location, size_t *utf8_string_size, libfwsi_error_t **error);
int
libfwsi_network_location_get_utf8_description(libfwsi_item_t *network_location, uint8_t *utf8_string, size_t utf8_string_size, libfwsi_error_t **error);
int
libfwsi_network_location_get_utf16_description_size(libfwsi_item_t *network_location, size_t *utf16_string_size, libfwsi_error_t **error);
int
libfwsi_network_location_get_utf16_description(libfwsi_item_t *network_location, uint16_t *utf16_string, size_t utf16_string_size, libfwsi_error_t **error);
int
libfwsi_network_location_get_utf8_comments_size(libfwsi_item_t *network_location, size_t *utf8_string_size, libfwsi_error_t **error);
int
libfwsi_network_location_get_utf8_comments(libfwsi_item_t *network_location, uint8_t *utf8_string, size_t utf8_string_size, libfwsi_error_t **error);
int
libfwsi_network_location_get_utf16_comments_size(libfwsi_item_t *network_location, size_t *utf16_string_size, libfwsi_error_t **error);
int
libfwsi_network_location_get_utf16_comments(libfwsi_item_t *network_location, uint16_t *utf16_string, size_t utf16_string_size, libfwsi_error_t **error);

Compressed folder functions
int
libfwsi_compressed_folder_get_utf8_name_size(libfwsi_item_t *compressed_folder, size_t *utf8_string_size, libfwsi_error_t **error);
int
libfwsi_compressed_folder_get_utf8_name(libfwsi_item_t *compressed_folder, uint8_t *utf8_string, size_t utf8_string_size, libfwsi_error_t **error);
int
libfwsi_compressed_folder_get_utf16_name_size(libfwsi_item_t *compressed_folder, size_t *utf16_string_size, libfwsi_error_t **error);
int
libfwsi_compressed_folder_get_utf16_name(libfwsi_item_t *compressed_folder, uint16_t *utf16_string, size_t utf16_string_size, libfwsi_error_t **error);

Control panel category functions
int
libfwsi_control_panel_category_get_identifier(libfwsi_item_t *control_panel_category, uint32_t *identifier, libfwsi_error_t **error);

Control panel item functions
int
libfwsi_control_panel_item_get_identifier(libfwsi_item_t *control_panel_item, uint8_t *guid_data, size_t guid_data_size, libfwsi_error_t **error);

Users property view functions
int
libfwsi_users_property_view_get_known_folder_identifier(libfwsi_item_t *users_property_view, uint8_t *guid_data, size_t guid_data_size, libfwsi_error_t **error);
int
libfwsi_users_property_view_get_property_store_data_size(libfwsi_item_t *users_property_view, size_t *data_size, libfwsi_error_t **error);
int
libfwsi_users_property_view_copy_property_store_data(libfwsi_item_t *users_property_view, uint8_t *data, size_t data_size, libfwsi_error_t **error);

Extension block functions
int
libfwsi_extension_block_free(libfwsi_extension_block_t **extension_block, libfwsi_error_t **error);
int
libfwsi_extension_block_get_signature(libfwsi_extension_block_t *extension_block, uint32_t *signature, libfwsi_error_t **error);
int
libfwsi_extension_block_get_data_size(libfwsi_extension_block_t *extension_block, size_t *data_size, libfwsi_error_t **error);

File entry extension functions
int
libfwsi_file_entry_extension_get_creation_time(libfwsi_extension_block_t *file_entry_extension, uint32_t *fat_date_time, libfwsi_error_t **error);
int
libfwsi_file_entry_extension_get_access_time(libfwsi_extension_block_t *file_entry_extension, uint32_t *fat_date_time, libfwsi_error_t **error);
int
libfwsi_file_entry_extension_get_file_reference(libfwsi_extension_block_t *file_entry_extension, uint64_t *file_reference, libfwsi_error_t **error);
int
libfwsi_file_entry_extension_get_utf8_long_name_size(libfwsi_extension_block_t *file_entry_extension, size_t *utf8_string_size, libfwsi_error_t **error);
int
libfwsi_file_entry_extension_get_utf8_long_name(libfwsi_extension_block_t *file_entry_extension, uint8_t *utf8_string, size_t utf8_string_size, libfwsi_error_t **error);
int
libfwsi_file_entry_extension_get_utf16_long_name_size(libfwsi_extension_block_t *file_entry_extension, size_t *utf16_string_size, libfwsi_error_t **error);
int
libfwsi_file_entry_extension_get_utf16_long_name(libfwsi_extension_block_t *file_entry_extension, uint16_t *utf16_string, size_t utf16_string_size, libfwsi_error_t **error);
int
libfwsi_file_entry_extension_get_utf8_localized_name_size(libfwsi_extension_block_t *file_entry_extension, size_t *utf8_string_size, libfwsi_error_t **error);
int
libfwsi_file_entry_extension_get_utf8_localized_name(libfwsi_extension_block_t *file_entry_extension, uint8_t *utf8_string, size_t utf8_string_size, libfwsi_error_t **error);
int
libfwsi_file_entry_extension_get_utf16_localized_name_size(libfwsi_extension_block_t *file_entry_extension, size_t *utf16_string_size, libfwsi_error_t **error);
int
libfwsi_file_entry_extension_get_utf16_localized_name(libfwsi_extension_block_t *file_entry_extension, uint16_t *utf16_string, size_t utf16_string_size, libfwsi_error_t **error);

Shell folder identifier functions
const char *
libfwsi_shell_folder_identifier_get_name(const uint8_t *shell_folder_identifier);

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

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

ENVIRONMENT
None

FILES
None

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

AUTHOR
These man pages are generated from "libfwsi.h".

COPYRIGHT
Copyright (C) 2010-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.

SEE ALSO
the libfwsi.h include file