Partager via


GetCurrentPackageFamilyName, fonction (appmodel.h)

Obtient le nom de la famille de packages pour le processus appelant.

Syntaxe

LONG GetCurrentPackageFamilyName(
  [in, out]       UINT32 *packageFamilyNameLength,
  [out, optional] PWSTR  packageFamilyName
);

Paramètres

[in, out] packageFamilyNameLength

Type : UINT32*

Lors de l’entrée, la taille de la mémoire tampon packageFamilyName, en caractères, y compris le terminateur Null. En sortie, la taille du nom de la famille de packages retournée, en caractères, y compris le point de terminaison Null.

[out, optional] packageFamilyName

Type : PWSTR

Nom de la famille de packages.

Valeur de retour

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.

Retourner le code Description
APPMODEL_ERROR_NO_PACKAGE
Le processus n’a pas d’identité de package.
ERROR_INSUFFICIENT_BUFFER
La mémoire tampon n’est pas suffisamment 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 Identity.

Exemples

#define _UNICODE 1
#define UNICODE 1

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

int __cdecl wmain()
{
    UINT32 length = 0;
    LONG rc = GetCurrentPackageFamilyName(&length, NULL);
    if (rc != ERROR_INSUFFICIENT_BUFFER)
    {
        if (rc == APPMODEL_ERROR_NO_PACKAGE)
            wprintf(L"Process has no package identity\n");
        else
            wprintf(L"Error %d in GetCurrentPackageFamilyName\n", rc);
        return 1;
    }

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

    rc = GetCurrentPackageFamilyName(&length, familyName);
    if (rc != ERROR_SUCCESS)
    {
        wprintf(L"Error %d retrieving PackageFamilyName\n", rc);
        return 3;
    }
    wprintf(L"%s\n", familyName);

    free(familyName);

    return 0;
}

Exigences

Exigence Valeur
client minimum pris en charge Windows 8 [applications de bureau uniquement]
serveur minimum pris en charge Windows Server 2012 [applications de bureau uniquement]
plateforme cible Windows
d’en-tête appmodel.h
bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

GetCurrentPackageFullName

GetCurrentPackageId

GetCurrentPackageInfo

getCurrentPackagePath

GetPackageFamilyName

PackageFamilyNameFromFullName

PackageFamilyNameFromId