Files
fastfetch/src/detection/kernel/kernel_windows.cpp
T

35 lines
877 B
C++

extern "C" {
#include "kernel.h"
}
#include "util/windows/wmi.hpp"
extern "C" void ffDetectKernel(FFinstance* instance, FFKernelResult* kernel)
{
FF_UNUSED(instance);
ffStrbufInit(&kernel->error);
ffStrbufInitS(&kernel->sysname, "Windows_NT");
ffStrbufInit(&kernel->release);
ffStrbufInit(&kernel->version);
IEnumWbemClassObject* pEnumerator = ffQueryWmi(L"SELECT Version FROM Win32_OperatingSystem", &kernel->error);
if(!pEnumerator)
return;
IWbemClassObject *pclsObj = NULL;
ULONG uReturn = 0;
if(FAILED(pEnumerator->Next(WBEM_INFINITE, 1, &pclsObj, &uReturn)) || uReturn == 0)
{
ffStrbufInitS(&kernel->error, "No WMI result returned");
pEnumerator->Release();
return;
}
ffGetWmiObjString(pclsObj, L"Version", &kernel->release);
pclsObj->Release();
pEnumerator->Release();
}