annotate include/animone/util/win32.h @ 25:60ded877339b

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 1cfa7d57c022
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
1 #ifndef ANIMONE_ANIMONE_UTIL_WIN32_H_
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
2 #define ANIMONE_ANIMONE_UTIL_WIN32_H_
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
3
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
4 #include <windef.h>
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
5 #include <subauth.h>
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
6 #include <handleapi.h>
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
7
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
8 #include <memory>
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
9 #include <string>
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
10
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
11 namespace animone::internal::win32 {
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
12
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
13 struct HandleDeconstructor {
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
14 using pointer = HANDLE;
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
15 void operator()(pointer t) const { ::CloseHandle(t); };
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
16 };
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
17
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
18 using Handle = std::unique_ptr<HANDLE, HandleDeconstructor>;
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
19
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
20 /* ----------------------------------------------- */
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
21
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
22 std::string ToUtf8String(const std::wstring& string);
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
23 std::string ToUtf8String(const UNICODE_STRING& string);
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
24 std::wstring ToWstring(const std::string& string);
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
25
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
26 } // namespace animone::internal::win32
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 3
diff changeset
27
0
a76fa32bdc92 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents:
diff changeset
28 #endif // ANIMONE_ANIMONE_UTIL_WIN32_H_