Função MsiSetFeatureStateA (msiquery.h)
A função MsiSetFeatureState define um recurso como um estado especificado.
Sintaxe
UINT MsiSetFeatureStateA(
[in] MSIHANDLE hInstall,
[in] LPCSTR szFeature,
[in] INSTALLSTATE iState
);
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.
[in] iState
Especifica o estado a ser definido. Esse parâmetro pode usar um dos valores a seguir.
Retornar valor
A função MsiSetFeatureState retorna os seguintes valores:
Comentários
A função MsiSetFeatureState solicita uma alteração no estado de seleção de um recurso na tabela Feature e seus filhos. Por sua vez, o estado de ação de todos os componentes vinculados aos registros de recursos alterados também é atualizado adequadamente, com base no novo estado de seleção de recurso.
A função MsiSetInstallLevel deve ser chamada antes de chamar MsiSetFeatureState.
Quando MsiSetFeatureState é chamado, o instalador tenta definir o estado de ação de cada componente vinculado ao recurso especificado para o estado especificado. No entanto, há situações comuns em que a solicitação não pode ser totalmente implementada. Por exemplo, se um recurso estiver vinculado a dois componentes, o componente A e o componente B, por meio da tabela FeatureComponents , e o componente A tiver o atributo msidbComponentAttributesLocalOnly e o componente B terá o atributo msidbComponentAttributesSourceOnly . Nesse caso, se MsiSetFeatureState for chamado com um estado solicitado de INSTALLSTATE_LOCAL ou INSTALLSTATE_SOURCE, a solicitação não poderá ser totalmente implementada para ambos os componentes. Nesse caso, ambos os componentes são ativados, com o componente A definido como Local e o componente B definido como Origem.
Se mais de um recurso estiver vinculado a um único componente (um cenário comum), o estado de ação final desse componente será determinado da seguinte maneira:
- Se pelo menos um recurso exigir que o componente seja instalado localmente, o recurso será instalado com um estado local.
- Se pelo menos um recurso exigir que o componente seja executado na origem, o recurso será instalado com um estado de origem.
- Se pelo menos um recurso exigir a remoção do componente, o estado de ação estará ausente.
Se a função falhar, você poderá obter informações de erro estendidas usando MsiGetLastErrorRecord.
Observação
O cabeçalho msiquery.h define MsiSetFeatureState 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 |