11#define WIN32_NO_STATUS
34#define TAG_TYPE_MASK 0xF000
36#define TAG_TYPE_NULL 0x1000
37#define TAG_TYPE_BYTE 0x2000
38#define TAG_TYPE_WORD 0x3000
39#define TAG_TYPE_DWORD 0x4000
40#define TAG_TYPE_QWORD 0x5000
41#define TAG_TYPE_STRINGREF 0x6000
42#define TAG_TYPE_LIST 0x7000
43#define TAG_TYPE_STRING 0x8000
44#define TAG_TYPE_BINARY 0x9000
46#define TAG_SIZE (0x1 | TAG_TYPE_DWORD)
47#define TAG_CHECKSUM (0x3 | TAG_TYPE_DWORD)
48#define TAG_MODULE_TYPE (0x6 | TAG_TYPE_DWORD)
49#define TAG_VERDATEHI (0x7 | TAG_TYPE_DWORD)
50#define TAG_VERDATELO (0x8 | TAG_TYPE_DWORD)
51#define TAG_VERFILEOS (0x9 | TAG_TYPE_DWORD)
52#define TAG_VERFILETYPE (0xA | TAG_TYPE_DWORD)
53#define TAG_PE_CHECKSUM (0xB | TAG_TYPE_DWORD)
54#define TAG_VER_LANGUAGE (0x12 | TAG_TYPE_DWORD)
55#define TAG_LINKER_VERSION (0x1C | TAG_TYPE_DWORD)
56#define TAG_LINK_DATE (0x1D | TAG_TYPE_DWORD)
57#define TAG_UPTO_LINK_DATE (0x1E | TAG_TYPE_DWORD)
58#define TAG_EXE_WRAPPER (0x31 | TAG_TYPE_DWORD)
59#define TAG_BIN_FILE_VERSION (0x2 | TAG_TYPE_QWORD)
60#define TAG_BIN_PRODUCT_VERSION (0x3 | TAG_TYPE_QWORD)
61#define TAG_UPTO_BIN_PRODUCT_VERSION (0x6 | TAG_TYPE_QWORD)
62#define TAG_UPTO_BIN_FILE_VERSION (0xD | TAG_TYPE_QWORD)
63#define TAG_NAME (0x1 | TAG_TYPE_STRINGREF)
64#define TAG_COMPANY_NAME (0x9 | TAG_TYPE_STRINGREF)
65#define TAG_PRODUCT_NAME (0x10 | TAG_TYPE_STRINGREF)
66#define TAG_PRODUCT_VERSION (0x11 | TAG_TYPE_STRINGREF)
67#define TAG_FILE_DESCRIPTION (0x12 | TAG_TYPE_STRINGREF)
68#define TAG_FILE_VERSION (0x13 | TAG_TYPE_STRINGREF)
69#define TAG_ORIGINAL_FILENAME (0x14 | TAG_TYPE_STRINGREF)
70#define TAG_INTERNAL_NAME (0x15 | TAG_TYPE_STRINGREF)
71#define TAG_LEGAL_COPYRIGHT (0x16 | TAG_TYPE_STRINGREF)
72#define TAG_16BIT_DESCRIPTION (0x17 | TAG_TYPE_STRINGREF)
73#define TAG_16BIT_MODULE_NAME (0x20 | TAG_TYPE_STRINGREF)
74#define TAG_EXPORT_NAME (0x24 | TAG_TYPE_STRINGREF)
77#define ATTRIBUTE_AVAILABLE 0x1
78#define ATTRIBUTE_FAILED 0x2
102DEFINE_GUID(
GUID_DATABASE_MSI,0xd8ff6d16,0x6a3a,0x468a,0x8b,0x44,0x01,0x71,0x4d,0xdc,0x49,0xea);
103DEFINE_GUID(
GUID_DATABASE_SHIM,0x11111111,0x1111,0x1111,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11);
104DEFINE_GUID(
GUID_DATABASE_DRIVERS,0xf9ab2228,0x3312,0x4a73,0xb6,0xf9,0x93,0x6d,0x70,0xe1,0x12,0xef);
106DEFINE_GUID(
GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
108DEFINE_GUID(test_Microsoft_Browser_Architecture, 0xa5e46e3a, 0x8849, 0x11d1, 0x9d, 0x8c, 0x00, 0xc0, 0x4f, 0xc9, 0x9d, 0x61);
109DEFINE_GUID(test_UserAssist, 0xdd313e04, 0xfeff, 0x11d1, 0x8e, 0xcd, 0x00, 0x00, 0xf8, 0x7a, 0x47, 0x0c);
110DEFINE_GUID(CLSID_InternetSecurityManager, 0x7b8a2d94, 0x0ac9, 0x11d1, 0x89, 0x6c, 0x00, 0xc0, 0x4f, 0xB6, 0xbf, 0xc4);
115 &test_Microsoft_Browser_Architecture,
119 &CLSID_InternetSecurityManager,
130 if (!pApphelpCheckShellObject)
132 win_skip(
"ApphelpCheckShellObject not available\n");
141 ok(
res && (
flags == 0),
"%s 0: got %d and 0x%x%08x with 0x%x (expected TRUE and 0)\n",
147 ok(
res && (
flags == 0),
"%s 1: got %d and 0x%x%08x with 0x%x (expected TRUE and 0)\n",
169 static const TAG invalid_values[] = {
173 0x900, 0xFFFF, 0xDEAD, 0xBEEF
175 static const WCHAR invalid[] = {
'I',
'n',
'v',
'a',
'l',
'i',
'd',
'T',
'a',
'g',0};
179 for (
i = 0;
i < 9; ++
i)
181 ret = pSdbTagToString(invalid_values[
i]);
202 for (;
n < upperlimit; ++
n)
221 "InvalidTag",
"INCLUDE",
"GENERAL",
"MATCH_LOGIC_NOT",
"APPLY_ALL_SHIMS",
"USE_SERVICE_PACK_FILES",
NULL
227 "InvalidTag",
"INCLUDE",
"GENERAL",
"MATCH_LOGIC_NOT",
"APPLY_ALL_SHIMS",
"USE_SERVICE_PACK_FILES",
"MITIGATION_OS",
"BLOCK_UPGRADE",
228 "INCLUDEEXCLUDEDLL",
NULL
234 "InvalidTag",
"INCLUDE",
"GENERAL",
"MATCH_LOGIC_NOT",
"APPLY_ALL_SHIMS",
"USE_SERVICE_PACK_FILES",
"MITIGATION_OS",
"BLOCK_UPGRADE",
235 "INCLUDEEXCLUDEDLL",
"RAC_EVENT_OFF",
"TELEMETRY_OFF",
"SHIM_ENGINE_OFF",
"LAYER_PROPAGATION_OFF",
"REINSTALL_UPGRADE",
NULL
241 "InvalidTag",
"INCLUDE",
"GENERAL",
"MATCH_LOGIC_NOT",
"APPLY_ALL_SHIMS",
"USE_SERVICE_PACK_FILES",
"MITIGATION_OS",
"TRACE_PCA",
242 "INCLUDEEXCLUDEDLL",
"RAC_EVENT_OFF",
"TELEMETRY_OFF",
"SHIM_ENGINE_OFF",
"LAYER_PROPAGATION_OFF",
"FORCE_CACHE",
"MONITORING_OFF",
243 "QUIRK_OFF",
"ELEVATED_PROP_OFF",
"UPGRADE_ACTION_BLOCK_WEBSETUP",
"UPGRADE_ACTION_PROCEED_TO_MEDIASETUP",
NULL
249 "InvalidTag",
"INCLUDE",
"GENERAL",
"MATCH_LOGIC_NOT",
"APPLY_ALL_SHIMS",
"USE_SERVICE_PACK_FILES",
"MITIGATION_OS",
"TRACE_PCA",
250 "INCLUDEEXCLUDEDLL",
"RAC_EVENT_OFF",
"TELEMETRY_OFF",
"SHIM_ENGINE_OFF",
"LAYER_PROPAGATION_OFF",
"FORCE_CACHE",
"MONITORING_OFF",
251 "QUIRK_OFF",
"ELEVATED_PROP_OFF",
"UPGRADE_ACTION_BLOCK_WEBSETUP",
"UPGRADE_ACTION_PROCEED_TO_MEDIASETUP",
"HWCOMPAT_DEVICE",
252 "HWEXCLUDE_DEVICE",
"WUCOMPAT_DEVICE",
"APPEND_COMMANDLINE",
"COMPARE_CASE",
"InvalidTag",
"InvalidTag",
"MATCHED_OBJECT",
253 "USE_INVENTORY",
NULL
267 "InvalidTag",
"MATCH_MODE",
NULL
273 "InvalidTag",
"MATCH_MODE",
"QUIRK_COMPONENT_CODE_ID",
"QUIRK_CODE_ID",
NULL
279 "InvalidTag",
"TAG",
"INDEX_TAG",
"INDEX_KEY",
NULL
286 "InvalidTag",
"SIZE",
"OFFSET",
"CHECKSUM",
"SHIM_TAGID",
"PATCH_TAGID",
"MODULE_TYPE",
"VERFILEDATEHI",
287 "VERFILEDATELO",
"VERFILEOS",
"VERFILETYPE",
"PE_CHECKSUM",
"PREVOSMAJORVERSION",
"PREVOSMINORVERSION",
"PREVOSPLATFORMID",
"PREVOSBUILDNO",
288 "PROBLEM_SEVERITY",
"APPHELP_LANGID",
"VER_LANGUAGE",
"InvalidTag",
"ENGINE",
"HTMLHELPID",
"INDEXFLAGS",
"FLAGS",
289 "VALUETYPE",
"DATA_DWORD",
"LAYER_TAGID",
"MSI_TRANSFORM_TAGID",
"LINKER_VERSION",
"LINK_DATE",
"UPTO_LINK_DATE",
"OS_SERVICE_PACK",
290 "FLAG_TAGID",
"RUNTIME_PLATFORM",
"OS_SKU",
NULL
296 "InvalidTag",
"SIZE",
"OFFSET",
"CHECKSUM",
"SHIM_TAGID",
"PATCH_TAGID",
"MODULE_TYPE",
"VERFILEDATEHI",
297 "VERFILEDATELO",
"VERFILEOS",
"VERFILETYPE",
"PE_CHECKSUM",
"PREVOSMAJORVERSION",
"PREVOSMINORVERSION",
"PREVOSPLATFORMID",
"PREVOSBUILDNO",
298 "PROBLEM_SEVERITY",
"APPHELP_LANGID",
"VER_LANGUAGE",
"InvalidTag",
"ENGINE",
"HTMLHELPID",
"INDEXFLAGS",
"FLAGS",
299 "VALUETYPE",
"DATA_DWORD",
"LAYER_TAGID",
"MSI_TRANSFORM_TAGID",
"LINKER_VERSION",
"LINK_DATE",
"UPTO_LINK_DATE",
"OS_SERVICE_PACK",
300 "FLAG_TAGID",
"RUNTIME_PLATFORM",
"OS_SKU",
"OS_PLATFORM",
NULL
306 "InvalidTag",
"SIZE",
"OFFSET",
"CHECKSUM",
"SHIM_TAGID",
"PATCH_TAGID",
"MODULE_TYPE",
"VERDATEHI",
307 "VERDATELO",
"VERFILEOS",
"VERFILETYPE",
"PE_CHECKSUM",
"PREVOSMAJORVER",
"PREVOSMINORVER",
"PREVOSPLATFORMID",
"PREVOSBUILDNO",
308 "PROBLEMSEVERITY",
"LANGID",
"VER_LANGUAGE",
"InvalidTag",
"ENGINE",
"HTMLHELPID",
"INDEX_FLAGS",
"FLAGS",
309 "DATA_VALUETYPE",
"DATA_DWORD",
"LAYER_TAGID",
"MSI_TRANSFORM_TAGID",
"LINKER_VERSION",
"LINK_DATE",
"UPTO_LINK_DATE",
"OS_SERVICE_PACK",
310 "FLAG_TAGID",
"RUNTIME_PLATFORM",
"OS_SKU",
"OS_PLATFORM",
"APP_NAME_RC_ID",
"VENDOR_NAME_RC_ID",
"SUMMARY_MSG_RC_ID",
"VISTA_SKU",
317 "InvalidTag",
"SIZE",
"OFFSET",
"CHECKSUM",
"SHIM_TAGID",
"PATCH_TAGID",
"MODULE_TYPE",
"VERDATEHI",
318 "VERDATELO",
"VERFILEOS",
"VERFILETYPE",
"PE_CHECKSUM",
"PREVOSMAJORVER",
"PREVOSMINORVER",
"PREVOSPLATFORMID",
"PREVOSBUILDNO",
319 "PROBLEMSEVERITY",
"LANGID",
"VER_LANGUAGE",
"InvalidTag",
"ENGINE",
"HTMLHELPID",
"INDEX_FLAGS",
"FLAGS",
320 "DATA_VALUETYPE",
"DATA_DWORD",
"LAYER_TAGID",
"MSI_TRANSFORM_TAGID",
"LINKER_VERSION",
"LINK_DATE",
"UPTO_LINK_DATE",
"OS_SERVICE_PACK",
321 "FLAG_TAGID",
"RUNTIME_PLATFORM",
"OS_SKU",
"OS_PLATFORM",
"APP_NAME_RC_ID",
"VENDOR_NAME_RC_ID",
"SUMMARY_MSG_RC_ID",
"VISTA_SKU",
322 "DESCRIPTION_RC_ID",
"PARAMETER1_RC_ID",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
323 "CONTEXT_TAGID",
"EXE_WRAPPER",
"URL_ID",
NULL
329 "InvalidTag",
"SIZE",
"OFFSET",
"CHECKSUM",
"SHIM_TAGID",
"PATCH_TAGID",
"MODULE_TYPE",
"VERDATEHI",
330 "VERDATELO",
"VERFILEOS",
"VERFILETYPE",
"PE_CHECKSUM",
"PREVOSMAJORVER",
"PREVOSMINORVER",
"PREVOSPLATFORMID",
"PREVOSBUILDNO",
331 "PROBLEMSEVERITY",
"LANGID",
"VER_LANGUAGE",
"InvalidTag",
"ENGINE",
"HTMLHELPID",
"INDEX_FLAGS",
"FLAGS",
332 "DATA_VALUETYPE",
"DATA_DWORD",
"LAYER_TAGID",
"MSI_TRANSFORM_TAGID",
"LINKER_VERSION",
"LINK_DATE",
"UPTO_LINK_DATE",
"OS_SERVICE_PACK",
333 "FLAG_TAGID",
"RUNTIME_PLATFORM",
"OS_SKU",
"OS_PLATFORM",
"APP_NAME_RC_ID",
"VENDOR_NAME_RC_ID",
"SUMMARY_MSG_RC_ID",
"InvalidTag",
334 "DESCRIPTION_RC_ID",
"PARAMETER1_RC_ID",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
335 "CONTEXT_TAGID",
"EXE_WRAPPER",
"EXE_TYPE",
"FROM_LINK_DATE",
"REVISION_EQ",
"REVISION_LE",
"REVISION_GE",
"DATE_EQ",
"DATE_LE",
"DATE_GE",
336 "CPU_MODEL_EQ",
"CPU_MODEL_LE",
"CPU_MODEL_GE",
"CPU_FAMILY_EQ",
"CPU_FAMILY_LE",
"CPU_FAMILY_GE",
"CREATOR_REVISION_EQ",
"CREATOR_REVISION_LE",
337 "CREATOR_REVISION_GE",
"SIZE_OF_IMAGE",
"SHIM_CLASS",
"PACKAGEID_ARCHITECTURE",
"REINSTALL_UPGRADE_TYPE",
"BLOCK_UPGRADE_TYPE",
"ROUTING_MODE",
338 "OS_VERSION_VALUE",
"CRC_CHECKSUM",
"URL_ID",
"QUIRK_TAGID",
"InvalidTag",
"MIGRATION_DATA_TYPE",
"UPGRADE_DATA",
"MIGRATION_DATA_TAGID",
"REG_VALUE_TYPE",
339 "REG_VALUE_DATA_DWORD",
"TEXT_ENCODING",
NULL
345 "InvalidTag",
"SIZE",
"OFFSET",
"CHECKSUM",
"SHIM_TAGID",
"PATCH_TAGID",
"MODULE_TYPE",
"VERDATEHI",
346 "VERDATELO",
"VERFILEOS",
"VERFILETYPE",
"PE_CHECKSUM",
"PREVOSMAJORVER",
"PREVOSMINORVER",
"PREVOSPLATFORMID",
"PREVOSBUILDNO",
347 "PROBLEMSEVERITY",
"LANGID",
"VER_LANGUAGE",
"OS_KIND",
"ENGINE",
"HTMLHELPID",
"INDEX_FLAGS",
"FLAGS",
348 "DATA_VALUETYPE",
"DATA_DWORD",
"LAYER_TAGID",
"MSI_TRANSFORM_TAGID",
"LINKER_VERSION",
"LINK_DATE",
"UPTO_LINK_DATE",
"InvalidTag",
349 "FLAG_TAGID",
"RUNTIME_PLATFORM",
"InvalidTag",
"GUEST_TARGET_PLATFORM",
"APP_NAME_RC_ID",
"VENDOR_NAME_RC_ID",
"SUMMARY_MSG_RC_ID",
"InvalidTag",
350 "DESCRIPTION_RC_ID",
"PARAMETER1_RC_ID",
"HWCOMPAT_HWID_COUNT",
"TITLE_MSG_RC_ID_BACKUP",
"SUMMARY_MSG_RC_ID_BACKUP",
"InvalidTag",
"InvalidTag",
"InvalidTag",
351 "CONTEXT_TAGID",
"EXE_WRAPPER",
"EXE_TYPE",
"FROM_LINK_DATE",
"REVISION_EQ",
"REVISION_LE",
"REVISION_GE",
"DATE_EQ",
"DATE_LE",
"DATE_GE",
352 "CPU_MODEL_EQ",
"CPU_MODEL_LE",
"CPU_MODEL_GE",
"CPU_FAMILY_EQ",
"CPU_FAMILY_LE",
"CPU_FAMILY_GE",
"CREATOR_REVISION_EQ",
"CREATOR_REVISION_LE",
353 "CREATOR_REVISION_GE",
"SIZE_OF_IMAGE",
"SHIM_CLASS",
"PACKAGEID_ARCHITECTURE",
"REINSTALL_UPGRADE_TYPE",
"BLOCK_UPGRADE_TYPE",
"ROUTING_MODE",
354 "OS_VERSION_VALUE",
"CRC_CHECKSUM",
"URL_ID",
"QUIRK_TAGID",
"InvalidTag",
"MIGRATION_DATA_TYPE",
"UPGRADE_DATA",
"MIGRATION_DATA_TAGID",
"REG_VALUE_TYPE",
355 "REG_VALUE_DATA_DWORD",
"TEXT_ENCODING",
"UX_BLOCKTYPE_OVERRIDE",
"EDITION",
"FW_LINK_ID",
"KB_ARTICLE_ID",
"InvalidTag",
"TITLE_MSG_RC_ID",
"LINK_TEXT_RC_ID",
356 "LINK_TEXT_RC_ID_BACKUP",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"REQUESTED_ATTRIBUTES",
"BACKUP_LABEL",
NULL
362 "InvalidTag",
"TAGID",
NULL
369 "InvalidTag",
"TIME",
"BIN_FILE_VERSION",
"BIN_PRODUCT_VERSION",
"MODTIME",
"FLAG_MASK_KERNEL",
"UPTO_BIN_PRODUCT_VERSION",
"DATA_QWORD",
370 "FLAG_MASK_USER",
"FLAGS_NTVDM1",
"FLAGS_NTVDM2",
"FLAGS_NTVDM3",
"FLAG_MASK_SHELL",
"UPTO_BIN_FILE_VERSION",
NULL
376 "InvalidTag",
"TIME",
"BIN_FILE_VERSION",
"BIN_PRODUCT_VERSION",
"MODTIME",
"FLAG_MASK_KERNEL",
"UPTO_BIN_PRODUCT_VERSION",
"DATA_QWORD",
377 "FLAG_MASK_USER",
"FLAGS_NTVDM1",
"FLAGS_NTVDM2",
"FLAGS_NTVDM3",
"FLAG_MASK_SHELL",
"UPTO_BIN_FILE_VERSION",
"FLAG_MASK_FUSION",
"FLAGS_PROCESSPARAM",
384 "InvalidTag",
"TIME",
"BIN_FILE_VERSION",
"BIN_PRODUCT_VERSION",
"MODTIME",
"FLAG_MASK_KERNEL",
"UPTO_BIN_PRODUCT_VERSION",
"DATA_QWORD",
385 "FLAG_MASK_USER",
"FLAGS_NTVDM1",
"FLAGS_NTVDM2",
"FLAGS_NTVDM3",
"FLAG_MASK_SHELL",
"UPTO_BIN_FILE_VERSION",
"FLAG_MASK_FUSION",
"FLAG_PROCESSPARAM",
386 "FLAG_LUA",
"FLAG_INSTALL",
NULL
392 "InvalidTag",
"TIME",
"BIN_FILE_VERSION",
"BIN_PRODUCT_VERSION",
"MODTIME",
"FLAG_MASK_KERNEL",
"UPTO_BIN_PRODUCT_VERSION",
"DATA_QWORD",
393 "FLAG_MASK_USER",
"FLAGS_NTVDM1",
"FLAGS_NTVDM2",
"FLAGS_NTVDM3",
"FLAG_MASK_SHELL",
"UPTO_BIN_FILE_VERSION",
"FLAG_MASK_FUSION",
"FLAG_PROCESSPARAM",
394 "FLAG_LUA",
"FLAG_INSTALL",
"FROM_BIN_PRODUCT_VERSION",
"FROM_BIN_FILE_VERSION",
"PACKAGEID_VERSION",
"FROM_PACKAGEID_VERSION",
"UPTO_PACKAGEID_VERSION",
395 "OSMAXVERSIONTESTED",
"FROM_OSMAXVERSIONTESTED",
"UPTO_OSMAXVERSIONTESTED",
"FLAG_MASK_WINRT",
"REG_VALUE_DATA_QWORD",
"QUIRK_ENABLED_UPTO_VERSION",
NULL
401 "InvalidTag",
"TIME",
"BIN_FILE_VERSION",
"BIN_PRODUCT_VERSION",
"MODTIME",
"FLAG_MASK_KERNEL",
"UPTO_BIN_PRODUCT_VERSION",
"DATA_QWORD",
402 "FLAG_MASK_USER",
"FLAGS_NTVDM1",
"FLAGS_NTVDM2",
"FLAGS_NTVDM3",
"FLAG_MASK_SHELL",
"UPTO_BIN_FILE_VERSION",
"FLAG_MASK_FUSION",
"FLAG_PROCESSPARAM",
403 "FLAG_LUA",
"FLAG_INSTALL",
"FROM_BIN_PRODUCT_VERSION",
"FROM_BIN_FILE_VERSION",
"PACKAGEID_VERSION",
"FROM_PACKAGEID_VERSION",
"UPTO_PACKAGEID_VERSION",
404 "OSMAXVERSIONTESTED",
"FROM_OSMAXVERSIONTESTED",
"UPTO_OSMAXVERSIONTESTED",
"FLAG_MASK_WINRT",
"REG_VALUE_DATA_QWORD",
"QUIRK_ENABLED_VERSION_LT",
405 "SOURCE_OS",
"SOURCE_OS_LTE",
"SOURCE_OS_GTE",
"FILESIZE",
NULL
412 "InvalidTag",
"NAME",
"DESCRIPTION",
"MODULE",
"API",
"VENDOR",
"APP_NAME",
"InvalidTag",
413 "COMMAND_LINE",
"COMPANY_NAME",
"DLLFILE",
"WILDCARD_NAME",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
414 "PRODUCT_NAME",
"PRODUCT_VERSION",
"FILE_DESCRIPTION",
"FILE_VERSION",
"ORIGINAL_FILENAME",
"INTERNAL_NAME",
"LEGAL_COPYRIGHT",
"S16BIT_DESCRIPTION",
415 "PROBLEM_DETAILS",
"LINK_URL",
"LINK_TEXT",
"APPHELP_TITLE",
"APPHELP_CONTACT",
"SXS_MANIFEST",
"DATA_STRING",
"MSI_TRANSFORM_FILE",
416 "S16BIT_MODULE_NAME",
"LAYER_DISPLAYNAME",
"COMPILER_VERSION",
"ACTION_TYPE",
NULL
422 "InvalidTag",
"NAME",
"DESCRIPTION",
"MODULE",
"API",
"VENDOR",
"APP_NAME",
"InvalidTag",
423 "COMMAND_LINE",
"COMPANY_NAME",
"DLLFILE",
"WILDCARD_NAME",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
424 "PRODUCT_NAME",
"PRODUCT_VERSION",
"FILE_DESCRIPTION",
"FILE_VERSION",
"ORIGINAL_FILENAME",
"INTERNAL_NAME",
"LEGAL_COPYRIGHT",
"16BIT_DESCRIPTION",
425 "APPHELP_DETAILS",
"LINK_URL",
"LINK_TEXT",
"APPHELP_TITLE",
"APPHELP_CONTACT",
"SXS_MANIFEST",
"DATA_STRING",
"MSI_TRANSFORM_FILE",
426 "16BIT_MODULE_NAME",
"LAYER_DISPLAYNAME",
"COMPILER_VERSION",
"ACTION_TYPE",
"EXPORT_NAME",
NULL
432 "InvalidTag",
"NAME",
"DESCRIPTION",
"MODULE",
"API",
"VENDOR",
"APP_NAME",
"InvalidTag",
433 "COMMAND_LINE",
"COMPANY_NAME",
"DLLFILE",
"WILDCARD_NAME",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
434 "PRODUCT_NAME",
"PRODUCT_VERSION",
"FILE_DESCRIPTION",
"FILE_VERSION",
"ORIGINAL_FILENAME",
"INTERNAL_NAME",
"LEGAL_COPYRIGHT",
"16BIT_DESCRIPTION",
435 "APPHELP_DETAILS",
"LINK_URL",
"LINK_TEXT",
"APPHELP_TITLE",
"APPHELP_CONTACT",
"SXS_MANIFEST",
"DATA_STRING",
"MSI_TRANSFORM_FILE",
436 "16BIT_MODULE_NAME",
"LAYER_DISPLAYNAME",
"COMPILER_VERSION",
"ACTION_TYPE",
"EXPORT_NAME",
"URL",
NULL
442 "InvalidTag",
"NAME",
"DESCRIPTION",
"MODULE",
"API",
"VENDOR",
"APP_NAME",
"InvalidTag",
443 "COMMAND_LINE",
"COMPANY_NAME",
"DLLFILE",
"WILDCARD_NAME",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
444 "PRODUCT_NAME",
"PRODUCT_VERSION",
"FILE_DESCRIPTION",
"FILE_VERSION",
"ORIGINAL_FILENAME",
"INTERNAL_NAME",
"LEGAL_COPYRIGHT",
"16BIT_DESCRIPTION",
445 "APPHELP_DETAILS",
"LINK_URL",
"LINK_TEXT",
"APPHELP_TITLE",
"APPHELP_CONTACT",
"SXS_MANIFEST",
"DATA_STRING",
"MSI_TRANSFORM_FILE",
446 "16BIT_MODULE_NAME",
"LAYER_DISPLAYNAME",
"COMPILER_VERSION",
"ACTION_TYPE",
"EXPORT_NAME",
"VENDOR_ID",
"DEVICE_ID",
"SUB_VENDOR_ID",
447 "SUB_SYSTEM_ID",
"PACKAGEID_NAME",
"PACKAGEID_PUBLISHER",
"PACKAGEID_LANGUAGE",
"URL",
"MANUFACTURER",
"MODEL",
"DATE",
"REG_VALUE_NAME",
448 "REG_VALUE_DATA_SZ",
"MIGRATION_DATA_TEXT",
NULL
454 "InvalidTag",
"NAME",
"DESCRIPTION",
"MODULE",
"API",
"VENDOR",
"APP_NAME",
"InvalidTag",
455 "COMMAND_LINE",
"COMPANY_NAME",
"DLLFILE",
"WILDCARD_NAME",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
456 "PRODUCT_NAME",
"PRODUCT_VERSION",
"FILE_DESCRIPTION",
"FILE_VERSION",
"ORIGINAL_FILENAME",
"INTERNAL_NAME",
"LEGAL_COPYRIGHT",
"16BIT_DESCRIPTION",
457 "APPHELP_DETAILS",
"LINK_URL",
"LINK_TEXT",
"APPHELP_TITLE",
"APPHELP_CONTACT",
"SXS_MANIFEST",
"DATA_STRING",
"MSI_TRANSFORM_FILE",
458 "16BIT_MODULE_NAME",
"LAYER_DISPLAYNAME",
"COMPILER_VERSION",
"ACTION_TYPE",
"EXPORT_NAME",
"VENDOR_ID",
"DEVICE_ID",
"SUB_VENDOR_ID",
459 "SUB_SYSTEM_ID",
"PACKAGEID_NAME",
"PACKAGEID_PUBLISHER",
"PACKAGEID_LANGUAGE",
"URL",
"MANUFACTURER",
"MODEL",
"DATE",
"REG_VALUE_NAME",
460 "REG_VALUE_DATA_SZ",
"MIGRATION_DATA_TEXT",
"APP_STORE_PRODUCT_ID",
"MORE_INFO_URL",
"DEST_OS_VALUE_DEF",
"DEST_OS_GTE",
"DEST_OS_LT",
"DEST_OS",
461 "PACKAGE_STRONGNAME",
"FALLBACK_XML",
"LINK_TEXT_OVERRIDE",
"MATCH_LOGIC_NOT_IF_SDB_CAPABILITY_EXISTS",
"ESCAPE_CHARACTER",
"InvalidTag",
462 "InvalidTag",
"InvalidTag",
"InvalidTag",
"PUBLISHER",
"MATCHING_LABEL",
"UPTO_PRODUCT_VERSION",
"UPTO_FILE_VERSION",
"FROM_PRODUCT_VERSION",
463 "FROM_FILE_VERSION",
"LANGUAGE",
NULL
470 "InvalidTag",
"DATABASE",
"LIBRARY",
"INEXCLUDE",
"SHIM",
"PATCH",
"APP",
"EXE",
471 "MATCHING_FILE",
"SHIM_REF",
"PATCH_REF",
"LAYER",
"FILE",
"APPHELP",
"LINK",
"DATA",
472 "MSI TRANSFORM",
"MSI TRANSFORM REF",
"MSI PACKAGE",
"FLAG",
"MSI CUSTOM ACTION",
"FLAG_REF",
"ACTION",
NULL
478 "InvalidTag",
"DATABASE",
"LIBRARY",
"INEXCLUDE",
"SHIM",
"PATCH",
"APP",
"EXE",
479 "MATCHING_FILE",
"SHIM_REF",
"PATCH_REF",
"LAYER",
"FILE",
"APPHELP",
"LINK",
"DATA",
480 "MSI_TRANSFORM",
"MSI_TRANSFORM_REF",
"MSI_PACKAGE",
"FLAG",
"MSI_CUSTOM_ACTION",
"FLAG_REF",
"ACTION",
"LOOKUP",
487 "InvalidTag",
"DATABASE",
"LIBRARY",
"INEXCLUDE",
"SHIM",
"PATCH",
"APP",
"EXE",
488 "MATCHING_FILE",
"SHIM_REF",
"PATCH_REF",
"LAYER",
"FILE",
"APPHELP",
"LINK",
"DATA",
489 "MSI_TRANSFORM",
"MSI_TRANSFORM_REF",
"MSI_PACKAGE",
"FLAG",
"MSI_CUSTOM_ACTION",
"FLAG_REF",
"ACTION",
"LOOKUP",
490 "CONTEXT",
"CONTEXT_REF",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
497 "InvalidTag",
"DATABASE",
"LIBRARY",
"INEXCLUDE",
"SHIM",
"PATCH",
"APP",
"EXE",
498 "MATCHING_FILE",
"SHIM_REF",
"PATCH_REF",
"LAYER",
"FILE",
"APPHELP",
"LINK",
"DATA",
499 "MSI_TRANSFORM",
"MSI_TRANSFORM_REF",
"MSI_PACKAGE",
"FLAG",
"MSI_CUSTOM_ACTION",
"FLAG_REF",
"ACTION",
"LOOKUP",
500 "CONTEXT",
"CONTEXT_REF",
"KDEVICE",
"InvalidTag",
"KDRIVER",
"InvalidTag",
"MATCHING_DEVICE",
"ACPI",
501 "BIOS",
"CPU",
"OEM",
"KFLAG",
"KFLAG_REF",
"KSHIM",
"KSHIM_REF",
"REINSTALL_UPGRADE",
"KDATA",
"BLOCK_UPGRADE",
502 "SPC",
"QUIRK",
"QUIRK_REF",
"BIOS_BLOCK",
"MATCHING_INFO_BLOCK",
"DEVICE_BLOCK",
"MIGRATION_DATA",
"MIGRATION_DATA_REF",
503 "MATCHING_REG",
"MATCHING_TEXT",
"MACHINE_BLOCK",
"OS_UPGRADE",
"PACKAGE",
NULL
509 "InvalidTag",
"DATABASE",
"LIBRARY",
"INEXCLUDE",
"SHIM",
"PATCH",
"APP",
"EXE",
510 "MATCHING_FILE",
"SHIM_REF",
"PATCH_REF",
"LAYER",
"FILE",
"APPHELP",
"LINK",
"DATA",
511 "MSI_TRANSFORM",
"MSI_TRANSFORM_REF",
"MSI_PACKAGE",
"FLAG",
"MSI_CUSTOM_ACTION",
"FLAG_REF",
"ACTION",
"LOOKUP",
512 "CONTEXT",
"CONTEXT_REF",
"KDEVICE",
"InvalidTag",
"KDRIVER",
"InvalidTag",
"MATCHING_DEVICE",
"ACPI",
513 "BIOS",
"CPU",
"OEM",
"KFLAG",
"KFLAG_REF",
"KSHIM",
"KSHIM_REF",
"REINSTALL_UPGRADE",
"KDATA",
"BLOCK_UPGRADE",
514 "InvalidTag",
"QUIRK",
"QUIRK_REF",
"BIOS_BLOCK",
"MATCHING_INFO_BLOCK",
"DEVICE_BLOCK",
"MIGRATION_DATA",
"MIGRATION_DATA_REF",
515 "MATCHING_REG",
"MATCHING_TEXT",
"MACHINE_BLOCK",
"OS_UPGRADE",
"PACKAGE",
"PICK_ONE",
"MATCH_PLUGIN",
"MIGRATION_SHIM",
516 "UPGRADE_DRIVER_BLOCK",
"InvalidTag",
"MIGRATION_SHIM_REF",
"CONTAINS_FILE",
"CONTAINS_HWID",
"DRIVER_PACKAGE_BLOCK",
517 "DEST_OS_VALUES",
"XAP",
"HWCOMPAT_SOURCES",
"HWCOMPAT_SOURCE_INFO",
"C_STRUCT",
"PROCESS_MODULE",
"C_STRUCT_REF",
518 "MATCHING_WILDCARD_FILE",
"MATCHING_WILDCARD_REG",
"MATCHING_DIR",
"MATCHING_SDB_CAPABILITY",
"MATCHING_COMMAND_LINE",
519 "InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
520 "BACKUP_FILE",
"BACKUP_APPLICATION",
"BACKUP_PACKAGE",
"RESTORE_FILE",
"RESTORE_APPLICATION",
"RESTORE_PACKAGE",
521 "BACKUP_INCLUDE_FILE",
"MATCHING_BACKUP_FILE",
"MATCHING_WILDCARD_BACKUP_FILE",
"RESTORE_ACTION",
"MATCHING_BACKUP_LABEL",
522 "MATCHING_RESTORE_ACTION",
"MATCHING_APPLICATION_ATTRIBUTES",
NULL
528 "InvalidTag",
"STRINGTABLE",
"INDEXES",
"INDEX",
NULL
541 "InvalidTag",
"STRTAB_ITEM",
NULL
547 "InvalidTag",
"STRINGTABLE_ITEM",
NULL
555 "InvalidTag",
"InvalidTag",
"PATCH_BITS",
"FILE_BITS",
"EXE_ID(GUID)",
"DATA_BITS",
"MSI_PACKAGE_ID(GUID)",
"DATABASE_ID(GUID)",
562 "InvalidTag",
"InvalidTag",
"PATCH_BITS",
"FILE_BITS",
"EXE_ID",
"DATA_BITS",
"MSI_PACKAGE_ID",
"DATABASE_ID",
569 "InvalidTag",
"InvalidTag",
"PATCH_BITS",
"FILE_BITS",
"EXE_ID",
"DATA_BITS",
"MSI_PACKAGE_ID",
"DATABASE_ID",
570 "CONTEXT_PLATFORM_ID",
"CONTEXT_BRANCH_ID",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
571 "FIX_ID",
"APP_ID",
NULL
577 "InvalidTag",
"InvalidTag",
"PATCH_BITS",
"FILE_BITS",
"EXE_ID",
"DATA_BITS",
"MSI_PACKAGE_ID",
"DATABASE_ID",
578 "CONTEXT_PLATFORM_ID",
"CONTEXT_BRANCH_ID",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
"InvalidTag",
579 "FIX_ID",
"APP_ID",
"REG_VALUE_DATA_BINARY",
"TEXT",
NULL
585 "InvalidTag",
"InvalidTag",
"PATCH_BITS",
"FILE_BITS",
"EXE_ID",
"DATA_BITS",
"MSI_PACKAGE_ID",
"DATABASE_ID",
586 "CONTEXT_PLATFORM_ID",
"CONTEXT_BRANCH_ID",
"XAP_ID",
"C_STRUCT_BIN_DATA",
"C_STRUCT_VERSION",
"InvalidTag",
587 "InvalidTag",
"InvalidTag",
"FIX_ID",
"APP_ID",
"REG_VALUE_DATA_BINARY",
"TEXT",
"BACKUP_ID",
NULL
593 "InvalidTag",
"INDEX_BITS",
NULL
597 { 0, 0, 0, 0, 0, {
NULL } }
617 ok(pSdbIsNullGUID(&
GUID_NULL),
"expected GUID_NULL to be recognized as NULL GUID\n");
618 ok(pSdbIsNullGUID(
NULL),
"expected NULL to be recognized as NULL GUID\n");
619 ok(pSdbIsNullGUID(&test_UserAssist) == 0,
"expected a set GUID not to be recognized as NULL GUID\n");
622 ok(pSdbGetStandardDatabaseGUID(0, &
guid) == 0,
"Expected SdbGetStandardDatabaseGUID to fail\n");
625 ok(pSdbGetStandardDatabaseGUID(0x80020000,
NULL),
"Expected SdbGetStandardDatabaseGUID to succeed\n");
628 ok(pSdbGetStandardDatabaseGUID(0x80020000, &
guid),
"Expected SdbGetStandardDatabaseGUID to succeed\n");
632 ok(pSdbGetStandardDatabaseGUID(0x80030000, &
guid),
"Expected SdbGetStandardDatabaseGUID to succeed\n");
636 ok(pSdbGetStandardDatabaseGUID(0x80040000, &
guid),
"Expected SdbGetStandardDatabaseGUID to succeed\n");
718 for (
n = 0;
n < allTags[
n]; ++
n)
720 if (allTags[
n] ==
tag)
737 winetest_ok(
p->qwattr == 0,
"expected entry #%d to be 0, was 0x%I64x\n",
num,
p->qwattr);
749 winetest_ok(
p->flags == 0,
"expected entry #%d to be 0, was %d\n",
num,
p->flags);
750 winetest_ok(
p->qwattr == 0,
"expected entry #%d to be 0, was 0x%I64x\n",
num,
p->qwattr);
795#define expect_tag_skip (winetest_set_location(__FILE__, __LINE__), 0) ? (void)0 : expect_tag_skip_imp
796#define expect_tag_empty (winetest_set_location(__FILE__, __LINE__), 0) ? (void)0 : expect_tag_empty_imp
797#define expect_tag_dword (winetest_set_location(__FILE__, __LINE__), 0) ? (void)0 : expect_tag_dword_imp
798#define expect_tag_qword (winetest_set_location(__FILE__, __LINE__), 0) ? (void)0 : expect_tag_qword_imp
799#define expect_tag_str (winetest_set_location(__FILE__, __LINE__), 0) ? (void)0 : expect_tag_str_imp
800#define expect_tag_skip_range(ptr, from, to) \
802 int n = (from), n_end = (to); \
803 winetest_set_location(__FILE__, __LINE__); \
804 for ( ; n < n_end; ++n) \
805 expect_tag_skip_imp((ptr), n); \
807#define test_crc (winetest_set_location(__FILE__, __LINE__), 0) ? (void)0 : test_crc_imp
808#define test_crc2 (winetest_set_location(__FILE__, __LINE__), 0) ? (void)0 : test_crc2_imp
815 if (!pSdbFreeFileAttributes)
823 if (pSdbGetFileAttributes(
filename, &pattrinfo, &
num))
829 if (pattrinfo[16].dwattr != 3 && pattrinfo[16].dwattr != 2)
830 printf(
"TAG_MODULE_TYPE(%S): %d\n",
filename, pattrinfo[16].dwattr);
831 if (pattrinfo[16].dwattr == 2)
833 printf(
"TAG_MODULE_TYPE(%S): %d, %d\n",
filename, pattrinfo[16].dwattr, pattrinfo[0].dwattr);
841 if (pattrinfo[27].dwattr != 0)
842 printf(
"TAG_EXE_WRAPPER(%S): %d\n",
filename, pattrinfo[27].dwattr);
845 pSdbFreeFileAttributes(pattrinfo);
851 static const WCHAR path[] = {
't',
'e',
's',
't',
'x',
'x',
'.',
'e',
'x',
'e',0};
852 static char crc_test[] = {4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 2, 2, 2, 2};
859 ret = pSdbGetFileAttributes(
path, &pattrinfo, &
num);
869 pSdbFreeFileAttributes(pattrinfo);
874 static const WCHAR path[] = {
't',
'e',
's',
't',
'x',
'x',
'.',
'e',
'x',
'e',0};
886 ret = pSdbGetFileAttributes(
path, &pattrinfo, &
num);
897 pSdbFreeFileAttributes(pattrinfo);
902 static const WCHAR path[] = {
't',
'e',
's',
't',
'x',
'x',
'.',
'e',
'x',
'e',0};
903 static const WCHAR PRODUCT_VERSION[] = {
'1',
'.',
'0',
'.',
'0',
'.',
'1',0};
904 static const WCHAR FILE_DESCRIPTION[] = {
'F',
'i',
'l',
'e',
'D',
'e',
's',
'c',
'r',
'i',
'p',
't',
'i',
'o',
'n',0};
905 static const WCHAR COMPANY_NAME[] = {
'C',
'o',
'm',
'p',
'a',
'n',
'y',
'N',
'a',
'm',
'e',0};
906 static const WCHAR PRODUCT_NAME[] = {
'P',
'r',
'o',
'd',
'u',
'c',
't',
'N',
'a',
'm',
'e',0};
907 static const WCHAR FILE_VERSION[] = {
'1',
'.',
'0',
'.',
'0',
'.',
'0',0};
908 static const WCHAR ORIGINAL_FILENAME[] = {
'O',
'r',
'i',
'g',
'i',
'n',
'a',
'l',
'F',
'i',
'l',
'e',
'n',
'a',
'm',
'e',0};
909 static const WCHAR INTERNAL_NAME[] = {
'I',
'n',
't',
'e',
'r',
'n',
'a',
'l',
'N',
'a',
'm',
'e',0};
910 static const WCHAR LEGAL_COPYRIGHT[] = {
'L',
'e',
'g',
'a',
'l',
'C',
'o',
'p',
'y',
'r',
'i',
'g',
'h',
't',0};
911 static const WCHAR EXPORT_NAME[] = {
'T',
'e',
'S',
't',
'2',
'.',
'e',
'x',
'e',0};
912 static const WCHAR OS2_DESCRIPTION[] = {
'M',
'O',
'D',
' ',
'D',
'E',
'S',
'C',
'R',
'I',
'P',
'T',
'I',
'O',
'N',
' ',
'H',
'E',
'R',
'E',0};
913 static const WCHAR OS2_EXPORT_NAME[] = {
'T',
'E',
'S',
'T',
'M',
'O',
'D',
'.',
'h',
'X',
'x',0};
914 static const WCHAR OS2_DESCRIPTION_broken[] = {
'Z',0};
915 static const WCHAR OS2_EXPORT_NAME_broken[] = {
'E',0};
923 ret = pSdbGetFileAttributes(
path, &pattrinfo, &
num);
924 ok(
ret ==
FALSE,
"expected SdbGetFileAttributes to fail.\n");
925 ok(pattrinfo == (
PATTRINFO)0xdead || pattrinfo ==
NULL,
"expected the pointer not to change or to be NULL.\n");
926 ok(
num == 333 ||
num == 0,
"expected the number of items not to change or to be 0.\n");
928 pSdbFreeFileAttributes(pattrinfo);
933 ret = pSdbGetFileAttributes(
path, &pattrinfo, &
num);
934 ok(
ret !=
FALSE,
"expected SdbGetFileAttributes to succeed.\n");
935 ok(pattrinfo != (
PATTRINFO)0xdead,
"expected a valid pointer.\n");
961 ok(0,
"Unknown attrinfo size: %u\n",
num);
1003 pSdbFreeFileAttributes(pattrinfo);
1009 ret = pSdbGetFileAttributes(
path, &pattrinfo, &
num);
1010 ok(
ret !=
FALSE,
"expected SdbGetFileAttributes to succeed.\n");
1011 ok(pattrinfo != (
PATTRINFO)0xdead,
"expected a valid pointer.\n");
1037 pSdbFreeFileAttributes(pattrinfo);
1042 ret = pSdbGetFileAttributes(
path, &pattrinfo, &
num);
1043 ok(
ret !=
FALSE,
"expected SdbGetFileAttributes to succeed.\n");
1044 ok(pattrinfo != (
PATTRINFO)0xdead,
"expected a valid pointer.\n");
1058 pSdbFreeFileAttributes(pattrinfo);
1063 ret = pSdbGetFileAttributes(
path, &pattrinfo, &
num);
1064 ok(
ret !=
FALSE,
"expected SdbGetFileAttributes to succeed.\n");
1065 ok(pattrinfo != (
PATTRINFO)0xdead,
"expected a valid pointer.\n");
1076 pSdbFreeFileAttributes(pattrinfo);
1081 ret = pSdbGetFileAttributes(
path, &pattrinfo, &
num);
1082 ok(
ret !=
FALSE,
"expected SdbGetFileAttributes to succeed.\n");
1083 ok(pattrinfo != (
PATTRINFO)0xdead,
"expected a valid pointer.\n");
1101 pSdbFreeFileAttributes(pattrinfo);
1106 ret = pSdbGetFileAttributes(
path, &pattrinfo, &
num);
1107 ok(
ret !=
FALSE,
"expected SdbGetFileAttributes to succeed.\n");
1108 ok(pattrinfo != (
PATTRINFO)0xdead,
"expected a valid pointer.\n");
1126 pSdbFreeFileAttributes(pattrinfo);
1193 trace(
"SdbGetAppPatchDir did not handle a NULL pointer very gracefully.\n");
1225 ok(
Buffer[
n] == 0xbbbb,
"Expected SdbGetAppPatchDir to leave WCHAR at %d untouched, was: %d\n",
1240#define RESOLVE(fnc) do { p##fnc = (void *) GetProcAddress(hdll, #fnc); ok(!!p##fnc, #fnc " not found.\n"); } while (0)
1257 skip(
"FIXME: Need new SdbGetAppPatchDir() for non-x86!\n");
1259 if (pSdbGetAppPatchDir)
_STLP_MOVE_TO_STD_NAMESPACE void fill(_ForwardIter __first, _ForwardIter __last, const _Tp &__val)
BOOL WINAPI SdbFreeFileAttributes(PATTRINFO attr_info)
LPCWSTR WINAPI SdbTagToString(TAG tag)
BOOL WINAPI SdbGUIDToString(CONST GUID *Guid, PWSTR GuidString, SIZE_T Length)
HRESULT WINAPI SdbGetAppPatchDir(HSDB db, LPWSTR path, DWORD size)
BOOL WINAPI SdbIsNullGUID(CONST GUID *Guid)
BOOL WINAPI SdbGetFileAttributes(LPCWSTR path, PATTRINFO *attr_info_ret, LPDWORD attr_count)
DWORD get_module_version(HMODULE mod)
void silence_debug_output(void)
void test_create_file_imp(const WCHAR *name, const char *contents, size_t len)
#define ok_hex(expression, result)
#define ERROR_INSUFFICIENT_BUFFER
BOOL WINAPI ApphelpCheckShellObject(REFCLSID ObjectCLSID, BOOL bShimIfNecessary, ULONGLONG *pullFlags)
#define ERROR_INVALID_PARAMETER
#define GetProcAddress(x, y)
#define WideCharToMultiByte
BOOL WINAPI DeleteFileA(IN LPCSTR lpFileName)
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
int WINAPI lstrcmpA(LPCSTR str1, LPCSTR str2)
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum GLuint GLenum GLsizei const GLchar * buf
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define EXCEPTION_EXECUTE_HANDLER
#define TAG_UPTO_BIN_FILE_VERSION
static const CLSID * objects[]
static void expect_tag_str_imp(PATTRINFO pattr, TAG tag, const WCHAR *value)
static DWORD g_AttrInfoSize
#define TAG_ORIGINAL_FILENAME
#define TAG_LINKER_VERSION
#define TAG_16BIT_DESCRIPTION
#define TAG_UPTO_LINK_DATE
static void expect_tag_qword_imp(PATTRINFO pattr, TAG tag, QWORD value)
#define TAG_TYPE_STRINGREF
#define TAG_FILE_DESCRIPTION
#define TAG_BIN_FILE_VERSION
static PATTRINFO * ppAttrInfo
static PWSTR SIZE_T Length
static PATTRINFO LPDWORD pdwAttrCount
static void test_crc2_imp(DWORD len, int fill, DWORD expected)
struct tagATTRINFO ATTRINFO
struct tagATTRINFO * PATTRINFO
#define TAG_UPTO_BIN_PRODUCT_VERSION
#define ATTRIBUTE_AVAILABLE
void test_tag(TAG base, const char *names[], size_t upperlimit, int line)
#define TAG_LEGAL_COPYRIGHT
static int strcmp_wa(LPCWSTR strw, const char *stra)
static void expect_tag_empty_imp(PATTRINFO pattr, TAG tag)
void test_onefile(WCHAR *filename)
static void test_SdbGetAppPatchDir(void)
static void expect_tag_dword_imp(PATTRINFO pattr, TAG tag, DWORD value)
static void test_GuidFunctions(void)
static void test_SdbTagToStringAllTags(void)
static DWORD find_tag(TAG tag)
static void test_crc_imp(size_t len, DWORD expected)
#define TAG_16BIT_MODULE_NAME
static void test_ApplicationAttributes(void)
#define TAG_BIN_PRODUCT_VERSION
static void expect_tag_skip_imp(PATTRINFO pattr, TAG tag)
#define TAG_INTERNAL_NAME
static void test_ApphelpCheckShellObject(void)
#define TAG_PRODUCT_VERSION
static void test_SdbTagToString(void)
static const char * strw(LPCWSTR x)
#define expect_hr(expected, got)
static const WCHAR invalid[]
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
#define IsEqualGUID(rguid1, rguid2)
#define _SEH2_EXCEPT(...)
BOOL WINAPI SdbGetStandardDatabaseGUID(DWORD Flags, GUID *Guid)
static const GUID GUID_DATABASE_DRIVERS
static const GUID GUID_DATABASE_MSI
static const GUID GUID_DATABASE_SHIM
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
static __inline const char * wine_dbgstr_guid(const GUID *id)
void __winetest_cdecl winetest_ok(int condition, const char *msg,...)
DWORD WINAPI GetLastError(void)
#define HRESULT_FROM_WIN32(x)
_Must_inspect_result_ _In_ ULONG Flags