Función MsiGetComponentPathA (msi.h)
La función MsiGetComponentPath 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, se devuelve la clave del Registro.
Sintaxis
INSTALLSTATE MsiGetComponentPathA(
[in] LPCSTR szProduct,
[in] LPCSTR szComponent,
[out] LPSTR lpPathBuf,
[in, out] LPDWORD pcchBuf
);
Parámetros
[in] szProduct
Especifica el código de producto para el producto cliente.
[in] szComponent
Especifica el identificador de componente del componente que se va a ubicar.
[out] lpPathBuf
Puntero a una variable 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.
Root | Significado |
---|---|
|
00 |
|
01 |
|
02 |
|
03 |
[in, out] pcchBuf
Puntero a una variable que especifica el tamaño, en caracteres, del búfer al que apunta el parámetro lpPathBuf . En la entrada, este es el tamaño completo del búfer, incluido un espacio para un carácter nulo de terminación. Si el búfer pasado es demasiado pequeño, el recuento devuelto no incluye el carácter nulo de terminación.
Si lpPathBuf es null, pcchBuf puede ser null.
Valor devuelto
La función MsiGetComponentPath devuelve los valores siguientes.
Valor | Significado |
---|---|
|
El componente que se solicita está deshabilitado en el equipo. |
|
El componente no está instalado. |
|
Uno de los parámetros de función no es válido. |
|
El componente se instala localmente. |
|
El componente se instala para ejecutarse desde el origen. |
|
No se puede acceder al origen del componente. |
|
Se desconoce el código de producto o el identificador de componente. |
Comentarios
Tras el éxito de la función MsiGetComponentPath , el parámetro pcchBuf contiene la longitud de la cadena en lpPathBuf.
La función MsiGetComponentPath 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 MsiGetComponentPath 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
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. Windows Installer en Windows Server 2003 o Windows XP. 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 |