Função AddPackageDependency (appmodel.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 tryCreatePackageDependency, 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.
Consulte também AddPackageDependency2.
Sintaxe
HRESULT AddPackageDependency(
PCWSTR packageDependencyId,
INT32 rank,
AddPackageDependencyOptions options,
PACKAGEDEPENDENCY_CONTEXT *packageDependencyContext,
PWSTR *packageFullName
);
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 CreatePackageDependencyOptions_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: AddPackageDependencyOptions
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*
Quando esse método é retornado, contém o endereço de um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que especifica o nome completo do pacote para o qual a dependência foi resolvida. O chamador é responsável por liberar esse recurso depois que ele não é mais necessário chamando heapfree.
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 AddPackageDependency 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 permanecerá resolvida para esse usuário até que a última referência em todos os processos desse usuário seja removida por RemovePackageDependency ou o processo seja encerrado.
Depois que esse método for retornado com êxito, seu aplicativo poderá ativar tipos e usar conteúdo do pacote de estrutura até que RemovePackageDependency seja chamado.
Se vários pacotes estiverem presentes no gráfico de pacotes com a mesma classificação que a chamada para AddPackageDependency, 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 AddPackageDependencyOptions_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 11 (introduzido na versão 10.0.22000.0) |
cabeçalho | appmodel.h |
Consulte também
- RemovePackageDependency
- TryCreatePackageDependency
- Usar a API de dependência dinâmica para referenciar pacotes MSIX em tempo de execução