Función MsiGetProductInfoExA (msi.h)

La función MsiGetProductInfoEx devuelve información del producto para productos anunciados e instalados. Esta función puede recuperar información

acerca de una instancia de un producto instalado en una cuenta de usuario distinta del usuario actual.

El proceso de llamada debe tener privilegios administrativos para un usuario que sea diferente del usuario actual. La función MsiGetProductInfoEx no puede consultar una instancia de un producto que se anuncia en un contexto no administrado por usuario para una cuenta de usuario distinta del usuario actual.

Esta función es una extensión de la función MsiGetProductInfo .

Sintaxis

UINT MsiGetProductInfoExA(
  [in]                LPCSTR            szProductCode,
  [in]                LPCSTR            szUserSid,
  [in]                MSIINSTALLCONTEXT dwContext,
  [in]                LPCSTR            szProperty,
  [out, optional]     LPSTR             szValue,
  [in, out, optional] LPDWORD           pcchValue
);

Parámetros

[in] szProductCode

Guid de ProductCode de la instancia de producto que se está consultando.

[in] szUserSid

Identificador de seguridad (SID) de la cuenta en la que existe la instancia del producto que se está consultando. Un valor NULL especifica el SID de usuario actual.

SID Significado
NULL
Usuario que ha iniciado sesión actualmente.
SID de usuario
Enumeración de un usuario específico del 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 está consultando.

Nombre Significado
MSIINSTALLCONTEXT_USERMANAGED
Recupera la propiedad product de la instancia administrada por usuario del producto.
MSIINSTALLCONTEXT_USERUNMANAGED
Recupera la propiedad product de la instancia no administrada por usuario del producto.
MSIINSTALLCONTEXT_MACHINE
Recupera la propiedad product de la instancia por máquina del producto.

[in] szProperty

Propiedad consultada.

Propiedad que se va a recuperar. Las propiedades de la tabla siguiente solo se pueden recuperar de las aplicaciones que ya están instaladas. Se garantiza que todas las propiedades necesarias están disponibles, pero otras propiedades solo están disponibles si se establece la propiedad. Para obtener más información, vea
Propiedades y propiedades necesarias.

Propiedad Significado
INSTALLPROPERTY_PRODUCTSTATE
Estado del producto devuelto en forma de cadena como "1" para anunciado y "5" para instalado.
INSTALLPROPERTY_HELPLINK
Vínculo de soporte técnico. Para más información, consulte la propiedad ARPHELPLINK.
INSTALLPROPERTY_HELPTELEPHONE
El teléfono de soporte técnico. Para más información, consulte la propiedad ARPHELPTELEPHONE.
INSTALLPROPERTY_INSTALLDATE
La última vez que este producto recibió el servicio. El valor de esta propiedad se reemplaza cada vez que se aplica o elimina una revisión del producto o se usa la opción de línea de comandos /v para reparar el producto. Si el producto no ha recibido reparaciones ni revisiones, esta propiedad contiene la hora en que este producto se instaló en este equipo.
INSTALLPROPERTY_INSTALLEDLANGUAGE
Idioma instalado.

Windows Installer 4.5 y versiones anteriores: No se admite.

INSTALLPROPERTY_INSTALLEDPRODUCTNAME
Nombre del producto instalado. Para más información, consulte la propiedad ProductName.
INSTALLPROPERTY_INSTALLLOCATION
Ubicación de instalación. Para más información, consulte la propiedad ARPINSTALLLOCATION.
INSTALLPROPERTY_INSTALLSOURCE
Origen de la instalación. Para más información, consulte la propiedad SourceDir.
INSTALLPROPERTY_LOCALPACKAGE
Paquete almacenado en caché local.
INSTALLPROPERTY_PUBLISHER
Publicador. Para más información, consulte la propiedad Manufacturer.
INSTALLPROPERTY_URLINFOABOUT
Información de la dirección URL. Para más información, consulte la propiedad ARPURLINFOABOUT.
INSTALLPROPERTY_URLUPDATEINFO
La información de actualización de la dirección URL. Para más información, consulte la propiedad ARPURLUPDATEINFO.
INSTALLPROPERTY_VERSIONMINOR
La versión secundaria del producto que se deriva de la propiedad ProductVersion .
INSTALLPROPERTY_VERSIONMAJOR
La versión principal del producto que se deriva de la propiedad ProductVersion .
INSTALLPROPERTY_VERSIONSTRING
Versión del producto. Para más información, consulte la propiedad ProductVersion.
 

Para recuperar el identificador de producto, el propietario registrado o la empresa registrada de las aplicaciones instaladas, establezca szProperty en uno de los siguientes valores de cadena de texto.

Valor Descripción
ProductID Identificador del producto. Para más información, consulte la propiedad ProductID.
RegCompany La empresa registrada para usar el producto.
RegOwner Propietario registrado para usar el producto.
 

Para recuperar el tipo de instancia del producto, establezca szProperty en el siguiente valor. Esta propiedad está disponible para productos anunciados o instalados.

Value Descripción
InstanceType Un valor que falta o un valor de 0 (cero) indica una instalación de producto normal. Un valor de uno (1) indica un producto instalado mediante una transformación de instancia múltiple y la propiedad MSINEWINSTANCE . Para más información, consulte Instalación de varias instancias de productos y revisiones.
 

