Provided by: liblnk-dev_20240423-1_amd64 bug

NAME

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

SYNOPSIS

       #include <liblnk.h>

       Support functions

       const char *
       liblnk_get_version(void);

       int
       liblnk_get_access_flags_read(void);

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

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

       int
       liblnk_check_file_signature(const char *filename, liblnk_error_t **error);

       Available when compiled with wide character string support:

       int
       liblnk_check_file_signature_wide(const wchar_t *filename, liblnk_error_t **error);

       Available when compiled with libbfio support:

       int
       liblnk_check_file_signature_file_io_handle(libbfio_handle_t *file_io_handle, liblnk_error_t **error);

       Notify functions

       void
       liblnk_notify_set_verbose(int verbose);

       int
       liblnk_notify_set_stream(FILE *stream, liblnk_error_t **error);

       int
       liblnk_notify_stream_open(const char *filename, liblnk_error_t **error);

       int
       liblnk_notify_stream_close(liblnk_error_t **error);

       Error functions

       void
       liblnk_error_free(liblnk_error_t **error);

       int
       liblnk_error_fprint(liblnk_error_t *error, FILE *stream);

       int
       liblnk_error_sprint(liblnk_error_t *error, char *string, size_t size);

       int
       liblnk_error_backtrace_fprint(liblnk_error_t *error, FILE *stream);

       int
       liblnk_error_backtrace_sprint(liblnk_error_t *error, char *string, size_t size);

       File functions

       int
       liblnk_file_initialize(liblnk_file_t **file, liblnk_error_t **error);

       int
       liblnk_file_free(liblnk_file_t **file, liblnk_error_t **error);

       int
       liblnk_file_signal_abort(liblnk_file_t *file, liblnk_error_t **error);

       int
       liblnk_file_open(liblnk_file_t *file, const char *filename, int access_flags, liblnk_error_t **error);

       int
       liblnk_file_close(liblnk_file_t *file, liblnk_error_t **error);

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

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

       int
       liblnk_file_is_corrupted(liblnk_file_t *file, liblnk_error_t **error);

       Available when compiled with wide character string support:

       int
       liblnk_file_open_wide(liblnk_file_t     *file,     const    wchar_t    *filename,    int    access_flags,
           liblnk_error_t **error);

       Available when compiled with libbfio support:

       int
       liblnk_file_open_file_io_handle(liblnk_file_t *file, libbfio_handle_t *file_io_handle, int  access_flags,
           liblnk_error_t **error);

       Link information functions

       int
       liblnk_file_get_data_flags(liblnk_file_t *file, uint32_t *data_flags, liblnk_error_t **error);

       int
       liblnk_file_get_data_size(liblnk_file_t *file, size64_t *data_size, liblnk_error_t **error);

       int
       liblnk_file_link_refers_to_file(liblnk_file_t *file, liblnk_error_t **error);

       int
       liblnk_file_get_file_creation_time(liblnk_file_t *file, uint64_t *filetime, liblnk_error_t **error);

       int
       liblnk_file_get_file_modification_time(liblnk_file_t *file, uint64_t *filetime, liblnk_error_t **error);

       int
       liblnk_file_get_file_access_time(liblnk_file_t *file, uint64_t *filetime, liblnk_error_t **error);

       int
       liblnk_file_get_file_size(liblnk_file_t *file, uint32_t *file_size, liblnk_error_t **error);

       int
       liblnk_file_get_icon_index(liblnk_file_t *file, uint32_t *icon_index, liblnk_error_t **error);

       int
       liblnk_file_get_show_window_value(liblnk_file_t         *file,        uint32_t        *show_window_value,
           liblnk_error_t **error);

       int
       liblnk_file_get_hot_key_value(liblnk_file_t *file, uint16_t *hot_key_value, liblnk_error_t **error);

       int
       liblnk_file_get_file_attribute_flags(liblnk_file_t      *file,      uint32_t       *file_attribute_flags,
           liblnk_error_t **error);

       int
       liblnk_file_get_drive_type(liblnk_file_t *file, uint32_t *drive_type, liblnk_error_t **error);

       int
       liblnk_file_get_drive_serial_number(liblnk_file_t       *file,       uint32_t       *drive_serial_number,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf8_volume_label_size(liblnk_file_t       *file,        size_t        *utf8_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf8_volume_label(liblnk_file_t  *file,  uint8_t  *utf8_string,  size_t utf8_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf16_volume_label_size(liblnk_file_t       *file,       size_t       *utf16_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf16_volume_label(liblnk_file_t *file, uint16_t *utf16_string, size_t utf16_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf8_local_path_size(liblnk_file_t         *file,        size_t        *utf8_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf8_local_path(liblnk_file_t  *file,  uint8_t  *utf8_string,  size_t   utf8_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf16_local_path_size(liblnk_file_t        *file,        size_t       *utf16_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf16_local_path(liblnk_file_t *file, uint16_t *utf16_string,  size_t  utf16_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf8_network_path_size(liblnk_file_t        *file,        size_t       *utf8_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf8_network_path(liblnk_file_t *file,  uint8_t  *utf8_string,  size_t  utf8_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf16_network_path_size(liblnk_file_t       *file,       size_t       *utf16_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf16_network_path(liblnk_file_t *file, uint16_t *utf16_string, size_t utf16_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf8_description_size(liblnk_file_t        *file,        size_t        *utf8_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf8_description(liblnk_file_t  *file,  uint8_t  *utf8_string,  size_t  utf8_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf16_description_size(liblnk_file_t       *file,       size_t        *utf16_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf16_description(liblnk_file_t  *file, uint16_t *utf16_string, size_t utf16_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf8_relative_path_size(liblnk_file_t       *file,       size_t        *utf8_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf8_relative_path(liblnk_file_t  *file,  uint8_t  *utf8_string, size_t utf8_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf16_relative_path_size(liblnk_file_t      *file,       size_t       *utf16_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf16_relative_path(liblnk_file_t          *file,         uint16_t         *utf16_string,
           size_t utf16_string_size, liblnk_error_t **error);

       int
       liblnk_file_get_utf8_working_directory_size(liblnk_file_t      *file,      size_t      *utf8_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf8_working_directory(liblnk_file_t         *file,         uint8_t         *utf8_string,
           size_t utf8_string_size, liblnk_error_t **error);

       int
       liblnk_file_get_utf16_working_directory_size(liblnk_file_t     *file,     size_t      *utf16_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf16_working_directory(liblnk_file_t        *file,        uint16_t        *utf16_string,
           size_t utf16_string_size, liblnk_error_t **error);

       int
       liblnk_file_get_utf8_command_line_arguments_size(liblnk_file_t    *file,    size_t     *utf8_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf8_command_line_arguments(liblnk_file_t        *file,       uint8_t       *utf8_string,
           size_t utf8_string_size, liblnk_error_t **error);

       int
       liblnk_file_get_utf16_command_line_arguments_size(liblnk_file_t   *file,    size_t    *utf16_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf16_command_line_arguments(liblnk_file_t       *file,      uint16_t      *utf16_string,
           size_t utf16_string_size, liblnk_error_t **error);

       int
       liblnk_file_get_utf8_icon_location_size(liblnk_file_t       *file,       size_t        *utf8_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf8_icon_location(liblnk_file_t  *file,  uint8_t  *utf8_string, size_t utf8_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf16_icon_location_size(liblnk_file_t      *file,       size_t       *utf16_string_size,
           liblnk_error_t **error);

       int
       liblnk_file_get_utf16_icon_location(liblnk_file_t          *file,         uint16_t         *utf16_string,
           size_t utf16_string_size, liblnk_error_t **error);

       int
       liblnk_file_get_link_target_identifier_data_size(liblnk_file_t      *file,       size_t       *data_size,
           liblnk_error_t **error);

       int
       liblnk_file_copy_link_target_identifier_data(liblnk_file_t   *file,   uint8_t  *data,  size_t  data_size,
           liblnk_error_t **error);

       Distributed link tracking data functions

       int
       liblnk_file_has_distributed_link_tracking_data(liblnk_file_t *file, liblnk_error_t **error);

       Extra data block functions

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

       int
       liblnk_file_get_data_block_by_index(liblnk_file_t          *file,          int          data_block_index,
           liblnk_data_block_t **data_block, liblnk_error_t **error);

       Data block functions

       int
       liblnk_data_block_free(liblnk_data_block_t **data_block, liblnk_error_t **error);

       int
       liblnk_data_block_get_signature(liblnk_data_block_t       *data_block,        uint32_t        *signature,
           liblnk_error_t **error);

       int
       liblnk_data_block_get_data_size(liblnk_data_block_t         *data_block,        size_t        *data_size,
           liblnk_error_t **error);

       int
       liblnk_data_block_copy_data(liblnk_data_block_t   *data_block,   uint8_t   *data,    size_t    data_size,
           liblnk_error_t **error);

       Strings data block functions

       int
       liblnk_strings_data_block_get_utf8_string_size(liblnk_data_block_t *data_block, size_t *utf8_string_size,
           liblnk_error_t **error);

       int
       liblnk_strings_data_block_get_utf8_string(liblnk_data_block_t    *data_block,    uint8_t    *utf8_string,
           size_t utf8_string_size, liblnk_error_t **error);

       int
       liblnk_strings_data_block_get_utf16_string_size(liblnk_data_block_t                          *data_block,
           size_t *utf16_string_size, liblnk_error_t **error);

       int
       liblnk_strings_data_block_get_utf16_string(liblnk_data_block_t   *data_block,   uint16_t   *utf16_string,
           size_t utf16_string_size, liblnk_error_t **error);

       int
       liblnk_strings_data_block_get_utf8_path_string_size(liblnk_data_block_t                      *data_block,
           size_t *utf8_string_size, liblnk_error_t **error);

       int
       liblnk_strings_data_block_get_utf8_path_string(liblnk_data_block_t   *data_block,  uint8_t  *utf8_string,
           size_t utf8_string_size, liblnk_error_t **error);

       int
       liblnk_strings_data_block_get_utf16_path_string_size(liblnk_data_block_t                     *data_block,
           size_t *utf16_string_size, liblnk_error_t **error);

       int
       liblnk_strings_data_block_get_utf16_path_string(liblnk_data_block_t  *data_block, uint16_t *utf16_string,
           size_t utf16_string_size, liblnk_error_t **error);

       Distributed link tracking data block functions

       int
       liblnk_distributed_link_tracking_data_block_get_utf8_machine_identifier_size(liblnk_data_block*_tata_block,
           size_t *utf8_string_size, liblnk_error_t **error);

       int
       liblnk_distributed_link_tracking_data_block_get_utf8_machine_identifier(liblnk_data_block_t  *data_block,
           uint8_t *utf8_string, size_t utf8_string_size, liblnk_error_t **error);

       int
       liblnk_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);

       int
       liblnk_distributed_link_tracking_data_block_get_utf16_machine_identifier(liblnk_data_block_t *data_block,
           uint16_t *utf16_string, size_t utf16_string_size, liblnk_error_t **error);

       int
       liblnk_distributed_link_tracking_data_block_get_droid_volume_identifier(liblnk_data_block_t  *data_block,
           uint8_t *guid_data, size_t guid_data_size, liblnk_error_t **error);

       int
       liblnk_distributed_link_tracking_data_block_get_droid_file_identifier(liblnk_data_block_t    *data_block,
           uint8_t *guid_data, size_t guid_data_size, liblnk_error_t **error);

       int
       liblnk_distributed_link_tracking_data_block_get_birth_droid_volume_identifier(liblnk_data_bloc*kd_tta_block,
           uint8_t *guid_data, size_t guid_data_size, liblnk_error_t **error);

       int
       liblnk_distributed_link_tracking_data_block_get_birth_droid_file_identifier(liblnk_data_block_tdata_block,
           uint8_t *guid_data, size_t guid_data_size, liblnk_error_t **error);

DESCRIPTION

       The liblnk_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 "liblnk.h".

ENVIRONMENT

       None

FILES

       None

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.

BUGS

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

AUTHOR

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

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.

SEE ALSO

       the liblnk.h include file

liblnk                                          October 28, 2023                                       liblnk(3)

Powered by the Ubuntu Manpage Operator, file bugs in Github

© 2025 Canonical. Ubuntu and Canonical are registered trademarks of Canonical Ltd.