Mercurial > minori
view dep/animone/include/animone/util/win32.h @ 342:adb79bdde329
dep/animone: fix tons of issues
for example, the window ID stuff was just... completely wrong. since we're
supporting multiple different window systems, it *has* to be a union rather
than just a single integer type. HWND is also not a DWORD, it's a pointer(!),
so now it's stored as a std::uintptr_t.
(this probably breaks things)
author | Paper <paper@paper.us.eu.org> |
---|---|
date | Thu, 20 Jun 2024 03:03:05 -0400 |
parents | 74e2365326c6 |
children |
line wrap: on
line source
#ifndef ANIMONE_ANIMONE_UTIL_WIN32_H_ #define ANIMONE_ANIMONE_UTIL_WIN32_H_ #include <windef.h> #include <subauth.h> #include <handleapi.h> #include <memory> #include <string> namespace animone::internal::win32 { struct HandleDeconstructor { using pointer = HANDLE; void operator()(pointer t) const { ::CloseHandle(t); }; }; using Handle = std::unique_ptr<HANDLE, HandleDeconstructor>; /* ----------------------------------------------- */ std::string ToUtf8String(const std::wstring& string); std::string ToUtf8String(const UNICODE_STRING& string); std::wstring ToWstring(const std::string& string); } // namespace animone::internal::win32 #endif // ANIMONE_ANIMONE_UTIL_WIN32_H_