Las propiedades de la tabla siguiente se pueden recuperar de las aplicaciones que se anuncian o instalan. Estas propiedades no se pueden recuperar de instancias de producto instaladas en un contexto por usuario no administrado para cuentas de usuario distintas de la cuenta de usuario actual.

Propiedad Descripción
INSTALLPROPERTY_TRANSFORMS Transformaciones.
INSTALLPROPERTY_LANGUAGE Idioma del producto.
INSTALLPROPERTY_PRODUCTNAME Nombre de producto legible humano. Para más información, consulte la propiedad ProductName.
INSTALLPROPERTY_ASSIGNMENTTYPE Es igual a 0 (cero) si el producto se anuncia o instala por usuario.

Es igual a uno (1) si el producto se anuncia o instala por equipo para todos los usuarios.

INSTALLPROPERTY_PACKAGECODE Identificador del paquete desde el que se instala un producto. Para obtener más información, vea la propiedad Códigos de paquete .
INSTALLPROPERTY_VERSION Versión del producto derivada de la propiedad ProductVersion.
INSTALLPROPERTY_PRODUCTICON Icono principal del paquete. Para más información, consulte la propiedad ARPPRODUCTICON.
INSTALLPROPERTY_PACKAGENAME Nombre del paquete de instalación original.
INSTALLPROPERTY_AUTHORIZED_LUA_APP Un valor de uno (1) indica un producto que los usuarios que no son administradores pueden atender mediante la aplicación de revisiones de control de cuentas de usuario (UAC). Un valor que falta o un valor de 0 (cero) indica que la aplicación de revisiones con privilegios mínimos no está habilitada. Disponible en Windows Installer 3.0 o posterior.

[out, optional] szValue

Puntero a un búfer que recibe el valor de la propiedad. Este búfer debe ser lo suficientemente grande como para contener la información. Si el búfer es demasiado pequeño, la función devuelve ERROR_MORE_DATA y establece *pcchValue en el número de TCHAR en el valor, sin incluir el carácter NULL de terminación.

Si lpValue se establece en NULL y pcchValue se establece en un puntero válido, la función devuelve ERROR_SUCCESS y establece *pcchValue en el número de TCHAR en el valor, no incluido el carácter NULL de terminación. A continuación, se puede llamar a la función de nuevo para recuperar el valor, con el búfer lpValue lo suficientemente grande como para contener *pcchValue + 1 caracteres.

Si lpValue y pcchValue se establecen en NULL, la función devuelve ERROR_SUCCESS si el valor existe, sin recuperar el valor.

[in, out, optional] pcchValue

Puntero a una variable que especifica el número de TCHAR en el búfer lpValue . Cuando se devuelve la función, este parámetro se establece en el tamaño del valor solicitado, independientemente de si la función copia o no el valor en el búfer especificado. El tamaño se devuelve como el número de TCHAR en el valor solicitado, sin incluir el carácter nulo de terminación.

Este parámetro solo se puede establecer en NULL si lpValue también es NULL. De lo contrario, la función devuelve ERROR_INVALID_PARAMETER.

Valor devuelto

La función MsiGetProductInfoEx devuelve los valores siguientes.

Código devuelto Descripción
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 pasa un parámetro no válido a la función .
ERROR_MORE_DATA
Un búfer es demasiado pequeño para contener los datos solicitados.
ERROR_SUCCESS
Si se devuelve este valor, significa que la función se completó correctamente.
ERROR_UNKNOWN_PRODUCT
El producto no está invertido o desinstalado.
ERROR_UNKNOWN_PROPERTY
No se reconoce la propiedad .
Nota La función MsiGetProductInfo devuelve ERROR_UNKNOWN_PROPERTY si la aplicación que se consulta se anuncia y no está instalada.
 
ERROR_FUNCTION_FAILED
Error interno inesperado.

Comentarios

Cuando se devuelve la función MsiGetProductInfoEx , el parámetro pcchValue contiene la longitud de la cadena almacenada en el búfer. El recuento devuelto no incluye el carácter nulo de terminación. Si el búfer no es lo suficientemente grande, MsiGetProductInfoEx devuelve ERROR_MORE_DATA y el parámetro pcchValue contiene el tamaño de la cadena, en TCHAR, sin contar el carácter null.

La función MsiGetProductInfoEx (INSTALLPROPERTY_LOCALPACKAGE) devuelve una ruta de acceso al paquete almacenado en caché. El paquete almacenado en caché es solo para uso interno. Las instalaciones en modo de mantenimiento deben invocarse a través de las funciones MsiConfigureFeature, MsiConfigureProduct o MsiConfigureProductEx .

La función MsiGetProductInfo devuelve ERROR_UNKNOWN_PROPERTY si la aplicación que se consulta se anuncia y no está instalada. Por ejemplo, si la aplicación se anuncia y no está instalada, una consulta para INSTALLPROPERTY_INSTALLLOCATION devuelve un error de ERROR_UNKNOWN_PROPERTY.

Nota

El encabezado msi.h define MsiGetProductInfoEx 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 neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o 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

ARPHELPLINK

ARPHELPTELEPHONE

ARPINSTALLLOCATION

ARPPRODUCTICON

ARPURLINFOABOUT

ARPURLUPDATEINFO

Fabricante

MsiConfigureFeature

MsiConfigureProduct

MsiConfigureProductEx

No se admite en Windows Installer 2.0 ni en versiones anteriores

Códigos de paquete

ProductCode

ProductID

ProductName

ProductVersion

Propiedades

Propiedades necesarias

SourceDir

Funciones de estado del sistema