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 a instalação fornecida para uma ação personalizada de DLL ou obtida por meio MsiOpenPackage, MsiOpenPackageExou 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 para uma combinação dos valores a seguir. Esse parâmetro não deve ser nulo.
Valor de retorno
A função
Observações
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) são baseados na ação do recurso pai ou no estado instalado.
MsiGetFeatureValidStates(hProduct, "Feature1", &dwValidStates);
Se o Feature1 tiver atributos do valor 0 (favor local) e o 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 o 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.
Nota
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 do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows Installer 5.0 no Windows Server 2012, Windows 8, Windows Server 2008 R2 ou Windows 7. Windows Installer 4.0 ou Windows Installer 4.5 no Windows Server 2008 ou Windows Vista. Windows Installer no Windows Server 2003 ou Windows XP |
da Plataforma de Destino |
Windows |
cabeçalho | msiquery.h |
biblioteca | Msi.lib |
de DLL |
Msi.dll |
Consulte também
Funções de seleção do instalador
passando nulo como o argumento do Windows Installer Functions