1/* 2 * Definitions for liblnk 3 * 4 * Copyright (C) 2009-2021, Joachim Metz <joachim.metz@gmail.com> 5 * 6 * Refer to AUTHORS for acknowledgements. 7 * 8 * This program is free software: you can redistribute it and/or modify 9 * it under the terms of the GNU Lesser General Public License as published by 10 * the Free Software Foundation, either version 3 of the License, or 11 * (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU Lesser General Public License 19 * along with this program. If not, see <https://www.gnu.org/licenses/>. 20 */ 21 22#if !defined( _LIBLNK_DEFINITIONS_H ) 23#define _LIBLNK_DEFINITIONS_H 24 25#include <liblnk/types.h> 26 27#define LIBLNK_VERSION @VERSION@ 28 29/* The liblnk version string 30 */ 31#define LIBLNK_VERSION_STRING "@VERSION@" 32 33/* The liblnk file access 34 * bit 1 set to 1 for read access 35 * bit 2 set to 1 for write access 36 * bit 3-8 not used 37 */ 38enum LIBLNK_ACCESS_FLAGS 39{ 40 LIBLNK_ACCESS_FLAG_READ = 0x01, 41/* Reserved: not supported yet */ 42 LIBLNK_ACCESS_FLAG_WRITE = 0x02 43}; 44 45/* The libnlk file access macros 46 */ 47#define LIBLNK_OPEN_READ ( LIBLNK_ACCESS_FLAG_READ ) 48/* Reserved: not supported yet */ 49#define LIBLNK_OPEN_WRITE ( LIBLNK_ACCESS_FLAG_WRITE ) 50/* Reserved: not supported yet */ 51#define LIBLNK_OPEN_READ_WRITE ( LIBLNK_ACCESS_FLAG_READ | LIBLNK_ACCESS_FLAG_WRITE ) 52 53/* The data flags 54 */ 55enum LIBLNK_DATA_FLAGS 56{ 57 LIBLNK_DATA_FLAG_HAS_LINK_TARGET_IDENTIFIER = 0x00000001UL, 58 LIBLNK_DATA_FLAG_HAS_LOCATION_INFORMATION = 0x00000002UL, 59 LIBLNK_DATA_FLAG_HAS_DESCRIPTION_STRING = 0x00000004UL, 60 LIBLNK_DATA_FLAG_HAS_RELATIVE_PATH_STRING = 0x00000008UL, 61 LIBLNK_DATA_FLAG_HAS_WORKING_DIRECTORY_STRING = 0x00000010UL, 62 LIBLNK_DATA_FLAG_HAS_COMMAND_LINE_ARGUMENTS_STRING = 0x00000020UL, 63 LIBLNK_DATA_FLAG_HAS_ICON_LOCATION_STRING = 0x00000040UL, 64 LIBLNK_DATA_FLAG_IS_UNICODE = 0x00000080UL, 65 LIBLNK_DATA_FLAG_FORCE_NO_LOCATION_INFORMATION = 0x00000100UL, 66 LIBLNK_DATA_FLAG_HAS_ENVIRONMENT_VARIABLES_LOCATION_BLOCK = 0x00000200UL, 67 LIBLNK_DATA_FLAG_RUN_IN_SEPARATE_PROCESS = 0x00000400UL, 68 69 LIBLNK_DATA_FLAG_HAS_DARWIN_IDENTIFIER = 0x00001000UL, 70 LIBLNK_DATA_FLAG_RUN_AS_USER = 0x00002000UL, 71 LIBLNK_DATA_FLAG_HAS_ICON_LOCATION_BLOCK = 0x00004000UL, 72 LIBLNK_DATA_FLAG_NO_PIDL_ALIAS = 0x00008000UL, 73 74 LIBLNK_DATA_FLAG_RUN_WITH_SHIM_LAYER = 0x00020000UL, 75 LIBLNK_DATA_FLAG_NO_DISTRIBUTED_LINK_TRACKING_DATA_BLOCK = 0x00040000UL, 76 LIBLNK_DATA_FLAG_HAS_METADATA_PROPERTY_STORE_DATA_BLOCK = 0x00080000UL 77}; 78 79/* The file attribute flags 80 */ 81enum LIBLNK_FILE_ATTRIBUTE_FLAGS 82{ 83 LIBLNK_FILE_ATTRIBUTE_FLAG_READ_ONLY = 0x00000001UL, 84 LIBLNK_FILE_ATTRIBUTE_FLAG_HIDDEN = 0x00000002UL, 85 LIBLNK_FILE_ATTRIBUTE_FLAG_SYSTEM = 0x00000004UL, 86 87 LIBLNK_FILE_ATTRIBUTE_FLAG_DIRECTORY = 0x00000010UL, 88 LIBLNK_FILE_ATTRIBUTE_FLAG_ARCHIVE = 0x00000020UL, 89 LIBLNK_FILE_ATTRIBUTE_FLAG_DEVICE = 0x00000040UL, 90 LIBLNK_FILE_ATTRIBUTE_FLAG_NORMAL = 0x00000080UL, 91 LIBLNK_FILE_ATTRIBUTE_FLAG_TEMPORARY = 0x00000100UL, 92 LIBLNK_FILE_ATTRIBUTE_FLAG_SPARSE_FILE = 0x00000200UL, 93 LIBLNK_FILE_ATTRIBUTE_FLAG_REPARSE_POINT = 0x00000400UL, 94 LIBLNK_FILE_ATTRIBUTE_FLAG_COMPRESSED = 0x00000800UL, 95 LIBLNK_FILE_ATTRIBUTE_FLAG_OFFLINE = 0x00001000UL, 96 LIBLNK_FILE_ATTRIBUTE_FLAG_NOT_CONTENT_INDEXED = 0x00002000UL, 97 LIBLNK_FILE_ATTRIBUTE_FLAG_ENCRYPTED = 0x00004000UL, 98 99 LIBLNK_FILE_ATTRIBUTE_FLAG_VIRTUAL = 0x00010000UL 100}; 101 102/* The drive type definitions 103 */ 104enum LIBLNK_DRIVE_TYPES 105{ 106 LIBLNK_DRIVE_TYPE_UNKNOWN = 0, 107 LIBLNK_DRIVE_TYPE_NO_ROOT_DIR = 1, 108 LIBLNK_DRIVE_TYPE_REMOVABLE = 2, 109 LIBLNK_DRIVE_TYPE_FIXED = 3, 110 LIBLNK_DRIVE_TYPE_REMOTE = 4, 111 LIBLNK_DRIVE_TYPE_CDROM = 5, 112 LIBLNK_DRIVE_TYPE_RAMDISK = 6 113}; 114 115#endif /* !defined( _LIBLNK_DEFINITIONS_H ) */ 116 117