Commit Graph

339 Commits

Author SHA1 Message Date
Simon Rozman
01adb60ded COM: Allow safearray_accessor with NULL SAFEARRAY
This allows accessor to be used in the parent scope before checking
SAFEARRAY for NULL.

Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-16 13:23:43 +01:00
Simon Rozman
e1d4e03831 COM: Allow SysAllocString(NULL)
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-16 13:22:57 +01:00
Simon Rozman
e432882d3b Declare handle::detach()
It's trivial and used at the point from which no C++ exceptions are
expected, as the handle is no longer a subject to RAAI.

Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-15 15:03:14 +01:00
Simon Rozman
f33010e6b6 COM: Add helper for SAFEARRAY creation
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-15 15:03:14 +01:00
Simon Rozman
b0cf45a0f1 Bump Copyright year
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-08 12:36:14 +01:00
Simon Rozman
460ace5928 Trim trailing whitespace
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-07 15:04:42 +01:00
Simon Rozman
f415b194b5 Update URLs after migration to codeberg.org
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-12-03 10:11:08 +01:00
Simon Rozman
f85047dab9 COM: Test rather than assert
We generally don't care when our functions are called with invalid
arguments (validation should be performed on arguments input, not every
use). However, we do use asserts to validate arguments in Debug builds.
Unfortunately, this makes Code Analysis unhappy in the Release builds.
Let's make an exception on this one, since the check is not expensive
compared to the rest of the function.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-11-19 10:44:14 +01:00
Simon Rozman
e553485d33 Add missing UTF-8 BOM
We want to ensure non-UTF8 configured Windows machines interpret our
source code correctly.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-11-11 12:24:22 +01:00
Simon Rozman
d807e150ba Stop using get_ptr after moved to stdex
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-10-01 16:38:14 +02:00
Simon Rozman
5b023215f5 Move get_ptr to stdex
This was migrated to stdex being platform independent.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-09-30 09:41:09 +02:00
Simon Rozman
8cca09a567 Mark GetUserNameExW as tested
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-09-23 14:55:29 +02:00
Simon Rozman
6dead076a2 Add missing SAL
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-04-22 13:54:44 +02:00
Simon Rozman
0559794633 Add last_error_saver
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-03-15 18:10:02 +01:00
Simon Rozman
9da457ab2b WinHTTP: Add WinHttpQueryHeaders
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-03-11 21:41:51 +01:00
Simon Rozman
5be20dde23 COM: Add helpers for VBARRAY creation
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-16 08:46:01 +01:00
Simon Rozman
6ca4c28f9c Fix typo in documentation
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-16 08:25:09 +01:00
Simon Rozman
f5de1accad Remove __vsnprintf to declutter global namespace
It is usual for WinStd to have A and W versions of the same function.
Why would vsnprintf be different?

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-09 21:49:09 +01:00
Simon Rozman
cbb221fce4 Use correct exception in WlanReasonCodeToString
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-09 20:07:31 +01:00
Simon Rozman
9d4cac5131 Add mutex_locker
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-09 20:07:30 +01:00
Simon Rozman
abd7189ec4 Fix single-byte version of vsnprintf()
Not defining our own vsnprintf() for char* strings made code switch to
C99 stdlib vsnprintf(), which is behaving differently than vsprintf()
expects.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-09 19:45:24 +01:00
Simon Rozman
bce73bc2ea Bump Copyright year
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-06 10:54:53 +01:00
Simon Rozman
19e2dbbe72 Win: Revise string zero termination
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-06 10:48:54 +01:00
Simon Rozman
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
Simon Rozman
49542a5f64 Refactor
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-12-21 09:19:52 +01:00
Simon Rozman
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
Simon Rozman
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
Simon Rozman
06b656e2ce Fix to compile as C++17
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-11-08 20:26:52 +01:00
Simon Rozman
8e323efef9 Resolve code analysis warnings
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-11-07 09:37:07 +01:00
Simon Rozman
512451ec0e Support for C++17
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-11-07 08:53:06 +01:00
Simon Rozman
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
Simon Rozman
b39aecb224 Fix FormatMessage helper functions
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-18 13:43:40 +02:00
Simon Rozman
f9090e02f4 Throw on 4G overflows
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-16 14:33:11 +02:00
Simon Rozman
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
Simon Rozman
f9f9aade69 Add clipboard_opener
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:50:35 +02:00
Simon Rozman
f8f8e7e76e Cleanup
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:50:20 +02:00
Simon Rozman
e0fc1ae56a Cleanup
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-06 15:57:36 +02:00
Simon Rozman
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
Simon Rozman
d99aedecc1 Add winstd::http
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-01 22:49:05 +02:00
Simon Rozman
c1bd614597 Add GetThreadPreferredUILanguages
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-01 22:48:33 +02:00
Simon Rozman
7637d86c7d Add winstd::mutex
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-01 22:48:07 +02:00
Simon Rozman
ca4e9d069f Cleanup
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-01 22:47:28 +02:00
Simon Rozman
40003c4054 COM: Improve bstr constructors
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-01 22:44:38 +02:00
Simon Rozman
0addbd825a icon: Add
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-07-03 13:54:46 +02:00
Simon Rozman
da8bd86d83 Add helpers for GlobalAlloc
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-08 11:14:03 +01:00
Simon Rozman
bf9ab7c4e2 Cleanup
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-08 09:48:03 +01:00
Simon Rozman
3698ca011a COM: Introduce SAFEARRAY helpers
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-08 09:48:02 +01:00
Simon Rozman
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
Simon Rozman
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
Simon Rozman
fc0060d3bd COM: Throw in constructors and operators
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-08 09:28:13 +01:00