363 Commits

Author SHA1 Message Date
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
212ee66296 Simplify critical section creation
RIP Windows XP.

Reference: https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-initializecriticalsection
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-03-08 19:46:19 +01:00
7ef082ca26 UnitTests: Enable PREfast and code analysis
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-03-08 19:44:07 +01:00
9dc3af9797 UnitTests: Make independent Visual Studio solution
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-03-08 14:57:41 +01:00
64a0c07dd4 Create SECURITY.md
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-03-07 15:51:36 +01:00