Partager via


Fonction PackageFamilyNameFromFullName (appmodel.h)

Obtient le nom de famille de package pour le nom complet du package spécifié.

Syntaxe

LONG PackageFamilyNameFromFullName(
  [in]            PCWSTR packageFullName,
  [in, out]       UINT32 *packageFamilyNameLength,
  [out, optional] PWSTR  packageFamilyName
);

Paramètres

[in] packageFullName

Type : PCWSTR

Nom complet d’un package.

[in, out] packageFamilyNameLength

Type : UINT32*

En entrée, la taille de la mémoire tampon packageFamilyName , en caractères. Lors de la sortie, la taille du nom de famille de package renvoyée, en caractères, y compris le terminateur Null.

[out, optional] packageFamilyName

Type : PWSTR

Nom de la famille de package.

Valeur retournée

Type : LONG

Si la fonction réussit, elle retourne ERROR_SUCCESS. Sinon, la fonction retourne un code d’erreur. Les codes d’erreur possibles sont les suivants.

Code de retour Description
ERROR_INSUFFICIENT_BUFFER
La mémoire tampon n’est pas assez grande pour contenir les données. La taille requise est spécifiée par packageFamilyNameLength.

Remarques

Pour plus d’informations sur les limites de taille de chaîne, consultez Constantes d’identité.

Exemples

#define _UNICODE 1
#define UNICODE 1

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

int ShowUsage();
void FullNameToFamilyName(__in PCWSTR fullName);

int ShowUsage()
{
    wprintf(L"Usage: PackageFamilyNameFromFullName <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)
        FullNameToFamilyName(argv[i]);

    return 0;
}

void FullNameToFamilyName(__in PCWSTR fullName)
{
    wprintf(L"FullName: %s\n", fullName);
    UINT32 length = 0;
    LONG rc = PackageFamilyNameFromFullName(fullName, &length, NULL);
    if (rc == ERROR_SUCCESS)
    {
        wprintf(L"PackageFamilyNameFromFullName unexpectedly succeeded\n");
        return;
    }
    else if (rc != ERROR_INSUFFICIENT_BUFFER)
    {
        wprintf(L"Error %d in PackageFamilyNameFromFullName\n", rc);
        return;
    }

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

    rc = PackageFamilyNameFromFullName(fullName, &length, familyName);
    if (rc != ERROR_SUCCESS)
        wprintf(L"Error %d converting PackageFamilyName to FullName\n", rc);
    else
        wprintf(L"Package Family Name = %s\n", familyName);

    free(familyName);
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête appmodel.h
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

GetCurrentPackageFamilyName

GetPackageFamilyName

PackageFamilyNameFromId

PackageFullNameFromId

PackageIdFromFullName

PackageNameAndPublisherIdFromFamilyName