aboutsummaryrefslogtreecommitdiff
path: root/c/common.h
diff options
context:
space:
mode:
authorJohn Ankarström <john@ankarstrom.se>2022-08-02 23:31:21 +0200
committerJohn Ankarström <john@ankarstrom.se>2022-08-02 23:31:21 +0200
commitedce20642b6d177ee9877775cbfa9e05ebb4e404 (patch)
treef37c2d7121b3de0491561a5bd33ecf004d3a67d2 /c/common.h
parentad4a1e4ac6b9452bb28936623035d01bb03f36f2 (diff)
downloadEpisodeBrowser-edce20642b6d177ee9877775cbfa9e05ebb4e404.tar.gz
Replace maybe_make.
It seems unnecessary to throw exceptions when simply checking whether a library exists.
Diffstat (limited to 'c/common.h')
-rw-r--r--c/common.h21
1 files changed, 2 insertions, 19 deletions
diff --git a/c/common.h b/c/common.h
index d908d12..0851bb6 100644
--- a/c/common.h
+++ b/c/common.h
@@ -5,12 +5,6 @@
#include <optional>
#include <windows.h>
-#ifdef UNICODE
-#define WA "W"
-#else
-#define WA "A"
-#endif
-
int EBMessageBox(const wchar_t* wszText, const wchar_t* wszCaption, unsigned uType);
int GetRelativeCursorPos(HWND hWnd, POINT* pt);
@@ -46,10 +40,12 @@ private:
struct Library
{
+ static std::optional<Library> Maybe(const wchar_t* lib);
Library(const wchar_t* lib);
~Library();
template <class T> T* GetProcAddress(const char* szProc);
private:
+ Library(HMODULE hModule);
HMODULE m_hModule;
};
@@ -65,19 +61,6 @@ inline int wszf(wchar_t (&buf)[N], const wchar_t* const fmt, T... xs)
return _snwprintf_s(buf, N, _TRUNCATE, fmt, xs...);
}
-/* Create and return an object of type C. If construction fails,
- * return nothing. The returned value must be checked before being
- * used, as dereferencing is undefined if the value is empty. */
-template <typename T, typename... U>
-std::optional<T> maybe_make(U... xs)
-{
- try {
- return T(xs...);
- } catch (...) {
- return {};
- }
-}
-
/* Variable template for caching values from GetSystemMetrics. */
template <int I>
auto Metric = GetSystemMetrics(I);