mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-10-29 03:00:30 +01:00
45 lines
1.1 KiB
C++
45 lines
1.1 KiB
C++
extern "C" {
|
|
#include "font.h"
|
|
#include "common/font.h"
|
|
}
|
|
#include "util/windows/wmi.hpp"
|
|
|
|
#include <wchar.h>
|
|
|
|
extern "C"
|
|
void ffDetectFontImpl(const FFinstance* instance, FFFontResult* result)
|
|
{
|
|
wchar_t query[256] = {};
|
|
swprintf(query, 256, L"SELECT IconTitleFaceName, IconTitleSize FROM Win32_Desktop WHERE Name LIKE '%%\\\\%s'", instance->state.passwd->pw_name);
|
|
|
|
IEnumWbemClassObject* pEnumerator = ffQueryWmi(query, &result->error);
|
|
if(!pEnumerator)
|
|
return;
|
|
|
|
IWbemClassObject *pclsObj = NULL;
|
|
ULONG uReturn = 0;
|
|
|
|
pEnumerator->Next(WBEM_INFINITE, 1, &pclsObj, &uReturn);
|
|
|
|
if(uReturn == 0)
|
|
{
|
|
ffStrbufInitS(&result->error, "No WMI result returned");
|
|
pEnumerator->Release();
|
|
return;
|
|
}
|
|
|
|
FFstrbuf fontName;
|
|
ffStrbufInit(&fontName);
|
|
ffGetWmiObjString(pclsObj, L"IconTitleFaceName", &fontName);
|
|
|
|
uint64_t fontSize;
|
|
ffGetWmiObjUnsigned(pclsObj, L"IconTitleSize", &fontSize);
|
|
|
|
ffStrbufAppendF(&result->fonts[0], "%*s (%upt)", fontName.length, fontName.chars, (unsigned)fontSize);
|
|
|
|
ffStrbufDestroy(&fontName);
|
|
|
|
pclsObj->Release();
|
|
pEnumerator->Release();
|
|
}
|