ReactOS 0.4.15-dev-7887-g64a59a1
sdbtagid.h
Go to the documentation of this file.
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
13extern "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