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

liblnk.h — Library to access the Windows Shortcut File (LNK) format

Author

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

Bugs

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

Description

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

Environment

       None

Files

       None

Name

       liblnk.h — Library to access the Windows Shortcut File (LNK) format

Notes

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

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

       LIBLNK_WIDE_CHARACTER_TYPE
        in liblnk/features.h can be used to determine if liblnk 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 "liblnk.h".

See Also

       the liblnk.h include file

liblnk                                          October 28, 2023                                       liblnk(3)

Synopsis

#include<liblnk.h>

       Support functions

       constchar*liblnk_get_version(void);

       intliblnk_get_access_flags_read(void);

       intliblnk_get_codepage(int*codepage, liblnk_error_t**error);

       intliblnk_set_codepage(intcodepage, liblnk_error_t**error);

       intliblnk_check_file_signature(constchar*filename, liblnk_error_t**error);

       Available when compiled with wide character string support:

       intliblnk_check_file_signature_wide(constwchar_t*filename, liblnk_error_t**error);

       Available when compiled with libbfio support:

       intliblnk_check_file_signature_file_io_handle(libbfio_handle_t*file_io_handle, liblnk_error_t**error);

       Notify functions

       voidliblnk_notify_set_verbose(intverbose);

       intliblnk_notify_set_stream(FILE*stream, liblnk_error_t**error);

       intliblnk_notify_stream_open(constchar*filename, liblnk_error_t**error);

       intliblnk_notify_stream_close(liblnk_error_t**error);

       Error functions

       voidliblnk_error_free(liblnk_error_t**error);

       intliblnk_error_fprint(liblnk_error_t*error, FILE*stream);

       intliblnk_error_sprint(liblnk_error_t*error, char*string, size_tsize);

       intliblnk_error_backtrace_fprint(liblnk_error_t*error, FILE*stream);

       intliblnk_error_backtrace_sprint(liblnk_error_t*error, char*string, size_tsize);

       File functions

       intliblnk_file_initialize(liblnk_file_t**file, liblnk_error_t**error);

       intliblnk_file_free(liblnk_file_t**file, liblnk_error_t**error);

       intliblnk_file_signal_abort(liblnk_file_t*file, liblnk_error_t**error);

       intliblnk_file_open(liblnk_file_t*file, constchar*filename, intaccess_flags, liblnk_error_t**error);

       intliblnk_file_close(liblnk_file_t*file, liblnk_error_t**error);

       intliblnk_file_get_ascii_codepage(liblnk_file_t*file, int*ascii_codepage, liblnk_error_t**error);

       intliblnk_file_set_ascii_codepage(liblnk_file_t*file, intascii_codepage, liblnk_error_t**error);

       intliblnk_file_is_corrupted(liblnk_file_t*file, liblnk_error_t**error);

       Available when compiled with wide character string support:

       intliblnk_file_open_wide(liblnk_file_t*file,     constwchar_t*filename,    intaccess_flags,
           liblnk_error_t**error);

       Available when compiled with libbfio support:

       intliblnk_file_open_file_io_handle(liblnk_file_t*file, libbfio_handle_t*file_io_handle, intaccess_flags,
           liblnk_error_t**error);

       Link information functions

       intliblnk_file_get_data_flags(liblnk_file_t*file, uint32_t*data_flags, liblnk_error_t**error);

       intliblnk_file_get_data_size(liblnk_file_t*file, size64_t*data_size, liblnk_error_t**error);

       intliblnk_file_link_refers_to_file(liblnk_file_t*file, liblnk_error_t**error);

       intliblnk_file_get_file_creation_time(liblnk_file_t*file, uint64_t*filetime, liblnk_error_t**error);

       intliblnk_file_get_file_modification_time(liblnk_file_t*file, uint64_t*filetime, liblnk_error_t**error);

       intliblnk_file_get_file_access_time(liblnk_file_t*file, uint64_t*filetime, liblnk_error_t**error);

       intliblnk_file_get_file_size(liblnk_file_t*file, uint32_t*file_size, liblnk_error_t**error);

       intliblnk_file_get_icon_index(liblnk_file_t*file, uint32_t*icon_index, liblnk_error_t**error);

       intliblnk_file_get_show_window_value(liblnk_file_t*file,        uint32_t*show_window_value,
           liblnk_error_t**error);

       intliblnk_file_get_hot_key_value(liblnk_file_t*file, uint16_t*hot_key_value, liblnk_error_t**error);

       intliblnk_file_get_file_attribute_flags(liblnk_file_t*file,      uint32_t*file_attribute_flags,
           liblnk_error_t**error);

       intliblnk_file_get_drive_type(liblnk_file_t*file, uint32_t*drive_type, liblnk_error_t**error);

       intliblnk_file_get_drive_serial_number(liblnk_file_t*file,       uint32_t*drive_serial_number,
           liblnk_error_t**error);

       intliblnk_file_get_utf8_volume_label_size(liblnk_file_t*file,        size_t*utf8_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf8_volume_label(liblnk_file_t*file,  uint8_t*utf8_string,  size_tutf8_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf16_volume_label_size(liblnk_file_t*file,       size_t*utf16_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf16_volume_label(liblnk_file_t*file, uint16_t*utf16_string, size_tutf16_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf8_local_path_size(liblnk_file_t*file,        size_t*utf8_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf8_local_path(liblnk_file_t*file,  uint8_t*utf8_string,  size_tutf8_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf16_local_path_size(liblnk_file_t*file,        size_t*utf16_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf16_local_path(liblnk_file_t*file, uint16_t*utf16_string,  size_tutf16_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf8_network_path_size(liblnk_file_t*file,        size_t*utf8_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf8_network_path(liblnk_file_t*file,  uint8_t*utf8_string,  size_tutf8_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf16_network_path_size(liblnk_file_t*file,       size_t*utf16_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf16_network_path(liblnk_file_t*file, uint16_t*utf16_string, size_tutf16_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf8_description_size(liblnk_file_t*file,        size_t*utf8_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf8_description(liblnk_file_t*file,  uint8_t*utf8_string,  size_tutf8_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf16_description_size(liblnk_file_t*file,       size_t*utf16_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf16_description(liblnk_file_t*file, uint16_t*utf16_string, size_tutf16_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf8_relative_path_size(liblnk_file_t*file,       size_t*utf8_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf8_relative_path(liblnk_file_t*file,  uint8_t*utf8_string, size_tutf8_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf16_relative_path_size(liblnk_file_t*file,       size_t*utf16_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf16_relative_path(liblnk_file_t*file,         uint16_t*utf16_string,
           size_tutf16_string_size, liblnk_error_t**error);

       intliblnk_file_get_utf8_working_directory_size(liblnk_file_t*file,      size_t*utf8_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf8_working_directory(liblnk_file_t*file,         uint8_t*utf8_string,
           size_tutf8_string_size, liblnk_error_t**error);

       intliblnk_file_get_utf16_working_directory_size(liblnk_file_t*file,     size_t*utf16_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf16_working_directory(liblnk_file_t*file,        uint16_t*utf16_string,
           size_tutf16_string_size, liblnk_error_t**error);

       intliblnk_file_get_utf8_command_line_arguments_size(liblnk_file_t*file,    size_t*utf8_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf8_command_line_arguments(liblnk_file_t*file,       uint8_t*utf8_string,
           size_tutf8_string_size, liblnk_error_t**error);

       intliblnk_file_get_utf16_command_line_arguments_size(liblnk_file_t*file,    size_t*utf16_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf16_command_line_arguments(liblnk_file_t*file,      uint16_t*utf16_string,
           size_tutf16_string_size, liblnk_error_t**error);

       intliblnk_file_get_utf8_icon_location_size(liblnk_file_t*file,       size_t*utf8_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf8_icon_location(liblnk_file_t*file,  uint8_t*utf8_string, size_tutf8_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf16_icon_location_size(liblnk_file_t*file,       size_t*utf16_string_size,
           liblnk_error_t**error);

       intliblnk_file_get_utf16_icon_location(liblnk_file_t*file,         uint16_t*utf16_string,
           size_tutf16_string_size, liblnk_error_t**error);

       intliblnk_file_get_link_target_identifier_data_size(liblnk_file_t*file,       size_t*data_size,
           liblnk_error_t**error);

       intliblnk_file_copy_link_target_identifier_data(liblnk_file_t*file,   uint8_t*data,  size_tdata_size,
           liblnk_error_t**error);

       Distributed link tracking data functions

       intliblnk_file_has_distributed_link_tracking_data(liblnk_file_t*file, liblnk_error_t**error);

       Extra data block functions

       intliblnk_file_get_number_of_data_blocks(liblnk_file_t*file,       int*number_of_data_blocks,
           liblnk_error_t**error);

       intliblnk_file_get_data_block_by_index(liblnk_file_t*file,          intdata_block_index,
           liblnk_data_block_t**data_block, liblnk_error_t**error);

       Data block functions

       intliblnk_data_block_free(liblnk_data_block_t**data_block, liblnk_error_t**error);

       intliblnk_data_block_get_signature(liblnk_data_block_t*data_block,        uint32_t*signature,
           liblnk_error_t**error);

       intliblnk_data_block_get_data_size(liblnk_data_block_t*data_block,        size_t*data_size,
           liblnk_error_t**error);

       intliblnk_data_block_copy_data(liblnk_data_block_t*data_block,   uint8_t*data,    size_tdata_size,
           liblnk_error_t**error);

       Strings data block functions

       intliblnk_strings_data_block_get_utf8_string_size(liblnk_data_block_t*data_block, size_t*utf8_string_size,
           liblnk_error_t**error);

       intliblnk_strings_data_block_get_utf8_string(liblnk_data_block_t*data_block,    uint8_t*utf8_string,
           size_tutf8_string_size, liblnk_error_t**error);

       intliblnk_strings_data_block_get_utf16_string_size(liblnk_data_block_t*data_block,
           size_t*utf16_string_size, liblnk_error_t**error);

       intliblnk_strings_data_block_get_utf16_string(liblnk_data_block_t*data_block,   uint16_t*utf16_string,
           size_tutf16_string_size, liblnk_error_t**error);

       intliblnk_strings_data_block_get_utf8_path_string_size(liblnk_data_block_t*data_block,
           size_t*utf8_string_size, liblnk_error_t**error);

       intliblnk_strings_data_block_get_utf8_path_string(liblnk_data_block_t*data_block,  uint8_t*utf8_string,
           size_tutf8_string_size, liblnk_error_t**error);

       intliblnk_strings_data_block_get_utf16_path_string_size(liblnk_data_block_t*data_block,
           size_t*utf16_string_size, liblnk_error_t**error);

       intliblnk_strings_data_block_get_utf16_path_string(liblnk_data_block_t*data_block, uint16_t*utf16_string,
           size_tutf16_string_size, liblnk_error_t**error);

       Distributed link tracking data block functions

       intliblnk_distributed_link_tracking_data_block_get_utf8_machine_identifier_size(liblnk_data_block*_tata_block,
           size_t*utf8_string_size, liblnk_error_t**error);

       intliblnk_distributed_link_tracking_data_block_get_utf8_machine_identifier(liblnk_data_block_t*data_block,
           uint8_t*utf8_string, size_tutf8_string_size, liblnk_error_t**error);

       intliblnk_distributed_link_tracking_data_block_get_utf16_machine_identifier_size(liblnk_data_bloc*kd_tta_block,
           size_t*utf16_string_size, liblnk_error_t**error);

       intliblnk_distributed_link_tracking_data_block_get_utf16_machine_identifier(liblnk_data_block_t*data_block,
           uint16_t*utf16_string, size_tutf16_string_size, liblnk_error_t**error);

       intliblnk_distributed_link_tracking_data_block_get_droid_volume_identifier(liblnk_data_block_t*data_block,
           uint8_t*guid_data, size_tguid_data_size, liblnk_error_t**error);

       intliblnk_distributed_link_tracking_data_block_get_droid_file_identifier(liblnk_data_block_t*data_block,
           uint8_t*guid_data, size_tguid_data_size, liblnk_error_t**error);

       intliblnk_distributed_link_tracking_data_block_get_birth_droid_volume_identifier(liblnk_data_bloc*kd_tta_block,
           uint8_t*guid_data, size_tguid_data_size, liblnk_error_t**error);

       intliblnk_distributed_link_tracking_data_block_get_birth_droid_file_identifier(liblnk_data_block_tdata_block,
           uint8_t*guid_data, size_tguid_data_size, liblnk_error_t**error);

See Also