With this test, it filters Store apps (C++/Win32) =>
(as Admin ("requireAdministrator (/level='requireAdministrator')" in Manifest), I get 74 apps...)
PackageManager packageManager;
if (IsUserAnAdmin()) // #include <Shlobj.h>
{
int nCpt = 1;
for (const auto& package : packageManager.FindPackages())
{
try
{
auto nSignatureKind = package.SignatureKind();
auto hstrFamiliyName = package.Id().FamilyName();
if (nSignatureKind == PackageSignatureKind::Store && !package.IsFramework())
{
auto pwsDisplayName = package.DisplayName().c_str();
auto pwsFamiliyName = hstrFamiliyName.c_str();
WCHAR wsText[255] = L"";
wsprintf(wsText, L"Package n°%d\n", nCpt);
OutputDebugString(wsText);
wsprintf(wsText, L"\tDisplay Name : %s\n", pwsDisplayName);
OutputDebugString(wsText);
wsprintf(wsText, L"\tFamily Name : %s\n", pwsFamiliyName);
OutputDebugString(wsText);
nCpt++;
}
}
// Uncheck break on hresult_error in Debugger...
catch (winrt::hresult_error const& ex)
{
std::wstring wsError = std::to_wstring(ex.code().value);
auto pwsMessage = ex.message().c_str();
WCHAR wsText[255] = L"";
wsprintf(wsText, L"Error : %s (%s)\n", pwsMessage, wsError.c_str());
OutputDebugString(wsText);
}
}
}