Compartir a través de


Función MsiLocateComponentA (msi.h)

La función msiLocateComponent devuelve la ruta de acceso completa a un componente instalado sin código de producto. Esta función intenta determinar el producto mediante MsiGetProductCode, pero no se garantiza que encuentre el producto correcto para el autor de la llamada. msiGetComponentPath debe llamarse siempre que sea posible.

Sintaxis

INSTALLSTATE MsiLocateComponentA(
  [in]      LPCSTR  szComponent,
  [out]     LPSTR   lpPathBuf,
  [in, out] LPDWORD pcchBuf
);

Parámetros

[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. La variable incluye el carácter nulo de terminación.

[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. Tras el éxito de la función MsiLocateComponent, la variable a la que apunta pcchBuf contiene el recuento de caracteres que no incluyen el carácter nulo de terminación. Si el tamaño del búfer pasado es demasiado pequeño, la función devuelve INSTALLSTATE_MOREDATA.

Si lpPathBuf es null, pcchBuf puede ser null.

Valor devuelto

Valor Significado
INSTALLSTATE_NOTUSED
El componente que se solicita está deshabilitado en el equipo.
INSTALLSTATE_ABSENT
El componente no está instalado. Vea comentarios.
INSTALLSTATE_INVALIDARG
Uno de los parámetros de función no es válido.
INSTALLSTATE_LOCAL
El componente se instala localmente.
INSTALLSTATE_MOREDATA
El búfer proporcionado era demasiado pequeño.
INSTALLSTATE_SOURCE
El componente se instala para ejecutar desde el origen.
INSTALLSTATE_SOURCEABSENT
No se puede acceder al origen del componente.
INSTALLSTATE_UNKNOWN
Se desconoce el código del producto o el identificador del componente. Vea comentarios.

Observaciones

La función MsiLocateComponent 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 como publicadas. Dado que INSTALLSTATE_UNKNOWN debe haber sido devuelto por MsiUseFeature también, no se llamó a MsiUseFeature o su valor devuelto no se ha comprobado correctamente.

Nota

El encabezado msi.h define MsiLocateComponent 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 Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido 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 Run-Time Requirements (Requisitos de Windows Installer) para obtener información sobre el Service Pack mínimo de Windows que requiere una versión de Windows Installer.
de la plataforma de destino de Windows
encabezado de msi.h
biblioteca de Msi.lib
DLL de Msi.dll

Consulte también

Component-Specific Functions