19e2dbbe72
Win: Revise string zero termination
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-06 10:48:54 +01:00
9f5a68e789
Write directly into std::string buffer
...
This removes extra memory allocation.
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-05 23:35:19 +01:00
49542a5f64
Refactor
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-12-21 09:19:52 +01:00
e2a279f30f
Simplify UnmapViewOfFile_delete
...
No need to have it as a template. And array version is not required
either.
2023-12-08 14:23:26 +01:00
f778e698c9
COM: Make com_initializer constructors throw on error
...
This aligns the class with other COM classes (see com_obj) and makes
client code simpler as it does not need to check for error explicitly.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-12-08 10:09:47 +01:00
06b656e2ce
Fix to compile as C++17
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-11-08 20:26:52 +01:00
8e323efef9
Resolve code analysis warnings
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-11-07 09:37:07 +01:00
512451ec0e
Support for C++17
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-11-07 08:53:06 +01:00
16df7b86a1
sanitizing_allocator: fix zeroing memory when sizeof(T)>1
...
std::allocator<>::deallocate() second parameter is number of elements,
not array size!
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-11-07 08:50:04 +01:00
b39aecb224
Fix FormatMessage helper functions
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-18 13:43:40 +02:00
f9090e02f4
Throw on 4G overflows
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-16 14:33:11 +02:00
ff8136f708
Add load_msg_from_res and fmt_msg_from_res helpers
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-13 11:56:58 +02:00
f9f9aade69
Add clipboard_opener
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:50:35 +02:00
f8f8e7e76e
Cleanup
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:50:20 +02:00
e0fc1ae56a
Cleanup
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-06 15:57:36 +02:00
2680cdb3fd
Upgrade win_runtime_error and ws_runtime_error to include error message
...
Upper levels usually just catch std::exception and display what()
message to the user. Rather than requiring typed exception catching and
per-type user message synthesis, it's easier for upper levels if we
stuff the Windows/Winsock2 formatted error message at the end of the
string returned by what() and leave the catch (std::exception&) do the
magic.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-03 15:18:25 +02:00
d99aedecc1
Add winstd::http
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-01 22:49:05 +02:00
c1bd614597
Add GetThreadPreferredUILanguages
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-01 22:48:33 +02:00
7637d86c7d
Add winstd::mutex
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-01 22:48:07 +02:00
ca4e9d069f
Cleanup
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-01 22:47:28 +02:00
40003c4054
COM: Improve bstr constructors
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-01 22:44:38 +02:00
0addbd825a
icon: Add
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-07-03 13:54:46 +02:00
da8bd86d83
Add helpers for GlobalAlloc
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-08 11:14:03 +01:00
bf9ab7c4e2
Cleanup
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-08 09:48:03 +01:00
3698ca011a
COM: Introduce SAFEARRAY helpers
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-08 09:48:02 +01:00
31ebd9b08f
Make duplicate_internal() and other allocation methods throw
...
An exception can be way more elaborate why duplication failed and it
doesn't require consistent checking for result.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-08 09:28:13 +01:00
1d206602e6
com_obj: Add CoCreateInstance constructor
...
When using winstd::com_obj<> as a member of another class and we want
to create an instance of the object in another class' constructor, this
comes convenient.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-08 09:28:13 +01:00
fc0060d3bd
COM: Throw in constructors and operators
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-08 09:28:13 +01:00
12046216e9
Discontinue terminal punctuation in exception messages
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-06 16:04:56 +01:00
db23a5a984
Bump copyright year
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-12-29 11:09:06 +01:00
50552b73ed
Readme: Update Visual Studio version range
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-10-28 14:27:30 +02:00
9ff26e1422
MSBuild: Make switchable between VS2019 and VS2022
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-10-28 08:18:26 +02:00
963c2e44ac
Update MsiFormatRecord() SAL
...
Documentation says hInstall may be NULL "in which case only the record
field parameters are processed and properties are not available for
substitution."
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-10-18 09:32:03 +02:00
93b3157f31
Add PathRemoveBackslash()
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-10-17 16:03:24 +02:00
0fea2d1ed7
Add SetEntriesInAcl()
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-10-17 16:03:24 +02:00
ad2d67e680
Add AllocateAndInitializeSid()
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-10-17 16:03:07 +02:00
322ada3dd5
Add CoGetObject()
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-10-17 09:16:59 +02:00
bd5c1fdd9d
Add DuplicateTokenEx()
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-10-14 14:24:27 +02:00
3cf2e96b07
Cleanup
...
sizeof(BYTE), really?
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-10-14 14:04:33 +02:00
95fb94d828
Cleanup excessive memory allocation check
...
Operator new throws rather than returns NULL.
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-10-14 14:00:16 +02:00
a052c028b5
Add CreateWellKnownSid()
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-10-14 13:58:42 +02:00
f7c31329cd
Fix documentation
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-10-14 13:24:59 +02:00
28b70eedb8
Add winstd::system_impersonator
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-10-14 13:21:36 +02:00
539828dd2c
Update documentation
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-10-13 12:36:09 +02:00
1f0b8cdb6d
Cleanup
2022-10-03 19:43:47 +02:00
49b55331e4
Unify std::vector::data() typecasting
...
When used in place of void*, typecasting is redundant. In other
situations use reinterpret_cast<true type>() rather than C-style
typecasting.
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-05-05 13:37:30 +02:00
83c749e394
Add SC_HANDLE helper class
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-03-21 14:16:37 +01:00
7defbb8cab
Add SECURITY_ATTRIBUTES wrapper
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-03-10 14:51:29 +01:00
6a8310a9e7
Update documentation
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-03-10 14:50:44 +01:00
8244dea1a4
Split CredEnumerate to A and W variants
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-03-10 14:50:10 +01:00