msi.h) (MsiExtractPatchXMLDataA 函数
MsiExtractPatchXMLData 函数从可用于确定修补程序是否适用于目标系统的修补程序中提取信息。 该函数返回一个 XML 字符串,该字符串可以提供给 MsiDeterminePatchSequence 和 MsiDetermineApplicablePatches ,而不是完整的修补程序文件。 返回的信息可用于确定修补程序是否适用。
语法
UINT MsiExtractPatchXMLDataA(
[in] LPCSTR szPatchPath,
[in] DWORD dwReserved,
[out, optional] LPSTR szXMLData,
[in, out, optional] LPDWORD pcchXMLData
);
参数
[in] szPatchPath
要查询的修补程序的完整路径。 作为以 null 结尾的字符串传入。 此参数不能为 NULL。
[in] dwReserved
一个保留参数,该参数必须为 0 (零) 。
[out, optional] szXMLData
指向缓冲区的指针,用于保存包含提取的修补程序信息的 XML 字符串。 此缓冲区应足够大,足以包含接收的信息。 如果缓冲区太小,该函数将返回ERROR_MORE_DATA并将 *pcchXMLData 设置为值中的 TCHAR 数,不包括终止 NULL 字符。
如果 szXMLData 设置为 NULL 且 pcchXMLData 设置为有效指针,则该函数将返回ERROR_SUCCESS并将 *pcchXMLData 设置为值中的 TCHAR 数,不包括终止 NULL 字符。 然后,可以再次调用 该函数来检索值,其中 szXMLData 缓冲区足够大,可以包含 *pcchXMLData + 1 个字符。
[in, out, optional] pcchXMLData
指向变量的指针,该变量指定 szXMLData 缓冲区中的 TCHAR 数。 当函数返回时,无论函数是否将值复制到指定的缓冲区中,此参数都设置为请求的值的大小。 大小作为请求值中的 TCHAR 数返回,不包括终止 null 字符。
如果此参数设置为 NULL,则该函数将返回ERROR_INVALID_PARAMETER。
返回值
MsiExtractPatchXMLData 函数可以返回以下值。
返回代码 | 说明 |
---|---|
|
此函数失败的方式未由此表中的任何返回值标识。 |
|
向该函数传递了无效参数。 |
|
该值不适合提供的缓冲区。 |
|
无法打开修补程序文件。 |
|
函数成功。 |
|
无法打开修补程序文件。 |
|
如果未安装 MSXML 3.0,则可能会返回此错误。 |
注解
Installer 对象的 ExtractPatchXMLData 方法使用 MsiExtractPatchXMLData 函数。
注意
msi.h 标头将 MsiExtractPatchXMLData 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Server 2008 或 Windows Vista 上的 Windows Installer 4.0 或 Windows Installer 4.5。 Windows Server 2003 或 Windows XP 上的 Windows Installer 3.0 或更高版本。 若要了解 Windows Installer 版本所需的最低 Windows Service Pack,请参阅 Windows Installer 运行时要求。 |
目标平台 | Windows |
标头 | msi.h |
Library | Msi.lib |
DLL | Msi.dll |