void* __stdcall RmGet(void* rm, int type) { MeasurePlugin* measure = (MeasurePlugin*)rm; switch (type) { case RMG_MEASURENAME: { return (void*)measure->GetName(); } case RMG_SKIN: { return (void*)measure->GetMeterWindow(); } case RMG_SETTINGSFILE: { return (void*)GetRainmeter().GetDataFile().c_str(); } case RMG_SKINNAME: { MeterWindow* window = measure->GetMeterWindow(); if (!window) break; return (void*)window->GetFolderPath().c_str(); } case RMG_SKINWINDOWHANDLE: { MeterWindow* window = measure->GetMeterWindow(); if (!window) break; return (void*)window->GetWindow(); } } return nullptr; }
// Deprecated! LPCWSTR PluginBridge(LPCWSTR command, LPCWSTR data) { if (command == nullptr || *command == L'\0') { return L"noop"; } NULLCHECK(data); if (_wcsicmp(command, L"GetConfig") == 0) { MeterWindow* meterWindow = GetRainmeter().GetMeterWindowByINI(data); if (meterWindow) { g_Buffer = L"\""; g_Buffer += meterWindow->GetFolderPath(); g_Buffer += L"\""; return g_Buffer.c_str(); } return L""; } else if (_wcsicmp(command, L"GetWindow") == 0) { std::vector<std::wstring> subStrings = CommandHandler::ParseString(data); if (subStrings.size() >= 1) { const std::wstring& config = subStrings[0]; MeterWindow* meterWindow = GetRainmeter().GetMeterWindow(config); if (meterWindow) { WCHAR buf1[64]; _snwprintf_s(buf1, _TRUNCATE, L"%lu", PtrToUlong(meterWindow->GetWindow())); g_Buffer = buf1; return g_Buffer.c_str(); } } return L"error"; } else if (_wcsicmp(command, L"GetVariable") == 0) { std::vector<std::wstring> subStrings = CommandHandler::ParseString(data); if (subStrings.size() >= 2) { const std::wstring& config = subStrings[0]; MeterWindow* meterWindow = GetRainmeter().GetMeterWindow(config); if (meterWindow) { const std::wstring& variable = subStrings[1]; const std::wstring* value = meterWindow->GetParser().GetVariable(variable); if (value) { return (*value).c_str(); } } } return L""; } else if (_wcsicmp(command, L"SetVariable") == 0) { std::vector<std::wstring> subStrings = CommandHandler::ParseString(data); if (subStrings.size() == 3) { MeterWindow* meterWindow = GetRainmeter().GetMeterWindow(subStrings[0]); if (meterWindow) { meterWindow->SetVariable(subStrings[1], subStrings[2]); return L"success"; } } return L"error"; } return L"noop"; }