Ação personalizada tipo 1

Essa ação personalizada chama uma DLL (biblioteca de vínculo dinâmico) escrita em C ou C++.

Fonte

A DLL é gerada com base em um fluxo binário temporário. O campo Source da tabela CustomAction contém uma chave para a tabela Binary.

A coluna Data da tabela Binary contém os dados de fluxo. Um fluxo separado é alocado para cada linha. Novos dados binários podem ser inseridos por meio de um arquivo usando MsiRecordSetStream seguido de MsiViewModify para inserir o registro na tabela. Quando a ação personalizada é invocada, os dados de fluxo são copiados para um arquivo temporário, que é processado conforme o tipo de ação personalizada.

Valor de tipo

Inclua os bits de sinalizador a seguir na coluna Type da tabela CustomAction para especificar o tipo numérico básico.

Constantes Hexadecimal Decimal
msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData 0x001 1

 

Destino

A DLL é chamada por meio do ponto de entrada nomeado no campo de Destino da tabela CustomAction, passando um único argumento que é o identificador para a sessão de instalação atual. O nome do ponto de entrada especificado na tabela deverá corresponder ao exportado da DLL. Observe que, se a função de entrada não for especificada por um arquivo .DEF ou por um /EXPORT: especificação do vinculador, o nome poderá ter um sublinhado inicial e um sufixo "@4". A função chamada deverá especificar a convenção de chamada __stdcall.

Opções de processamento de retornos

Inclua bits de sinalizador opcionais na coluna Type da tabela CustomAction para especificar as opções de processamento de retorno. Para conferir uma descrição das opções e dos valores, consulte Opções de processamento de retorno da ação personalizada.

Opções de agendamento de execução

Inclua bits de sinalizador opcionais na coluna Type da tabela CustomAction para especificar as opções de agendamento de execução. Essas opções controlam a execução múltipla de ações personalizadas. Para conferir uma descrição das opções, consulte Opções de agendamento de execução de ação personalizada.

Opções de execução no script

Inclua bits de sinalizador opcionais na coluna Type da tabela CustomAction para especificar uma opção de execução no script. Essas opções copiam o código de ação para o script de execução, reversão ou confirmação. Para conferir uma descrição das opções, consulte Opções de execução no script de ação personalizada.

Valores de retorno

Confira Valores retornados da ação personalizada.

Comentários

Uma ação personalizada que chama uma DLL (biblioteca de vínculo dinâmico) exige um identificador para a sessão de instalação. Se esta também for uma ação personalizada de execução adiada, a sessão poderá não existir mais durante a execução do script de instalação. Para obter mais informações sobre como uma ação personalizada desse tipo poderá obter informações de contexto, confira Obter informações de contexto para ações personalizadas de execução adiada.

Quando uma tabela de banco de dados é exportada, cada fluxo é gravado como um arquivo separado na subpasta com o mesmo nome da tabela, usando a chave primária como o nome do arquivo (coluna Name da tabela Binary), com a extensão padrão ".ibd". O nome deverá usar o formato 8.3 se o sistema de arquivos ou o sistema de controle de versão não der suporte a nomes de arquivos longos. O arquivo morto persistente substitui os dados de fluxo pelo nome do arquivo usado, para que os dados possam ser localizados quando a tabela for importada.

Custom_Actions

Bibliotecas de vínculo dinâmico

Como obter informações de contexto para ações personalizadas de execução adiada