Función MsiGetComponentPathExA (msi.h)

La función MsiGetComponentPathEx devuelve la ruta de acceso completa a un componente instalado. Si la ruta de acceso de la clave para el componente es una clave del Registro, la función devuelve la clave del Registro.

Esta función extiende la función MsiGetComponentPath existente para habilitar las búsquedas de componentes en cuentas de usuario y contextos de instalación.

Sintaxis

INSTALLSTATE MsiGetComponentPathExA(
  [in]                LPCSTR            szProductCode,
  [in]                LPCSTR            szComponentCode,
  [in, optional]      LPCSTR            szUserSid,
  [in, optional]      MSIINSTALLCONTEXT dwContext,
  [out, optional]     LPSTR             lpOutPathBuffer,
  [in, out, optional] LPDWORD           pcchOutPathBuffer
);

Parámetros

[in] szProductCode

Valor de cadena terminada en null que especifica el GUID de código de producto de una aplicación. La función obtiene la ruta de acceso de los componentes instalados usados por esta aplicación.

[in] szComponentCode

Valor de cadena terminada en null que especifica un GUID de código de componente. La función obtiene la ruta de acceso de un componente instalado que tiene este código de componente.

[in, optional] szUserSid

Valor de cadena terminada en null que especifica el identificador de seguridad (SID) de un usuario del sistema. La función obtiene las rutas de acceso de los componentes instalados de las aplicaciones instaladas en las cuentas de usuario identificadas por este SID. La cadena de SID especial s-1-1-0 (Todos) especifica todos los usuarios del sistema. Si este parámetro es NULL, la función obtiene la ruta de acceso de un componente instalado solo para el usuario que ha iniciado sesión actualmente.

Tipo de SID Significado
NULL
Especifica el usuario que ha iniciado sesión actualmente.
SID de usuario
Especifica un usuario determinado en el sistema. Un ejemplo de SID de usuario es "S-1-3-64-2415071341-1358098788-3127455600-2561".
s-1-1-0
Especifica todos los usuarios del sistema.
 
Nota La cadena de SID especial s-1-5-18 (Sistema) no se puede usar para buscar aplicaciones instaladas en el contexto de instalación por máquina. Al establecer el valor del SID en s-1-5-18, se devuelve ERROR_INVALID_PARAMETER. Cuando dwContext se establece en solo MSIINSTALLCONTEXT_MACHINE, szUserSid debe ser NULL.
 

[in, optional] dwContext

Marca que especifica el contexto de instalación. La función obtiene las rutas de acceso de los componentes instalados de las aplicaciones instaladas en el contexto de instalación especificado. Este parámetro puede ser una combinación de los valores siguientes.

Context Significado
MSIINSTALLCONTEXT_USERMANAGED
1
Incluya las aplicaciones instaladas en el contexto de instalación administrada por usuario.
MSIINSTALLCONTEXT_USERUNMANAGED
2
Incluya las aplicaciones instaladas en el contexto de instalación por usuario y no administrado.
MSIINSTALLCONTEXT_MACHINE
4
Incluya las aplicaciones instaladas en el contexto de instalación por máquina. Cuando dwInstallContext se establece en solo MSIINSTALLCONTEXT_MACHINE , el parámetro szUserSID debe ser NULL.

[out, optional] lpOutPathBuffer

Valor de cadena que recibe la ruta de acceso al componente. Este parámetro puede ser NULL. Si el componente es una clave del Registro, las raíces del Registro se representan numéricamente. Si se trata de una ruta de acceso de subclave del Registro, hay una barra diagonal inversa al final de la ruta de acceso de la clave. Si se trata de una ruta de acceso de clave de valor del Registro, no hay ninguna barra diagonal inversa al final. Por ejemplo, una ruta de acceso del Registro en un sistema operativo de 32 bits de HKEY_CURRENT_USER\SOFTWARE\Microsoft se devuelve como "01:\SOFTWARE\Microsoft". Las raíces del Registro devueltas en sistemas operativos de 32 bits se definen como se muestra en la tabla siguiente.

Nota En los sistemas operativos de 64 bits, se agrega un valor de 20 a las raíces numéricas del registro de esta tabla para distinguirlas de las rutas de acceso de clave del Registro en sistemas operativos de 32 bits. Por ejemplo, una ruta de acceso de clave del Registro de HKEY_CURRENT_USER\SOFTWARE\Microsoft se devuelve como "21:\SOFTWARE\Microsoft\", si la ruta de acceso del componente es una clave del Registro en un sistema operativo de 64 bits.
 
Root Significado
HKEY_CLASSES_ROOT
00
HKEY_CURRENT_USER
01
HKEY_LOCAL_MACHINE
02
HKEY_USERS
03

[in, out, optional] pcchOutPathBuffer

Puntero a una ubicación que recibe el tamaño del búfer, en TCHAR, al que apunta el parámetro szPathBuf . El valor de esta ubicación debe establecerse en el recuento de TCHAR en la cadena, incluido el carácter nulo de terminación. Si el tamaño del búfer es demasiado pequeño, este parámetro recibe la longitud del valor de cadena sin incluir el carácter nulo de terminación en el recuento.

Valor devuelto

La función MsiGetComponentPathEx devuelve los valores siguientes.

Valor Significado
INSTALLSTATE_NOTUSED
El componente que se solicita está deshabilitado en el equipo.
INSTALLSTATE_BADCONFIG
Los datos de configuración están dañados.
INSTALLSTATE_ABSENT
El componente no está instalado.
INSTALLSTATE_INVALIDARG
Uno de los parámetros de función no es válido.
INSTALLSTATE_LOCAL
El componente se instala localmente.
INSTALLSTATE_SOURCE
El componente se instala para ejecutarse desde el origen.
INSTALLSTATE_SOURCEABSENT
No se puede acceder al origen del componente.
INSTALLSTATE_UNKNOWN
Se desconoce el código de producto o el identificador de componente.
INSTALLSTATE_BROKEN
El componente está dañado o parcialmente ausente de alguna manera y requiere reparación.

Comentarios

La función MsiGetComponentPathEx puede devolver INSTALLSTATE_ABSENT o INSTALL_STATE_UNKNOWN, por los siguientes motivos:

  • INSTALLSTATE_ABSENT

    La aplicación no se ha asegurado correctamente de que la característica se instaló llamando a MsiUseFeature y, si es necesario, MsiConfigureFeature.

  • INSTALLSTATE_UNKNOWN

    La característica no está publicada. La aplicación debe haber determinado esto anteriormente llamando a MsiQueryFeatureState o MsiEnumFeatures. La aplicación realiza estas llamadas mientras se inicializa. Una aplicación solo debe usar características que se conocen para publicarse. Como INSTALLSTATE_UNKNOWN también debe haber sido devuelto por MsiUseFeature , no se llamó a MsiUseFeature o su valor devuelto no se ha comprobado correctamente.

Nota

El encabezado msi.h define MsiGetComponentPathEx 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. Consulte Windows Installer 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

Funciones específicas del componente