Função MsiGetFeatureValidStatesA (msiquery.h)
A função MsiGetFeatureValidStates retorna um estado de instalação válido.
Sintaxe
UINT MsiGetFeatureValidStatesA(
[in] MSIHANDLE hInstall,
[in] LPCSTR szFeature,
[out] LPDWORD lpInstallStates
);
Parâmetros
[in] hInstall
Manipule para a instalação fornecida a uma ação personalizada de DLL ou obtida por meio de MsiOpenPackage, MsiOpenPackageEx ou MsiOpenProduct.
[in] szFeature
Especifica o nome do recurso.
[out] lpInstallStates
Recebe o local para manter os estados de instalação válidos. Para cada estado de instalação válido, o instalador define pInstallState como uma combinação dos valores a seguir. Esse parâmetro não deve ser nulo.
Retornar valor
A função MsiGetFeatureValidStates retorna os seguintes valores:
Comentários
Consulte Chamando funções de banco de dados de programas.
A função MsiGetFeatureValidStates determina a validade do estado consultando todos os componentes vinculados ao recurso especificado sem levar em conta o estado atual instalado de qualquer componente.
Os estados válidos possíveis para um recurso são determinados da seguinte maneira:
- Se o recurso não contiver componentes, INSTALLSTATE_LOCAL e INSTALLSTATE_SOURCE serão estados válidos para o recurso.
- Se pelo menos um componente do recurso tiver um atributo de msidbComponentAttributesLocalOnly ou msidbComponentAttributesOptional, INSTALLSTATE_LOCAL será um estado válido para o recurso.
- Se pelo menos um componente do recurso tiver um atributo de msidbComponentAttributesSourceOnly ou msidbComponentAttributesOptional, INSTALLSTATE_SOURCE será um estado válido para o recurso.
- Se um arquivo de um componente que pertence ao recurso for corrigido ou de uma fonte compactada, INSTALLSTATE_SOURCE não será incluído como um estado válido para o recurso.
- INSTALLSTATE_ADVERTISE não for um estado válido se o recurso não permitir anúncio (msidbFeatureAttributesDisallowAdvertise) ou o recurso exigir suporte de plataforma para anúncio (msidbFeatureAttributesNoUnsupportedAdvertise) e a plataforma não oferecer suporte a ele.
- INSTALLSTATE_ABSENT é um estado válido para o recurso se seus atributos não incluirem msidbFeatureAttributesUIDisallowAbsent.
- Os estados válidos para recursos filho marcados para seguir o recurso pai (msidbFeatureAttributesFollowParent) baseiam-se na ação do recurso pai ou no estado instalado.
MsiGetFeatureValidStates(hProduct, "Feature1", &dwValidStates);
Se Feature1 tiver atributos de valor 0 (favor local) e Feature1 tiver um componente com atributos de valor 0 (somente local), o valor de dwValidStates após a chamada será 14. Isso indica que INSTALLSTATE_LOCAL, INSTALLSTATE_ABSENT e INSTALLSTATE_ADVERTISED são estados válidos para Feature1. A instrução condicional a seguir será avaliada como True se local for um estado válido para esse recurso.
( ( dwValidStates & ( 1 << INSTALLSTATE_LOCAL ) ) == ( 1 << INSTALLSTATE_LOCAL ) )
Se a função falhar, você poderá obter informações de erro estendidas usando MsiGetLastErrorRecord.
Observação
O cabeçalho msiquery.h define MsiGetFeatureValidStates como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Installer 5.0 no Windows Server 2012, no Windows 8, no Windows Server 2008 R2 ou no Windows 7. Windows Installer 4.0 ou Windows Installer 4.5 no Windows Server 2008 ou no Windows Vista. Windows Installer no Windows Server 2003 ou no Windows XP |
Plataforma de Destino | Windows |
Cabeçalho | msiquery.h |
Biblioteca | Msi.lib |
DLL | Msi.dll |
Confira também
Funções de seleção do instalador
Passando Null como o argumento das funções do Windows Installer