mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-11-12 14:31:00 +01:00
35 lines
877 B
C++
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();
|
|
}
|