GetStagedPackagePathByFullName, fonction (appmodel.h)
Obtient le chemin du package intermédiaire spécifié.
Syntaxe
LONG GetStagedPackagePathByFullName(
[in] PCWSTR packageFullName,
[in, out] UINT32 *pathLength,
[out, optional] PWSTR path
);
Paramètres
[in] packageFullName
Type : PCWSTR
Nom complet du package intermédiaire.
[in, out] pathLength
Type : UINT32*
Pointeur vers une variable qui contient le nombre de caractères (WCHARs) dans la chaîne de chemin d’accès du package, qui inclut la fin null.
Tout d’abord, vous passez la valeur NULL au chemin d’accès pour obtenir le nombre de caractères. Vous utilisez ce nombre pour allouer de l’espace mémoire pour le chemin d’accès. Ensuite, vous passez l’adresse de cet espace mémoire pour remplir le chemin d’accès.
[out, optional] path
Type : PWSTR
Pointeur vers l’espace mémoire qui reçoit la chaîne de chemin d’accès du package, qui inclut la fin null.
Valeur retournée
Type : LONG
Si la fonction réussit, elle retourne ERROR_SUCCESS. Sinon, la fonction retourne un code d’erreur. Les codes d’erreur possibles sont les suivants.
Code de retour | Description |
---|---|
|
La mémoire tampon spécifiée par chemin d’accès n’est pas assez grande pour contenir les données. La taille requise est spécifiée par pathLength. |
Remarques
Cette fonction réussit si le package est intermédiaire, quel que soit le contexte utilisateur ou si le package est inscrit pour l’utilisateur actuel.
Exemples
#define _UNICODE 1
#define UNICODE 1
#include <Windows.h>
#include <appmodel.h>
#include <stdlib.h>
#include <stdio.h>
int ShowUsage();
int ShowUsage()
{
wprintf(L"Usage: GetStagedPackagePathByFullName <fullname> [<fullname>...]\n");
return 1;
}
int __cdecl wmain(__in int argc, __in_ecount(argc) WCHAR * argv[])
{
if (argc <= 1)
return ShowUsage();
for (int i=1; i<argc; ++i)
{
PCWSTR fullName = argv[i];
UINT32 length = 0;
LONG rc = GetStagedPackagePathByFullName(fullName, &length, NULL);
if (rc != ERROR_INSUFFICIENT_BUFFER)
{
wprintf(L"Error %d in GetStagedPackagePathByFullName\n", rc);
return 2;
}
PWSTR path = (PWSTR) malloc(length * sizeof(WCHAR));
if (path == NULL)
{
wprintf(L"Error allocating memory\n");
return 3;
}
rc = GetStagedPackagePathByFullName(fullName, &length, path);
if (rc != ERROR_SUCCESS)
wprintf(L"Error %d retrieving Package's path\n", rc);
else
wprintf(L"Path = %s\n", path);
free(path);
}
return 0;
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8.1 [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2012 R2 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | appmodel.h |
Bibliothèque | Kernel32.lib |
DLL | Kernel32.dll |