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.
[in] dwContext
Contexto de instalación de la instancia de producto que se está consultando.
[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 |
---|---|
|
Estado del producto devuelto en forma de cadena como "1" para anunciado y "5" para instalado. |
|
Vínculo de soporte técnico. Para más información, consulte la propiedad ARPHELPLINK. |
|
El teléfono de soporte técnico. Para más información, consulte la propiedad ARPHELPTELEPHONE. |
|
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. |
|
Idioma instalado.
Windows Installer 4.5 y versiones anteriores: No se admite. |
|
Nombre del producto instalado. Para más información, consulte la propiedad ProductName. |
|
Ubicación de instalación. Para más información, consulte la propiedad ARPINSTALLLOCATION. |
|
Origen de la instalación. Para más información, consulte la propiedad SourceDir. |
|
Paquete almacenado en caché local. |
|
Publicador. Para más información, consulte la propiedad Manufacturer. |
|
Información de la dirección URL. Para más información, consulte la propiedad ARPURLINFOABOUT. |
|
La información de actualización de la dirección URL. Para más información, consulte la propiedad ARPURLUPDATEINFO. |
|
La versión secundaria del producto que se deriva de la propiedad ProductVersion . |
|
La versión principal del producto que se deriva de la propiedad ProductVersion . |
|
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 |
---|---|
|
El proceso de llamada debe tener privilegios administrativos a fin de obtener información de un producto instalado para un usuario distinto del actual. |
|
Los datos de configuración están dañados. |
|
Se pasa un parámetro no válido a la función . |
|
Un búfer es demasiado pequeño para contener los datos solicitados. |
|
Si se devuelve este valor, significa que la función se completó correctamente. |
|
El producto no está invertido o desinstalado. |
|
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 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
No se admite en Windows Installer 2.0 ni en versiones anteriores