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
缓冲区太小,无法保存请求的数据。

言论

若要枚举修补程序,应用程序应最初调用 MsiEnumPatches 函数,并将 iPatchIndex 参数设置为零。 然后,应用程序应递增 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 Run-Time 要求。
目标平台 窗户
标头 msi.h
Msi.lib
DLL Msi.dll