Compartilhar via


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 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.

[in] iState

Especifica o estado a ser definido. Esse parâmetro pode ser um dos valores a seguir.

Valor Significado
INSTALLSTATE_ABSENT
O recurso não está instalado.
INSTALLSTATE_LOCAL
O recurso é instalado na unidade local.
INSTALLSTATE_SOURCE
O recurso é executado na origem, CD ou rede.
INSTALLSTATE_ADVERTISED
O recurso é anunciado.

Valor de retorno

A função MsiSetFeatureState retorna os seguintes valores:

Observações

A função MsiSetFeatureState solicita uma alteração no estado de seleção de um recurso na tabela de Recursos 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 do 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 tem 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 a partir da origem, o recurso será instalado com um estado de origem.
  • Se pelo menos um recurso exigir a remoção do componente, o estado da ação estará ausente.
Consulte chamando funções de banco de dados de programas.

Se a função falhar, você poderá obter informações de erro estendidas usando msiGetLastErrorRecord.

Nota

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 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