Como usar o Gerenciador de Reinicialização com uma interface do usuário externa

Os desenvolvedores do Windows Installer podem preparar o pacote de instalação para trabalhar com o Gerenciador de Reinicialização seguindo as diretrizes descritas em Usando o Windows Installer com o Gerenciador de Reinicialização.

Especifique o tipo de mensagem INSTALLLOGMODE_RMFILESINUSE ao chamar a função MsiSetExternalUI ou MsiSetExternalUIRecord para habilitar o manipulador de interface do usuário externo. Em seguida, o Windows Installer enviará uma mensagem de INSTALLMESSAGE_RMFILESINUSE para uso por manipuladores externos de interface do usuário que dão suporte ao Gerenciador de Reinicialização.

O manipulador de interface do usuário externo deve lidar com as informações contidas em mensagens INSTALLMESSAGE_RMFILESINUSE. Se nenhuma interface do usuário registrada ou interna lidar com a mensagem INSTALLMESSAGE_RMFILESINUSE, o Windows Installer enviará uma mensagem INSTALLMESSAGE_FILESINUSE a ser usada por manipuladores externos existentes que dão suporte a mensagens INSTALLMESSAGE_FILESINUSE e à caixa de diálogo FilesInUse.

A interface do usuário externa pode retornar os valores listados na tabela a seguir.

Valor de retorno da interface do usuário externa Ação executada pelo Windows Installer
IDOK O botão OK foi pressionado pelo usuário. O Windows Installer solicitará que o Gerenciador de Reinicialização desligue e reinicie os aplicativos que contêm arquivos atualmente em uso.
IDCANCEL O botão CANCELAR foi pressionado. Cancela a instalação.
IDIGNORE O botão IGNORAR foi pressionado. Ignora e continua a instalação. Uma reinicialização será necessária no final da instalação.
IDNO O botão NÃO foi pressionado. Se o pacote tiver uma caixa de diálogo MsiRMFilesInUse, envia uma mensagem 1610. Para obter mais informações, confira Mensagens de erro do Windows Installer. Se o pacote não tiver uma caixa de diálogo MsiRMFilesInUse, envia uma mensagem INSTALLMESSAGE_FILESINUSE.
IDRETRY O botão REPETIR foi pressionado. Envia a mensagem INSTALLMESSAGE_FILESINUSE.
-1 Um erro. Encerra a instalação.