MsiEnumPatchesW 函数 (msi.h)

MsiEnumPatches 函数枚举已应用于产品的所有修补程序。 该函数返回已应用于产品的每个修补程序的修补程序代码 GUID,并返回应用于产品的每个修补程序的转换列表。 请注意,修补程序可能具有许多转换,其中某些转换仅适用于特定产品。 转换列表以与 TRANSFORMS 属性的值相同的格式返回。

注意pcchTransformsBuf 未设置为成功返回 MsiEnumPatches 后复制到 lpTransformsBuf 的字符数。
 

语法

UINT MsiEnumPatchesW(
  [in]      LPCWSTR szProduct,
  [in]      DWORD   iPatchIndex,
  [out]     LPWSTR  lpPatchBuf,
  [out]     LPWSTR  lpTransformsBuf,
  [in, out] LPDWORD pcchTransformsBuf
);

参数

[in] szProduct

指定要为其枚举修补程序的产品的产品代码。

[in] iPatchIndex

指定要检索的修补程序的索引。 首次调用 MsiEnumPatches 函数时,此参数应为零,然后针对后续调用递增。

[out] lpPatchBuf

指向接收修补程序 GUID 的缓冲区的指针。 此参数是必需的参数。

[out] lpTransformsBuf

指向缓冲区的指针,该缓冲区接收修补程序中适用于产品的转换列表。 此参数是必需的,不能为 Null。

[in, out] pcchTransformsBuf

设置为在函数返回失败时复制到 lpTransformsBuf 的字符数。 未为成功返回设置。 输入时,这是缓冲区的完整大小,包括终止 null 字符的空格。 如果传入的缓冲区太小,则返回的计数不包括终止 null 字符。

返回值

含义
ERROR_BAD_CONFIGURATION
配置数据已损坏。
ERROR_INVALID_PARAMETER
向该函数传递了无效参数。
ERROR_NO_MORE_ITEMS
没有要返回的修补程序。
ERROR_SUCCESS
枚举了值。
ERROR_MORE_DATA
缓冲区太小,无法保存请求的数据。

注解

若要枚举修补程序,应用程序最初应调用将 iPatchIndex 参数设置为零的 MsiEnumPatches 函数。 然后,应用程序应递增 iPatchIndex 参数并调用 MsiEnumPatches ,直到函数返回ERROR_NO_MORE_ITEMS) 之前,没有更多产品 (。

如果缓冲区太小而无法保存请求的数据, MsiEnumPatches 将返回 ERROR_MORE_DATA,pcchTransformsBuf 包含复制到 lpTransformsBuf 的字符数,而不计算 Null 字符。

注意

msi.h 标头将 MsiEnumPatches 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows Server 2012、Windows 8、Windows Server 2008 R2 或 Windows 7 上的 Windows Installer 5.0。 Windows Server 2008 或 Windows Vista 上的 Windows Installer 4.0 或 Windows Installer 4.5。 Windows Server 2003 或 Windows XP 上的 Windows Installer。 若要了解 Windows Installer 版本所需的最低 Windows Service Pack,请参阅 Windows Installer 运行时要求。
目标平台 Windows
标头 msi.h
Library Msi.lib
DLL Msi.dll