Funzione GetStagedPackagePathByFullName (appmodel.h)
Ottiene il percorso del pacchetto a fasi specificato.
Sintassi
LONG GetStagedPackagePathByFullName(
[in] PCWSTR packageFullName,
[in, out] UINT32 *pathLength,
[out, optional] PWSTR path
);
Parametri
[in] packageFullName
Tipo: PCWSTR
Nome completo del pacchetto a fasi.
[in, out] pathLength
Tipo: UINT32*
Puntatore a una variabile che contiene il numero di caratteri (WCHARs) nella stringa del percorso del pacchetto, che include il carattere null-terminatore.
Prima di tutto si passa NULL al percorso per ottenere il numero di caratteri. Questo numero viene usato per allocare lo spazio di memoria per il percorso. Passare quindi l'indirizzo di questo spazio di memoria per riempire il percorso.
[out, optional] path
Tipo: PWSTR
Puntatore allo spazio di memoria che riceve la stringa del percorso del pacchetto, che include il terminatore null.
Valore restituito
Tipo: LONG
Se la funzione ha esito positivo, restituisce ERROR_SUCCESS. In caso contrario, la funzione restituisce un codice di errore. I codici di errore possibili includono quanto segue.
Codice restituito | Descrizione |
---|---|
|
Il buffer specificato dal percorso non è sufficiente per contenere i dati. Le dimensioni necessarie sono specificate da pathLength. |
Commenti
Questa funzione ha esito positivo se il pacchetto è in fase, indipendentemente dal contesto utente o se il pacchetto viene registrato per l'utente corrente.
Esempio
#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;
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8.1 [solo app desktop] |
Server minimo supportato | Windows Server 2012 R2 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | appmodel.h |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |