Compartilhar via


Função MddAddPackageDependency (msixdynamicdependency.h)

Adiciona uma referência em tempo de execução para a dependência do pacote de estrutura que você criou anteriormente usando o método MddTryCreatePackageDependency , com as opções especificadas. Depois que esse método for retornado com êxito, seu aplicativo poderá ativar tipos e usar o conteúdo do pacote de estrutura.

Sintaxe

HRESULT MddAddPackageDependency(
  PCWSTR                         packageDependencyId,
  INT32                          rank,
  MddAddPackageDependencyOptions options,
  MDD_PACKAGEDEPENDENCY_CONTEXT  *packageDependencyContext,
  PWSTR                          *packageFullName
) noexcept;

Parâmetros

packageDependencyId

Tipo: PCWSTR

A ID da dependência do pacote a ser resolvida e adicionada ao grafo de pacote do processo de invocação. Esse parâmetro deve corresponder a uma dependência de pacote definida usando a função TryCreatePackageDependency para o usuário que está chamando ou o sistema (por meio da opção ScopeIsSystem ) ou então um erro é retornado.

rank

Tipo: INT32

A classificação a ser usada para adicionar o pacote resolvido ao grafo de pacote do chamador. Para obter mais informações, consulte os comentários.

options

Tipo: MddAddPackageDependencyOptions

As opções a serem aplicadas ao adicionar a dependência do pacote.

packageDependencyContext

Tipo: PACKAGEDEPENDENCY_CONTEXT*

O identificador da dependência de pacote adicionada. Esse identificador é válido até que seja passado para RemovePackageDependency.

packageFullName

Tipo: PCWSTR*

O nome completo do pacote para o qual a dependência foi resolvida. Use a função HeapAlloc para alocar memória para esse parâmetro e use HeapFree para desalocar a memória.

Retornar valor

Tipo: HRESULT

Se a função for bem-sucedida, ela retornará ERROR_SUCCESS. Caso contrário, a função retornará um código de erro. Os códigos de erro possíveis incluem o seguinte.

Código de retorno Descrição
E_INVALIDARG O parâmetro packageDependencyId ou packageDependencyContext é NULL na entrada.

Comentários

Chamar esse método resolve a dependência do pacote de estrutura para um pacote específico no sistema. Ele também informa ao sistema operacional que o pacote de estrutura está em uso ativo e para lidar com as atualizações de versão lado a lado (atrasar efetivamente a desinstalação ou, de outra forma, a manutenção da versão mais antiga até que seu aplicativo termine de usá-la). A resolução de pacotes é específica para um usuário e pode retornar valores diferentes para usuários diferentes em um sistema.

Cada chamada MddAddPackageDependency bem-sucedida adiciona o pacote resolvido ao grafo do pacote do processo de chamada, mesmo que já esteja presente. Não há nenhuma detecção ou filtragem duplicada aplicada pela API (ou seja, várias referências de um pacote não são prejudiciais). Após a conclusão da resolução, a dependência do pacote permanece resolvida para esse usuário até que a última referência em todos os processos desse usuário seja removida por meio de MddRemovePackageDependency ou o processo seja encerrado. Chamadas bem-sucedidas para esse método alteram o valor da ID de geração retornado por MddGetGenerationId.

Depois que esse método for retornado com êxito, seu aplicativo poderá ativar tipos e usar o conteúdo do pacote de estrutura até que MddRemovePackageDependency seja chamado.

Se vários pacotes estiverem presentes no grafo de pacotes com a mesma classificação que a chamada para MddAddPackageDependency, o pacote resolvido será (por padrão) adicionado após outros da mesma classificação. Para adicionar um pacote antes de outros da mesma classificação, especifique PrependIfRankCollision para o parâmetro options .

Para obter mais informações, consulte Usar a API de dependência dinâmica para referenciar pacotes MSIX em tempo de execução.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10, versão 1809 (com SDK do Aplicativo Windows 1.0 ou posterior)
Cabeçalho msixdynamicdependency.h

Confira também

MddRemovePackageDependency

MddTryCreatePackageDependency

Usar a API de dependência dinâmica para referenciar pacotes MSIX em tempo de execução