// SPDX-FileCopyrightText: 2019-2024 Connor McLaughlin // SPDX-License-Identifier: CC-BY-NC-ND-4.0 #include "platform_misc.h" #include "common/error.h" #include "common/file_system.h" #include "common/log.h" #include "common/small_string.h" #include "common/string_util.h" #include #include #include #include "common/windows_headers.h" #include #include #include LOG_CHANNEL(PlatformMisc); static bool s_screensaver_suspended = false; static bool s_winsock_initialized = false; static std::once_flag s_winsock_initializer; bool PlatformMisc::InitializeSocketSupport(Error* error) { std::call_once( s_winsock_initializer, [](Error* error) { WSADATA wsa = {}; if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0) { Error::SetSocket(error, "WSAStartup() failed: ", WSAGetLastError()); return false; } s_winsock_initialized = true; std::atexit([]() { WSACleanup(); }); return true; }, error); return s_winsock_initialized; } bool PlatformMisc::SetWindowRoundedCornerState(void* window_handle, bool enabled, Error* error) { const DWM_WINDOW_CORNER_PREFERENCE value = enabled ? DWMWCP_DEFAULT : DWMWCP_DONOTROUND; const HRESULT hr = DwmSetWindowAttribute(static_cast(window_handle), DWMWA_WINDOW_CORNER_PREFERENCE, &value, sizeof(value)); if (FAILED(hr)) Error::SetHResult(error, "DwmSetWindowAttribute(DWMWA_WINDOW_CORNER_PREFERENCE) failed: ", hr); return SUCCEEDED(hr); }