PackageNameAndPublisherIdFromFamilyName-Funktion (appmodel.h)

Ruft den Paketnamen und den Herausgeberbezeichner (ID) für den angegebenen Paketfamiliennamen ab.

Syntax

LONG PackageNameAndPublisherIdFromFamilyName(
  [in]            PCWSTR packageFamilyName,
  [in, out]       UINT32 *packageNameLength,
  [out, optional] PWSTR  packageName,
  [in, out]       UINT32 *packagePublisherIdLength,
  [out, optional] PWSTR  packagePublisherId
);

Parameter

[in] packageFamilyName

Typ: PCWSTR

Der Familienname eines Pakets.

[in, out] packageNameLength

Typ: UINT32*

Bei Eingaben wird die Größe des PackageName-Puffers in Zeichen angezeigt. Bei der Ausgabe wird die Größe des zurückgegebenen Paketnamens in Zeichen, einschließlich des Null-Terminators, zurückgegeben.

[out, optional] packageName

Typ: PWSTR

Der Paketname.

[in, out] packagePublisherIdLength

Typ: UINT32*

Bei Eingaben wird die Größe des PackagePublishId-Puffers in Zeichen angezeigt. Bei der Ausgabe wird die Größe der zurückgegebenen Herausgeber-ID in Zeichen, einschließlich des Null-Terminators, zurückgegeben.

[out, optional] packagePublisherId

Typ: PWSTR

Die Paket-Herausgeber-ID.

Rückgabewert

Typ: LONG

Wenn die Funktion erfolgreich ist, wird ERROR_SUCCESS zurückgegeben. Andernfalls gibt die Funktion einen Fehlercode zurück. Die möglichen Fehlercodes enthalten Folgendes.

Rückgabecode Beschreibung
ERROR_INSUFFICIENT_BUFFER
Einer der Puffer ist nicht groß genug, um die Daten zu halten. Die erforderlichen Größen werden durch packageNameLength und packagePublisherIdLength angegeben.

Bemerkungen

Informationen zu Zeichenfolgengrößenbeschränkungen finden Sie unter Identitätskonstanten.

Beispiele

#define _UNICODE 1
#define UNICODE 1

#include <Windows.h>
#include <appmodel.h>
#include <malloc.h>
#include <stdio.h>

int ShowUsage();
void FamilyNameToNameAndPublisherId(__in PCWSTR familyName);

int ShowUsage()
{
    wprintf(L"Usage: PackageNameAndPublisherIdFromFamilyName <familyname> [<familyname>...]\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)
        FamilyNameToNameAndPublisherId(argv[i]);

    return 0;
}

void FamilyNameToNameAndPublisherId(__in PCWSTR familyName)
{
    wprintf(L"FamilyName: %s\n", familyName);
    UINT32 nameLength = 0;
    UINT32 publisherIdLength = 0;
    LONG rc = PackageNameAndPublisherIdFromFamilyName(familyName, &nameLength, NULL, &publisherIdLength, NULL);
    if (rc == ERROR_SUCCESS)
    {
        wprintf(L"PackageNameAndPublisherIdFromFamilyName unexpectedly succeeded\n");
        return;
    }
    else if (rc != ERROR_INSUFFICIENT_BUFFER)
    {
        wprintf(L"Error %d in PackageNameAndPublisherIdFromFamilyName\n", rc);
        return;
    }

    PWSTR name = (PWSTR) malloc(nameLength * sizeof(WCHAR));
    if (name == NULL)
    {
        wprintf(L"Error allocating memory\n");
        return;
    }

    PWSTR publisherId = (PWSTR) malloc(publisherIdLength * sizeof(WCHAR));
    if (publisherId == NULL)
    {
        wprintf(L"Error allocating memory\n");
        free(name);
        return;
    }

    rc = PackageNameAndPublisherIdFromFamilyName(familyName, &nameLength, name, &publisherIdLength, publisherId);
    if (rc != ERROR_SUCCESS)
        wprintf(L"Error %d converting PackageFamilyName to Name and PublisherId\n", rc);
    else
    {
        wprintf(L"        Name = %s\n", name);
        wprintf(L"Publisher Id = %s\n", publisherId);
    }

    free(name);
    free(publisherId);
}

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 8 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile appmodel.h
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

PackageFamilyNameFromFullName

PackageFamilyNameFromId

PackageFullNameFromId

PackageIdFromFullName