1 /* 2 * PROJECT: ReactOS Application compatibility module 3 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later) 4 * PURPOSE: All tags 5 * COPYRIGHT: Copyright 2013 Mislav Blažević 6 * Copyright 2015-2019 Mark Jansen (mark.jansen@reactos.org) 7 */ 8 9 #ifndef SDBTAGID_H 10 #define SDBTAGID_H 11 12 #ifdef __cplusplus 13 extern "C" { 14 #endif 15 16 #define TAGID_NULL 0x0 17 #define TAGID_ROOT 0x0 18 19 /* The above definition of TAGID_ROOT is used in winapi and can be found 20 * on msdn it but doesn't make sense, especially internally, because 21 * TAGID represents offset into database data and there is a header at 22 * offset 0, NOT a tag. Therefore, this definition should be used internally 23 * to represent first valid TAGID. Header size is 12 bytes. */ 24 #define _TAGID_ROOT 12 25 26 #define TAG_TYPE_MASK 0xF000 27 28 #define TAG_TYPE_NULL 0x1000 29 #define TAG_TYPE_BYTE 0x2000 30 #define TAG_TYPE_WORD 0x3000 31 #define TAG_TYPE_DWORD 0x4000 32 #define TAG_TYPE_QWORD 0x5000 33 #define TAG_TYPE_STRINGREF 0x6000 34 #define TAG_TYPE_LIST 0x7000 35 #define TAG_TYPE_STRING 0x8000 36 #define TAG_TYPE_BINARY 0x9000 37 38 #define TAG_NULL 0x0 39 40 /* TAG_TYPE_NULL */ 41 #define TAG_INCLUDE (0x1 | TAG_TYPE_NULL) 42 #define TAG_GENERAL (0x2 | TAG_TYPE_NULL) 43 #define TAG_MATCH_LOGIC_NOT (0x3 | TAG_TYPE_NULL) 44 #define TAG_APPLY_ALL_SHIMS (0x4 | TAG_TYPE_NULL) 45 #define TAG_USE_SERVICE_PACK_FILES (0x5 | TAG_TYPE_NULL) 46 #define TAG_MITIGATION_OS (0x6 | TAG_TYPE_NULL) 47 #define TAG_BLOCK_UPGRADE (0x7 | TAG_TYPE_NULL) 48 #define TAG_INCLUDEEXCLUDEDLL (0x8 | TAG_TYPE_NULL) 49 #define TAG_RAC_EVENT_OFF (0x9 | TAG_TYPE_NULL) 50 #define TAG_TELEMETRY_OFF (0xA | TAG_TYPE_NULL) 51 #define TAG_SHIM_ENGINE_OFF (0xB | TAG_TYPE_NULL) 52 #define TAG_LAYER_PROPAGATION_OFF (0xC | TAG_TYPE_NULL) 53 #define TAG_REINSTALL_UPGRADE (0xD | TAG_TYPE_NULL) 54 55 /* TAG_TYPE_BYTE */ 56 57 /* TAG_TYPE_WORD */ 58 #define TAG_MATCH_MODE (0x1 | TAG_TYPE_WORD) 59 #define TAG_TAG (0x801 | TAG_TYPE_WORD) 60 #define TAG_INDEX_TAG (0x802 | TAG_TYPE_WORD) 61 #define TAG_INDEX_KEY (0x803 | TAG_TYPE_WORD) 62 63 /* TAG_TYPE_DWORD */ 64 #define TAG_SIZE (0x1 | TAG_TYPE_DWORD) 65 #define TAG_OFFSET (0x2 | TAG_TYPE_DWORD) 66 #define TAG_CHECKSUM (0x3 | TAG_TYPE_DWORD) 67 #define TAG_SHIM_TAGID (0x4 | TAG_TYPE_DWORD) 68 #define TAG_PATCH_TAGID (0x5 | TAG_TYPE_DWORD) 69 #define TAG_MODULE_TYPE (0x6 | TAG_TYPE_DWORD) 70 #define TAG_VERDATEHI (0x7 | TAG_TYPE_DWORD) 71 #define TAG_VERDATELO (0x8 | TAG_TYPE_DWORD) 72 #define TAG_VERFILEOS (0x9 | TAG_TYPE_DWORD) 73 #define TAG_VERFILETYPE (0xA | TAG_TYPE_DWORD) 74 #define TAG_PE_CHECKSUM (0xB | TAG_TYPE_DWORD) 75 #define TAG_PREVOSMAJORVER (0xC | TAG_TYPE_DWORD) 76 #define TAG_PREVOSMINORVER (0xD | TAG_TYPE_DWORD) 77 #define TAG_PREVOSPLATFORMID (0xE | TAG_TYPE_DWORD) 78 #define TAG_PREVOSBUILDNO (0xF | TAG_TYPE_DWORD) 79 #define TAG_PROBLEMSEVERITY (0x10 | TAG_TYPE_DWORD) 80 #define TAG_LANGID (0x11 | TAG_TYPE_DWORD) 81 #define TAG_VER_LANGUAGE (0x12 | TAG_TYPE_DWORD) 82 #define TAG_ENGINE (0x14 | TAG_TYPE_DWORD) 83 #define TAG_HTMLHELPID (0x15 | TAG_TYPE_DWORD) 84 #define TAG_INDEX_FLAGS (0x16 | TAG_TYPE_DWORD) 85 #define TAG_FLAGS (0x17 | TAG_TYPE_DWORD) 86 #define TAG_DATA_VALUETYPE (0x18 | TAG_TYPE_DWORD) 87 #define TAG_DATA_DWORD (0x19 | TAG_TYPE_DWORD) 88 #define TAG_LAYER_TAGID (0x1A | TAG_TYPE_DWORD) 89 #define TAG_MSI_TRANSFORM_TAGID (0x1B | TAG_TYPE_DWORD) 90 #define TAG_LINKER_VERSION (0x1C | TAG_TYPE_DWORD) 91 #define TAG_LINK_DATE (0x1D | TAG_TYPE_DWORD) 92 #define TAG_UPTO_LINK_DATE (0x1E | TAG_TYPE_DWORD) 93 #define TAG_OS_SERVICE_PACK (0x1F | TAG_TYPE_DWORD) 94 #define TAG_FLAG_TAGID (0x20 | TAG_TYPE_DWORD) 95 #define TAG_RUNTIME_PLATFORM (0x21 | TAG_TYPE_DWORD) 96 #define TAG_OS_SKU (0x22 | TAG_TYPE_DWORD) 97 #define TAG_OS_PLATFORM (0x23 | TAG_TYPE_DWORD) 98 #define TAG_APP_NAME_RC_ID (0x24 | TAG_TYPE_DWORD) 99 #define TAG_VENDOR_NAME_RC_ID (0x25 | TAG_TYPE_DWORD) 100 #define TAG_SUMMARY_MSG_RC_ID (0x26 | TAG_TYPE_DWORD) 101 #define TAG_VISTA_SKU (0x27 | TAG_TYPE_DWORD) 102 #define TAG_DESCRIPTION_RC_ID (0x28 | TAG_TYPE_DWORD) 103 #define TAG_PARAMETER1_RC_ID (0x29 | TAG_TYPE_DWORD) 104 #define TAG_CONTEXT_TAGID (0x30 | TAG_TYPE_DWORD) 105 #define TAG_EXE_WRAPPER (0x31 | TAG_TYPE_DWORD) 106 #define TAG_URL_ID (0x32 | TAG_TYPE_DWORD) 107 #define TAG_TAGID (0x801 | TAG_TYPE_DWORD) 108 109 /* TAG_TYPE_QWORD */ 110 #define TAG_TIME (0x1 | TAG_TYPE_QWORD) 111 #define TAG_BIN_FILE_VERSION (0x2 | TAG_TYPE_QWORD) 112 #define TAG_BIN_PRODUCT_VERSION (0x3 | TAG_TYPE_QWORD) 113 #define TAG_MODTIME (0x4 | TAG_TYPE_QWORD) 114 #define TAG_FLAG_MASK_KERNEL (0x5 | TAG_TYPE_QWORD) 115 #define TAG_UPTO_BIN_PRODUCT_VERSION (0x6 | TAG_TYPE_QWORD) 116 #define TAG_DATA_QWORD (0x7 | TAG_TYPE_QWORD) 117 #define TAG_FLAG_MASK_USER (0x8 | TAG_TYPE_QWORD) 118 #define TAG_FLAGS_NTVDM1 (0x9 | TAG_TYPE_QWORD) 119 #define TAG_FLAGS_NTVDM2 (0xA | TAG_TYPE_QWORD) 120 #define TAG_FLAGS_NTVDM3 (0xB | TAG_TYPE_QWORD) 121 #define TAG_FLAG_MASK_SHELL (0xC | TAG_TYPE_QWORD) 122 #define TAG_UPTO_BIN_FILE_VERSION (0xD | TAG_TYPE_QWORD) 123 #define TAG_FLAG_MASK_FUSION (0xE | TAG_TYPE_QWORD) 124 #define TAG_FLAG_PROCESSPARAM (0xF | TAG_TYPE_QWORD) 125 #define TAG_FLAG_LUA (0x10 | TAG_TYPE_QWORD) 126 #define TAG_FLAG_INSTALL (0x11 | TAG_TYPE_QWORD) 127 128 /* TAG_TYPE_STRINGREF */ 129 #define TAG_NAME (0x1 | TAG_TYPE_STRINGREF) 130 #define TAG_DESCRIPTION (0x2 | TAG_TYPE_STRINGREF) 131 #define TAG_MODULE (0x3 | TAG_TYPE_STRINGREF) 132 #define TAG_API (0x4 | TAG_TYPE_STRINGREF) 133 #define TAG_VENDOR (0x5 | TAG_TYPE_STRINGREF) 134 #define TAG_APP_NAME (0x6 | TAG_TYPE_STRINGREF) 135 #define TAG_COMMAND_LINE (0x8 | TAG_TYPE_STRINGREF) 136 #define TAG_COMPANY_NAME (0x9 | TAG_TYPE_STRINGREF) 137 #define TAG_DLLFILE (0xA | TAG_TYPE_STRINGREF) 138 #define TAG_WILDCARD_NAME (0xB | TAG_TYPE_STRINGREF) 139 #define TAG_PRODUCT_NAME (0x10 | TAG_TYPE_STRINGREF) 140 #define TAG_PRODUCT_VERSION (0x11 | TAG_TYPE_STRINGREF) 141 #define TAG_FILE_DESCRIPTION (0x12 | TAG_TYPE_STRINGREF) 142 #define TAG_FILE_VERSION (0x13 | TAG_TYPE_STRINGREF) 143 #define TAG_ORIGINAL_FILENAME (0x14 | TAG_TYPE_STRINGREF) 144 #define TAG_INTERNAL_NAME (0x15 | TAG_TYPE_STRINGREF) 145 #define TAG_LEGAL_COPYRIGHT (0x16 | TAG_TYPE_STRINGREF) 146 #define TAG_16BIT_DESCRIPTION (0x17 | TAG_TYPE_STRINGREF) 147 #define TAG_APPHELP_DETAILS (0x18 | TAG_TYPE_STRINGREF) 148 #define TAG_LINK_URL (0x19 | TAG_TYPE_STRINGREF) 149 #define TAG_LINK_TEXT (0x1A | TAG_TYPE_STRINGREF) 150 #define TAG_APPHELP_TITLE (0x1B | TAG_TYPE_STRINGREF) 151 #define TAG_APPHELP_CONTACT (0x1C | TAG_TYPE_STRINGREF) 152 #define TAG_SXS_MANIFEST (0x1D | TAG_TYPE_STRINGREF) 153 #define TAG_DATA_STRING (0x1E | TAG_TYPE_STRINGREF) 154 #define TAG_MSI_TRANSFORM_FILE (0x1F | TAG_TYPE_STRINGREF) 155 #define TAG_16BIT_MODULE_NAME (0x20 | TAG_TYPE_STRINGREF) 156 #define TAG_LAYER_DISPLAYNAME (0x21 | TAG_TYPE_STRINGREF) 157 #define TAG_COMPILER_VERSION (0x22 | TAG_TYPE_STRINGREF) 158 #define TAG_ACTION_TYPE (0x23 | TAG_TYPE_STRINGREF) 159 #define TAG_EXPORT_NAME (0x24 | TAG_TYPE_STRINGREF) 160 #define TAG_URL (0x25 | TAG_TYPE_STRINGREF) 161 162 /* TAG_TYPE_LIST */ 163 #define TAG_DATABASE (0x1 | TAG_TYPE_LIST) 164 #define TAG_LIBRARY (0x2 | TAG_TYPE_LIST) 165 #define TAG_INEXCLUD (0x3 | TAG_TYPE_LIST) 166 #define TAG_SHIM (0x4 | TAG_TYPE_LIST) 167 #define TAG_PATCH (0x5 | TAG_TYPE_LIST) 168 #define TAG_APP (0x6 | TAG_TYPE_LIST) 169 #define TAG_EXE (0x7 | TAG_TYPE_LIST) 170 #define TAG_MATCHING_FILE (0x8 | TAG_TYPE_LIST) 171 #define TAG_SHIM_REF (0x9| TAG_TYPE_LIST) 172 #define TAG_PATCH_REF (0xA | TAG_TYPE_LIST) 173 #define TAG_LAYER (0xB | TAG_TYPE_LIST) 174 #define TAG_FILE (0xC | TAG_TYPE_LIST) 175 #define TAG_APPHELP (0xD | TAG_TYPE_LIST) 176 #define TAG_LINK (0xE | TAG_TYPE_LIST) 177 #define TAG_DATA (0xF | TAG_TYPE_LIST) 178 #define TAG_MSI_TRANSFORM (0x10 | TAG_TYPE_LIST) 179 #define TAG_MSI_TRANSFORM_REF (0x11 | TAG_TYPE_LIST) 180 #define TAG_MSI_PACKAGE (0x12 | TAG_TYPE_LIST) 181 #define TAG_FLAG (0x13 | TAG_TYPE_LIST) 182 #define TAG_MSI_CUSTOM_ACTION (0x14 | TAG_TYPE_LIST) 183 #define TAG_FLAG_REF (0x15 | TAG_TYPE_LIST) 184 #define TAG_ACTION (0x16 | TAG_TYPE_LIST) 185 #define TAG_LOOKUP (0x17 | TAG_TYPE_LIST) 186 #define TAG_CONTEXT (0x18 | TAG_TYPE_LIST) 187 #define TAG_CONTEXT_REF (0x19 | TAG_TYPE_LIST) 188 #define TAG_SPC (0x20 | TAG_TYPE_LIST) 189 #define TAG_STRINGTABLE (0x801 | TAG_TYPE_LIST) 190 #define TAG_INDEXES (0x802 | TAG_TYPE_LIST) 191 #define TAG_INDEX (0x803 | TAG_TYPE_LIST) 192 193 /* TAG_TYPE_STRING */ 194 #define TAG_STRINGTABLE_ITEM (0x801 | TAG_TYPE_STRING) 195 196 /* TAG_TYPE_BINARY */ 197 #define TAG_PATCH_BITS (0x2 | TAG_TYPE_BINARY) 198 #define TAG_FILE_BITS (0x3 | TAG_TYPE_BINARY) 199 #define TAG_EXE_ID (0x4 | TAG_TYPE_BINARY) 200 #define TAG_DATA_BITS (0x5 | TAG_TYPE_BINARY) 201 #define TAG_MSI_PACKAGE_ID (0x6 | TAG_TYPE_BINARY) 202 #define TAG_DATABASE_ID (0x7 | TAG_TYPE_BINARY) 203 #define TAG_CONTEXT_PLATFORM_ID (0x8 | TAG_TYPE_BINARY) 204 #define TAG_CONTEXT_BRANCH_ID (0x9 | TAG_TYPE_BINARY) 205 #define TAG_FIX_ID (0x10 | TAG_TYPE_BINARY) 206 #define TAG_APP_ID (0x11 | TAG_TYPE_BINARY) 207 #define TAG_INDEX_BITS (0x801 | TAG_TYPE_BINARY) 208 209 #ifdef __cplusplus 210 } // extern "C" 211 #endif 212 213 #endif // SDBTAGID_H 214