Freigeben über


GetStagedPackagePathByFullName-Funktion (appmodel.h)

Ruft den Pfad des angegebenen mehrstufigen Pakets ab.

Syntax

LONG GetStagedPackagePathByFullName(
  [in]            PCWSTR packageFullName,
  [in, out]       UINT32 *pathLength,
  [out, optional] PWSTR  path
);

Parameter

[in] packageFullName

Typ: PCWSTR

Der vollständige Name des inszenierten Pakets.

[in, out] pathLength

Typ: UINT32*

Ein Zeiger auf eine Variable, die die Anzahl der Zeichen (WCHARs) in der Paketpfadzeichenfolge enthält, die den NULL-Endator enthält.

Zuerst übergeben Sie NULL an path , um die Anzahl der Zeichen abzurufen. Sie verwenden diese Nummer, um Speicherplatz für den Pfad zuzuweisen. Anschließend übergeben Sie die Adresse dieses Speicherplatzes, um den Pfad zu füllen.

[out, optional] path

Typ: PWSTR

Ein Zeiger auf den Speicherplatz, der die Paketpfadzeichenfolge empfängt, die den NULL-Abschlussator enthält.

Rückgabewert

Typ: LONG

Wenn die Funktion erfolgreich ist, gibt sie ERROR_SUCCESS zurück. Andernfalls gibt die Funktion einen Fehlercode zurück. Zu den möglichen Fehlercodes gehören die folgenden:

Rückgabecode Beschreibung
ERROR_INSUFFICIENT_BUFFER
Der im Pfad angegebene Puffer ist nicht groß genug, um die Daten aufzunehmen. Die erforderliche Größe wird durch pathLength angegeben.

Hinweise

Diese Funktion ist erfolgreich, wenn das Paket bereitgestellt wird, unabhängig vom Benutzerkontext oder wenn das Paket für den aktuellen Benutzer registriert ist.

Beispiele

#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;
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8.1 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile appmodel.h
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

GetStagedPackagePathByFullName2