Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ruft den Paketbezeichner (ID) für den angegebenen vollständigen Paketnamen ab.
Syntax
LONG PackageIdFromFullName(
[in] PCWSTR packageFullName,
[in] const UINT32 flags,
[in, out] UINT32 *bufferLength,
[out, optional] BYTE *buffer
);
Parameter
[in] packageFullName
Typ: PCWSTR
Der vollständige Name eines Pakets.
[in] flags
Typ: const UINT32
Die Paketkonstanten , die angeben, wie Paketinformationen abgerufen werden. Die PACKAGE_INFORMATION_* -Flags werden unterstützt.
[in, out] bufferLength
Typ: UINT32*
Bei der Eingabe die Größe des Puffers in Bytes. Bei der Ausgabe die Größe der zurückgegebenen Daten in Bytes.
[out, optional] buffer
Typ: BYTE*
Die Paket-ID, die als PACKAGE_ID-Struktur dargestellt wird.
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 |
|---|---|
|
Der Puffer ist nicht groß genug, um die Daten aufzunehmen. Die erforderliche Größe wird durch bufferLength angegeben. |
|
Das Paket wird für den Benutzer nicht installiert. |
Hinweise
Wenn FlagsPACKAGE_INFORMATION_BASIC angibt, werden die folgenden Felder abgerufen:
- name
- Processorarchitecture
- publisherId
- Ressourcen-ID
- version
- name
- Processorarchitecture
- publisher
- publisherId
- Ressourcen-ID
- version
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 FullNameToId(__in PCWSTR fullName, __in const UINT32 flags);
void ShowPackageId(__in const PACKAGE_ID * packageId);
int ShowUsage()
{
wprintf(L"Usage: PackageIdFromFullName <[flags]fullname> [<[flags]fullname>...]\n"
L"flags:\n"
L" ? = Basic information (PACKAGE_INFORMATION_BASIC)\n"
L" * = Full information (PACKAGE_INFORMATION_FULL)\n"
L"Default = Basic\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 flags = PACKAGE_INFORMATION_BASIC;
if (*fullName != L'\0')
{
if (*fullName == L'?')
{
flags = PACKAGE_INFORMATION_BASIC;
++fullName;
}
else if (*fullName == L'*')
{
flags = PACKAGE_INFORMATION_FULL;
++fullName;
}
}
FullNameToId(fullName, flags);
}
return 0;
}
void FullNameToId(__in PCWSTR fullName, __in const UINT32 flags)
{
wprintf(L"FullName: %s%s\n", fullName, ((flags & PACKAGE_INFORMATION_FULL) == 0 ? L" [BASIC]" : L" [FULL]"));
UINT32 length = 0;
LONG rc = PackageIdFromFullName(fullName, flags, &length, NULL);
if (rc == ERROR_SUCCESS)
{
wprintf(L"PackageIdFromFullName unexpected succeeded\n");
return;
}
else if (rc != ERROR_INSUFFICIENT_BUFFER)
{
wprintf(L"Error %d in PackageIdFromFullName\n", rc);
return;
}
BYTE * buffer = (PBYTE) malloc(length);
if (buffer == NULL)
{
wprintf(L"Error allocating memory\n");
return;
}
rc = PackageIdFromFullName(fullName, flags, &length, buffer);
if (rc != ERROR_SUCCESS)
wprintf(L"Error %d converting Package Full Name to Id\n", rc);
else
{
ShowPackageId((PACKAGE_ID *) buffer);
}
free(buffer);
}
void ShowPackageId(__in const PACKAGE_ID * packageId)
{
wprintf(L" Name : %s\n", packageId->name);
if (packageId->publisher != NULL)
wprintf(L" Publisher : %s\n", packageId->publisher);
if (packageId->publisherId != NULL)
wprintf(L" PublisherId : %s\n", packageId->publisherId);
wprintf(L" Version : %hu.%hu.%hu.%hu\n",
packageId->version.Major,
packageId->version.Minor,
packageId->version.Build,
packageId->version.Revision);
wprintf(L" Architecture: %u\n", packageId->processorArchitecture);
if (packageId->resourceId != NULL)
wprintf(L" Resource : %s\n", packageId->resourceId);
}
Anforderungen
| Anforderung | Wert |
|---|---|
| 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
PackageFamilyNameFromId-Funktion (appmodel.h)
PackageNameAndPublisherIdFromFamilyName-Funktion (appmodel.h)