Função MsiEnumComponentCostsA (msiquery.h)
A função MsiEnumComponentCosts enumera o espaço em disco por unidade necessário para instalar um componente. Essas informações são necessárias para exibir o custo de espaço em disco necessário para todas as unidades na interface do usuário. Os custos de espaço em disco retornados são expressos em múltiplos de 512 bytes.
msiEnumComponentCosts só deve ser executado depois que o instalador tiver concluído o custo do arquivo e depois que a ação CostFinalize . Para obter mais informações, consulte de custo de arquivo.
Sintaxe
UINT MsiEnumComponentCostsA(
[in] MSIHANDLE hInstall,
[in] LPCSTR szComponent,
[in] DWORD dwIndex,
[in] INSTALLSTATE iState,
[out] LPSTR szDriveBuf,
[in, out] LPDWORD pcchDriveBuf,
[out] LPINT piCost,
[out] LPINT piTempCost
);
Parâmetros
[in] hInstall
Manipule a instalação fornecida para uma ação personalizada de DLL ou obtida por meio MsiOpenPackage, MsiOpenPackageExou MsiOpenProduct.
[in] szComponent
Uma cadeia de caracteres terminada em nulo especificando o nome do componente como ele está listado na coluna Componente da tabela componente . Esse parâmetro pode ser nulo. Se szComponent for nulo ou uma cadeia de caracteres vazia, MsiEnumComponentCosts enumera o espaço em disco total por unidade usado durante a instalação. Nesse caso, iState é ignorado. Os custos do instalador incluem esses custos para armazenar o banco de dados em cache na pasta segura, bem como o custo para criar o script de instalação. Observe que o espaço em disco total usado durante a instalação pode ser maior do que o espaço usado após a instalação do componente.
[in] dwIndex
Índice baseado em 0 para unidades. Esse parâmetro deve ser zero para a primeira chamada para a função MsiEnumComponentCosts e incrementada para chamadas subsequentes.
[in] iState
Estado do componente solicitado a ser enumerado. Se szComponent for passado como Null ou uma cadeia de caracteres vazia, o instalador ignorará o parâmetro iState.
[out] szDriveBuf
Buffer que contém o nome da unidade, incluindo o terminador nulo. Essa é uma cadeia de caracteres vazia em caso de erro.
[in, out] pcchDriveBuf
Ponteiro para uma variável que especifica o tamanho, em TCHARs, do buffer apontado pelo parâmetro lpDriveBuf. Esse tamanho deve incluir o caractere nulo de encerramento. Se o buffer fornecido for muito pequeno, a variável apontada por pcchDriveBuf conterá a contagem de caracteres que não incluem o terminador nulo.
[out] piCost
Custo do componente por unidade expresso em múltiplos de 512 bytes. Esse valor será 0 se ocorrer um erro. O valor retornado em piCost é o espaço em disco final usado pelo componente após a instalação. Se szComponent for passado como Nulo ou uma cadeia de caracteres vazia, o instalador definirá o valor em piCost como 0.
[out] piTempCost
O custo do componente por unidade durante a instalação ou 0 se ocorreu um erro. O valor em *piTempCost representa os requisitos de espaço temporário durante a instalação. Esse requisito de espaço temporário é necessário apenas para a duração da instalação. Isso não afeta o requisito final de espaço em disco.
Valor de retorno
Valor retornado | Significado |
---|---|
|
Os dados de configuração estão corrompidos. |
|
Um parâmetro inválido foi passado para a função. |
|
Não há mais unidades a serem retornadas. |
|
Um valor foi enumerado. |
|
O componente está ausente. |
|
O custo não está concluído. |
|
Buffer não grande o suficiente para o nome da unidade. |
|
O identificador fornecido é inválido ou inativo. |
Observações
O método recomendado para enumerar os custos de espaço em disco por unidade é o seguinte. Comece com o dwIndex definido como 0 e incremente-o por um após cada chamada. Continue a enumeração desde que MsiEnumComponentCosts retorne ERROR_SUCCESS.
msiEnumComponentCosts podem ser chamados de ações personalizadas.
O custo total do disco final para a instalação é a soma dos custos de todos os componentes mais o custo do Windows Installer (szComponent = nulo).
Nota
O cabeçalho msiquery.h define MsiEnumComponentCosts 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 |