Fungsi GetStagedPackagePathByFullName (appmodel.h)

Mendapatkan jalur paket bertahap yang ditentukan.

Sintaks

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

Parameter

[in] packageFullName

Jenis: PCWSTR

Nama lengkap paket bertahap.

[in, out] pathLength

Jenis: UINT32*

Pointer ke variabel yang menyimpan jumlah karakter (WCHARs) dalam string jalur paket, yang mencakup null-terminator.

Pertama Anda meneruskan NULL ke jalur untuk mendapatkan jumlah karakter. Anda menggunakan nomor ini untuk mengalokasikan ruang memori untuk jalur. Kemudian Anda meneruskan alamat ruang memori ini untuk mengisi jalur.

[out, optional] path

Jenis: PWSTR

Pointer ke ruang memori yang menerima string jalur paket, yang mencakup null-terminator.

Menampilkan nilai

Jenis: LONG

Jika fungsi berhasil, fungsi akan mengembalikan ERROR_SUCCESS. Jika tidak, fungsi mengembalikan kode kesalahan. Kode kesalahan yang mungkin mencakup yang berikut ini.

Menampilkan kode Deskripsi
ERROR_INSUFFICIENT_BUFFER
Buffer yang ditentukan oleh jalur tidak cukup besar untuk menyimpan data. Ukuran yang diperlukan ditentukan oleh pathLength.

Keterangan

Fungsi ini berhasil jika paket ditahapkan, terlepas dari konteks pengguna atau jika paket terdaftar untuk pengguna saat ini.

Contoh

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

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8.1 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2012 R2 [hanya aplikasi desktop]
Target Platform Windows
Header appmodel.h
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

GetStagedPackagePathByFullName2