Función MsiQueryComponentStateA (msi.h)

La función MsiQueryComponentState devuelve el estado instalado para un componente. Esta función puede consultar un componente de una instancia de un producto instalado en cuentas de usuario distintas del usuario actual siempre que el producto no se anuncie en el contexto no administrado por usuario para una cuenta de usuario distinta del usuario actual. El proceso de llamada debe tener privilegios administrativos a fin de obtener información de un producto instalado para un usuario distinto del actual.

Sintaxis

UINT MsiQueryComponentStateA(
  [in]  LPCSTR            szProductCode,
  [in]  LPCSTR            szUserSid,
  [in]  MSIINSTALLCONTEXT dwContext,
  [in]  LPCSTR            szComponentCode,
  [out] INSTALLSTATE      *pdwState
);

Parámetros

[in] szProductCode

Especifica el GUID productCode para el producto que contiene el componente.

[in] szUserSid

Especifica el identificador de seguridad (SID) de la cuenta en la que existe la instancia del producto que se consulta. Si dwContext no está MSIINSTALLCONTEXT_MACHINE, null especifica el usuario actual.

Tipo de SID Significado
NULL
NULL indica el usuario que ha iniciado sesión actualmente.
SID de usuario
Especifica la enumeración de un usuario determinado en el sistema. Un ejemplo de SID de usuario es "S-1-3-64-2415071341-1358098788-3127455600-2561".
 
Nota La cadena de SID especial "S-1-5-18" (sistema) no se puede usar para enumerar los productos instalados según la máquina. Si dwContext es MSIINSTALLCONTEXT_MACHINE, szUserSid debe ser null.
 

[in] dwContext

Contexto de instalación de la instancia de producto que se consulta.

Nombre Significado
MSIINSTALLCONTEXT_USERMANAGED
Recupera el estado del componente para la instancia administrada por usuario del producto.
MSIINSTALLCONTEXT_USERUNMANAGED
Recupera el estado del componente para la instancia no administrada por usuario del producto.
MSIINSTALLCONTEXT_MACHINE
Recupera el estado del componente para la instancia por máquina del producto.

[in] szComponentCode

Especifica el componente que se está consultando. GUID de código de componente del componente tal como se encuentra en la columna ComponentID de la tabla Component .

[out] pdwState

Estado de instalación del componente para la instancia de producto especificada. Este parámetro puede devolver uno de los siguientes valores o null.

Valor Significado
INSTALLSTATE_LOCAL
El componente se instala localmente.
INSTALLSTATE_SOURCE
El componente se instala para ejecutarse desde el origen.

Valor devuelto

La función MsiQueryComponentState devuelve los valores siguientes.

Valor Significado
ERROR_ACCESS_DENIED
El proceso de llamada debe tener privilegios administrativos a fin de obtener información de un producto instalado para un usuario distinto del actual.
ERROR_BAD_CONFIGURATION
Los datos de configuración están dañados.
ERROR_INVALID_PARAMETER
Se pasó un parámetro no válido a la función.
ERROR_SUCCESS
Si se devuelve este valor, significa que la función se completó correctamente.
ERROR_UNKNOWN_COMPONENT
El identificador del componente no identifica un componente conocido.
ERROR_UNKNOWN_PRODUCT
El código de producto no identifica un producto conocido.
ERROR_FUNCTION_FAILED
Errores que no se pueden describir en ningún código de error de Windows.
ERROR_MORE_DATA
Búfer demasiado pequeño para obtener el SID de usuario.
 

Para obtener más información, vea Mensajes de error mostrados.

Comentarios

Nota

El encabezado msi.h define MsiQueryComponentState como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Installer 5.0 en Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7. Windows Installer 4.0 o Windows Installer 4.5 en Windows Server 2008 o Windows Vista. Consulte Requisitos de Windows Installer en tiempo de ejecución para obtener información sobre el Service Pack mínimo de Windows que requiere una versión de Windows Installer.
Plataforma de destino Windows
Encabezado msi.h
Library Msi.lib
Archivo DLL Msi.dll

Consulte también

Componente

Mensajes de error mostrados

Funciones de selección del instalador

No se admite en Windows Installer 2.0 ni en versiones anteriores

ProductCode