master ohmu/fastfetch-openbsd / src / common / windows / variant.cpp
ohmu  ·  2026-10-15
 1#include "variant.hpp"
 2
 3#include <oleauto.h>
 4
 5FFWmiVariant::FFWmiVariant(std::initializer_list<PCWSTR> strings) : FFWmiVariant() {
 6    SAFEARRAYBOUND bound = {
 7        .cElements = (ULONG) strings.size(),
 8        .lLbound = 0,
 9    };
10    SAFEARRAY* psa = SafeArrayCreate(VT_BSTR, 1, &bound);
11
12    LONG i = 0;
13    for (PCWSTR str : strings) {
14        SafeArrayPutElement(psa, &i, bstr_t(str));
15        ++i;
16    }
17
18    this->vt = VT_ARRAY | VT_BSTR;
19    this->parray = psa;
20}