Função MsiProcessMessage (msiquery.h)
A função MsiProcessMessage envia um registro de erro para o instalador para processamento.
Sintaxe
int MsiProcessMessage(
[in] MSIHANDLE hInstall,
[in] INSTALLMESSAGE eMessageType,
[in] MSIHANDLE hRecord
);
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] eMessageType
O parâmetro eMessage deve ser um valor que especifique um dos seguintes tipos de mensagem. Para exibir uma caixa de mensagem com botões ou ícones, use operadores OR para adicionar INSTALLMESSAGE_ERROR, INSTALLMESSAGE_WARNING ou INSTALLMESSAGE_USER aos estilos de caixa de mensagem padrão usados pelas funções MessageBox e MessageBoxEx . Para obter mais informações, consulte os Comentários abaixo.
Valor | Significado |
---|---|
|
Término prematuro, possivelmente de memória insuficiente fatal. |
|
Mensagem de erro formatada, |
|
Mensagem de aviso formatada, |
|
Mensagem de solicitação do usuário, |
|
Mensagem informativa para log, |
|
Lista de arquivos atualmente em uso que devem ser fechados antes de serem substituídos. |
|
Solicitação para determinar um local de origem válido. |
|
Lista de arquivos atualmente em uso que devem ser fechados antes de serem substituídos. Disponível a partir do Windows Installer versão 4.0. Para obter mais informações sobre essa mensagem, consulte Usar o gerenciador de reinicialização com uma interface do usuário externa. |
|
Mensagem de espaço insuficiente em disco. |
|
Progresso: início da ação, |
|
Dados de ação. Os campos de registro correspondem ao modelo da mensagem ACTIONSTART. |
|
Informações da barra de progresso. Confira a descrição dos campos de registro abaixo. |
|
Para habilitar o botão Cancelar, defina [1] como 2 e [2] como 1.
Para desabilitar o botão Cancelar, defina [1] como 2 e [2] como 0 |
[in] hRecord
Manipule para um registro que contém o formato e os dados da mensagem.
Retornar valor
Essa função retorna int.
Comentários
A função MsiProcessMessage executa todas as operações de log habilitadas e adia a execução. Você pode habilitar seletivamente o registro em log para vários tipos de mensagens.
Para mensagens INSTALLMESSAGE_FATALEXIT, INSTALLMESSAGE_ERROR, INSTALLMESSAGE_WARNING e INSTALLMESSAGE_USER, se o campo 0 não estiver definido, o campo 1 deverá ser definido como o código de erro correspondente à mensagem de erro na tabela Erro. Em seguida, a mensagem é formatada usando o modelo da tabela Error antes de passá-la para o manipulador de interface do usuário para exibição.
Campos de registro para mensagens da barra de progresso
A seguir, descreve os campos de registro quando eMessageType é definido como INSTALLMESSAGE_PROGRESS. O campo 1 especifica o tipo da mensagem de progresso. O significado dos outros campos depende do valor neste campo. Os valores possíveis que podem ser definidos no Campo 1 são os seguintes.Valor do campo 1 | Descrição do campo 1 |
---|---|
0 | Redefine a barra de progresso e define o número total esperado de tiques na barra. |
1 | Fornece informações relacionadas às mensagens de progresso a serem enviadas pela ação atual. |
2 | Incrementa a barra de progresso. |
3 | Permite que uma ação (como CustomAction) adicione tiques ao número total esperado de progresso da barra de progresso. |
O significado do Campo 2 depende do valor no Campo 1 da seguinte maneira.
Valor do campo 1 | Descrição do campo 2 |
---|---|
0 | Número total esperado de tiques na barra de progresso. |
1 | Número de tiques que a barra de progresso move para cada mensagem ActionData enviada pela ação atual. Esse campo será ignorado se o Campo 3 for 0. |
2 | Número de tiques que a barra de progresso moveu. |
3 | Número de tiques a serem adicionados ao progresso total esperado. |
O significado do Campo 3 depende do valor no Campo 1 da seguinte maneira.
Valor do campo 1 | Valor do campo 3 | Descrição do campo 3 |
---|---|---|
0 | 0 | Barra de progresso Avançar (da esquerda para a direita) |
1 | Barra de progresso Voltar (da direita para a esquerda) | |
1 | 0 | A ação atual enviará mensagens ProgressReport explícitas. |
1 | Incremente a barra de progresso pelo número de tiques especificados no Campo 2 sempre que uma mensagem ActionData for enviada pela ação atual. | |
2 | Não usado | |
3 | Não usado |
O significado do Campo 4 depende do valor no Campo 1 da seguinte maneira.
Valor do campo 1 | Valor do campo 4 | Descrição do campo 4 |
---|---|---|
0 | 0 | A execução está em andamento. Nesse caso, a interface do usuário pode calcular e exibir o tempo restante. |
1 | Criando o script de execução. Nesse caso, a interface do usuário pode exibir uma mensagem para aguardar enquanto o instalador termina de preparar a instalação. | |
1 | Não usado | |
2 | Não usado | |
3 | Não usado |
Para obter mais informações e um exemplo de código, consulte Adicionando ações personalizadas ao ProgressBar.
Exibição de caixas de mensagem
Para exibir uma caixa de mensagem com botões ou ícones, use operadores OR para adicionar INSTALLMESSAGE_ERROR, INSTALLMESSAGE_WARNING ou INSTALLMESSAGE_USER com as opções de caixa de mensagem usadas por MessageBox e MessageBoxEx. As opções de botão de ação disponíveis são MB_OK, MB_OKCANCEL, MB_ABORTRETRYIGNORE, MB_YESNOCANCEL, MB_YESNO e MB_RETRYCANCEL. As opções de botão padrão disponíveis são MB_DEFBUTTON1, MB_DEFBUTTON2 e MB_DEFBUTTON3. As opções de ícone disponíveis são MB_ICONERROR, MB_ICONQUESTION, MB_ICONWARNING e MB_ICONINFORMATION. Se nenhuma opção de ícone for especificada, o Windows Installer escolherá um estilo de ícone padrão com base no tipo de mensagem.Por exemplo, a chamada a seguir para MsiProcessMessage envia uma mensagem INSTALLMESSAGE_ERROR com o ícone MB_ICONWARNING e os botões MB_ABORTRETRYCANCEL.
PMSIHANDLE hInstall;
PMSIHANDLE hRec;
MsiProcessMessage(hInstall,
INSTALLMESSAGE(INSTALLMESSAGE_ERROR|MB_ABORTRETRYIGNORE|MB_ICONWARNING),
hRec);
Se uma ação personalizada chamar MsiProcessMessage, a ação personalizada deverá ser capaz de lidar com um cancelamento pelo usuário e deve retornar ERROR_INSTALL_USEREXIT.
Para obter mais informações sobre como enviar mensagens com MsiProcessMessage, consulte o Envio de mensagens para o Windows Installer usando MsiProcessMessage.
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
Como enviar mensagens para o Windows Installer usando MsiProcessMessage