MsiQueryComponentStateW 函数 (msi.h)
MsiQueryComponentState 函数返回组件的已安装状态。 此函数可以查询在当前用户以外的用户帐户下安装的产品实例的组件,前提是产品未在当前用户以外的用户帐户的按用户非托管上下文下播发。 调用过程必须具有管理权限才能获取为当前用户以外的用户安装的产品的信息。
语法
UINT MsiQueryComponentStateW(
[in] LPCWSTR szProductCode,
[in] LPCWSTR szUserSid,
[in] MSIINSTALLCONTEXT dwContext,
[in] LPCWSTR szComponentCode,
[out] INSTALLSTATE *pdwState
);
参数
[in] szProductCode
指定包含组件的产品的 ProductCode GUID。
[in] szUserSid
指定要在其中查询产品的实例所在的帐户的安全标识符(SID)。 如果未MSIINSTALLCONTEXT_MACHINE dwContext,则 null 指定当前用户。
SID 的类型 | 意义 |
---|---|
|
NULL 表示当前登录的用户。 |
|
指定系统中特定用户的枚举。 用户 SID 的示例为“S-1-3-64-2415071341-1358098788-3127455600-2561”。 |
注意 特殊 SID 字符串“S-1-5-18”(系统)不能用于按计算机枚举安装的产品。 如果 dwContextMSIINSTALLCONTEXT_MACHINE,szUserSid 必须为 null。
[in] dwContext
要查询的产品实例的安装上下文。
名字 | 意义 |
---|---|
|
检索产品的按用户托管实例的组件状态。 |
|
检索产品的按用户和非托管实例的组件状态。 |
|
检索产品的每台计算机实例的组件状态。 |
[in] szComponentCode
指定要查询的组件。 组件在组件 表的 ComponentID 列中找到
[out] pdwState
指定产品实例的组件的安装状态。 此参数可以返回下列值之一或 null 值。
价值 | 意义 |
---|---|
|
组件在本地安装。 |
|
安装组件以从源运行。 |
返回值
MsiQueryComponentState 函数返回以下值。
价值 | 意义 |
---|---|
|
调用过程必须具有管理权限才能获取为当前用户以外的用户安装的产品的信息。 |
|
配置数据已损坏。 |
|
将无效参数传递给函数。 |
|
函数成功完成。 |
|
组件 ID 不标识已知组件。 |
|
该代码示例不标识已知产品。 |
|
无法归入任何 Windows 错误代码的失败。 |
|
缓冲区太小,无法获取用户 SID。 |
有关详细信息,请参阅 显示错误消息。
言论
注意
msi.h 标头将 MsiQueryComponentState 定义为一个别名,该别名根据 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 Installer 版本所需的最低 Windows Service Pack 的信息,请参阅 Windows Installer Run-Time 要求。 |
目标平台 | 窗户 |
标头 | msi.h |
库 | Msi.lib |
DLL | Msi.dll |