/*---------------------------------------------------------*\ | wmi.h | | | | WMI interface functionality | | | | This file is part of the OpenRGB project | | SPDX-License-Identifier: GPL-2.0-only | \*---------------------------------------------------------*/ #pragma once #include #include #include #include #include #include #include #define WMI_WAIT_TIME 2000 /// Max time to wait for next object in when enumerating next object in wmi query in milliseconds #pragma comment(lib, "wbemuuid.lib") typedef std::map QueryObj; typedef std::map AdditionalFilters; typedef std::pair AdditionalFilter; // Wmi Base class class Wmi { public: Wmi(); ~Wmi(); // Initialises connection to WMI host static HRESULT init(); HRESULT query(std::string queryStr, std::vector& queryVectorOut, const AdditionalFilters* filters = nullptr); private: static IWbemLocator *pLoc; static IWbemServices *pSvc; };