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 da 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 chamador 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 as observações.
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é ser 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.
Valor de retorno
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. |
Observações
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 de maneira lado a lado (aguarde efetivamente a desinstalação ou, de outra forma, o serviç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 da estrutura até que MddRemovePackageDependency seja chamado.
Se vários pacotes estiverem presentes no gráfico 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 as opções de parâmetro.
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 |
---|---|
de cliente com suporte mínimo | Windows 10, versão 1809 (com o SDK do Aplicativo do Windows 1.0 ou posterior) |
cabeçalho | msixdynamicdependency.h |
Consulte também
Usar a API de dependência dinâmica para referenciar pacotes MSIX em tempo de execução