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
ERROR_INSUFFICIENT_BUFFER
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

Vedere anche

GetStagedPackagePathByFullName2