MsiQueryFeatureStateExW 函数 (msi.h)
MsiQueryFeatureStateEx 函数返回产品功能的已安装状态。 此函数可用于查询安装在计算机帐户下的产品实例的任何功能,或者当前用户帐户下的任何上下文或当前用户以外的任何用户帐户下的每用户管理的上下文。 用户必须具有管理权限才能获取为当前用户以外的用户安装的产品的信息。
语法
UINT MsiQueryFeatureStateExW(
[in] LPCWSTR szProductCode,
[in] LPCWSTR szUserSid,
[in] MSIINSTALLCONTEXT dwContext,
[in] LPCWSTR szFeature,
[out, optional] INSTALLSTATE *pdwState
);
参数
[in] szProductCode
ProductCode 包含相关功能的产品的 GUID。
[in] szUserSid
指定帐户的安全标识符(SID),在该标识符下,要查询的产品实例存在。 如果未 MSIINSTALLCONTEXT_MACHINEdwContext,则 null 值指定当前用户。
SID 的类型 | 意义 |
---|---|
|
NULL 表示当前登录的用户。 |
|
指定系统中特定用户的枚举。 用户 SID 的示例为“S-1-3-64-2415071341-1358098788-3127455600-2561”。 |
[in] dwContext
要查询的产品实例的安装上下文。
名字 | 意义 |
---|---|
|
检索产品的每个用户托管实例的功能状态。 |
|
检索产品的每用户非托管实例的功能状态。
注意 在当前用户以外的用户帐户的每个用户非托管上下文下对产品进行查询时,该函数将失败。
|
|
检索产品的每台计算机实例的功能状态。 |
[in] szFeature
指定要查询的功能。 功能表的 功能 列中找到的功能的标识符。
[out, optional] pdwState
指定产品实例的功能安装状态。 此参数可以返回下列值之一或 null。
价值 | 意义 |
---|---|
|
此功能已播发。 |
|
此功能在本地安装。 |
|
安装该功能以从源运行。 |
返回值
MsiQueryFeatureStateEx 函数返回以下值。
价值 | 意义 |
---|---|
|
用户必须具有管理权限才能获取为当前用户以外的用户安装的产品的信息。 |
|
配置数据已损坏。 |
|
将无效参数传递给函数。 |
|
函数成功完成。 |
|
功能 ID 不标识已知功能。 |
|
该代码示例不标识已知产品。 |
|
意外的内部故障。 |
有关详细信息,请参阅 显示错误消息。
言论
MsiQueryFeatureStateEx 函数不会验证该功能是否实际可访问。 MsiQueryFeatureStateEx 函数不验证功能 ID。 对于任何未知功能 ID,将返回 ERROR_UNKNOWN_FEATURE。 在当前用户以外的用户帐户的按用户非托管上下文下安装产品时,该函数将失败。 在这种情况下,该函数返回 ERROR_UNKNOWN_FEATURE,或者仅播发产品(未安装),则返回 ERROR_UNKNOWN_PRODUCT。
注意
msi.h 标头将 MsiQueryFeatureStateEx 定义为一个别名,该别名根据 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 |