Función MsiGetFeatureValidStatesA (msiquery.h)
La función MsiGetFeatureValidStates devuelve un estado de instalación válido.
Sintaxis
UINT MsiGetFeatureValidStatesA(
[in] MSIHANDLE hInstall,
[in] LPCSTR szFeature,
[out] LPDWORD lpInstallStates
);
Parámetros
[in] hInstall
Controle la instalación proporcionada a una acción personalizada de DLL o obtenida a través de MsiOpenPackage, MsiOpenPackageEx o MsiOpenProduct.
[in] szFeature
Especifica el nombre de la característica.
[out] lpInstallStates
Recibe la ubicación para contener los estados de instalación válidos. Para cada estado de instalación válido, el instalador establece pInstallState en una combinación de los valores siguientes. Este parámetro no debería ser null.
Valor devuelto
La función MsiGetFeatureValidStates devuelve los valores siguientes:
Comentarios
Consulte Llamar a funciones de base de datos desde programas.
La función MsiGetFeatureValidStates determina la validez del estado consultando todos los componentes vinculados a la característica especificada sin tener en cuenta el estado instalado actual de ningún componente.
Los posibles estados válidos para una característica se determinan de la siguiente manera:
- Si la característica no contiene componentes, tanto INSTALLSTATE_LOCAL como INSTALLSTATE_SOURCE son estados válidos para la característica.
- Si al menos un componente de la característica tiene un atributo de msidbComponentAttributesLocalOnly o msidbComponentAttributesOptional, INSTALLSTATE_LOCAL es un estado válido para la característica.
- Si al menos un componente de la característica tiene un atributo de msidbComponentAttributesSourceOnly o msidbComponentAttributesOptional, INSTALLSTATE_SOURCE es un estado válido para la característica.
- Si un archivo de un componente que pertenece a la característica se revisa o de un origen comprimido, INSTALLSTATE_SOURCE no se incluye como un estado válido para la característica.
- INSTALLSTATE_ADVERTISE no es un estado válido si la característica no permite el anuncio (msidbFeatureAttributesDisallowAdvertise) o la característica requiere compatibilidad con la plataforma para el anuncio (msidbFeatureAttributesNoUnsupportedAdvertise) y la plataforma no la admite.
- INSTALLSTATE_ABSENT es un estado válido para la característica si sus atributos no incluyen msidbFeatureAttributesUIDisallowAbsent.
- Los estados válidos para las características secundarias marcadas para seguir la característica primaria (msidbFeatureAttributesFollowParent) se basan en la acción o el estado instalado de la característica primaria.
MsiGetFeatureValidStates(hProduct, "Feature1", &dwValidStates);
Si Feature1 tiene atributos de valor 0 (favor local) y Feature1 tiene un componente con atributos de valor 0 (solo local), el valor de dwValidStates después de la llamada es 14. Esto indica que INSTALLSTATE_LOCAL, INSTALLSTATE_ABSENT y INSTALLSTATE_ADVERTISED son estados válidos para Feature1. La siguiente instrucción condicional se evalúa como True si local es un estado válido para esta característica.
( ( dwValidStates & ( 1 << INSTALLSTATE_LOCAL ) ) == ( 1 << INSTALLSTATE_LOCAL ) )
Si se produce un error en la función, puede obtener información de error extendida mediante MsiGetLastErrorRecord.
Nota
El encabezado msiquery.h define MsiGetFeatureValidStates como un 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
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. Windows Installer en Windows Server 2003 o Windows XP |
Plataforma de destino | Windows |
Encabezado | msiquery.h |
Library | Msi.lib |
Archivo DLL | Msi.dll |
Consulte también
Funciones de selección del instalador
Pasar Null como argumento de las funciones de Windows Installer