diff options
author | John Ankarström <john@ankarstrom.se> | 2022-09-02 01:21:58 +0200 |
---|---|---|
committer | John Ankarström <john@ankarstrom.se> | 2022-09-02 01:21:58 +0200 |
commit | bb9280267bfb78a8d69adea02f5ed7894833b19d (patch) | |
tree | 7cda0c2d80afafb046790955711eb5af1582ebdc /c/main.cpp | |
parent | c624a89b4f1cccfefd60424a3181d76e4692fa4d (diff) | |
download | EpisodeBrowser-bb9280267bfb78a8d69adea02f5ed7894833b19d.tar.gz |
Improve Windows XP compatibility.
Various bug fixes.
Diffstat (limited to 'c/main.cpp')
-rw-r--r-- | c/main.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
@@ -60,8 +60,8 @@ FileView<ElvDataA> g_fvElv(L"elvdata.dat", g_cfg.cEp+128u); FileView<DlvDataA> g_fvDlv(L"dlvdata.dat", g_cfg.cEp+128u); /* Optional Windows functions. */ -BOOL (*IsThemeActive)(); -BOOL (*SetWindowTheme)(HWND, const wchar_t*, const wchar_t*); +BOOL (__stdcall *IsThemeActive)(); +HRESULT (__stdcall *SetWindowTheme)(HWND, const wchar_t*, const wchar_t*); /* Initialize important global state on parent window creation. */ static void InitializeMainWindow(HWND); @@ -157,16 +157,21 @@ void InitializeMainWindow(const HWND hWnd) /* Load normal font. */ if (auto lib = Library::Maybe(L"User32.dll"); lib && lib->GetProcAddress<void>("SystemParametersInfoW")) { - NONCLIENTMETRICS m = {sizeof(NONCLIENTMETRICS)}; - Require(SystemParametersInfoW(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &m, 0)); + NONCLIENTMETRICSW m = {sizeof(NONCLIENTMETRICSW)}; + +#if (WINVER >= 0x0600) + m.cbSize -= 4; +#endif + + Require(SystemParametersInfoW(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICSW), &m, 0)); g_hfNormal = Require(CreateFontIndirectW(&m.lfMessageFont)); } else g_hfNormal = static_cast<HFONT>(Require(GetStockObject(DEFAULT_GUI_FONT))); /* Load bold font. */ { - LOGFONT lf; - Require(GetObjectW(g_hfNormal, sizeof(LOGFONT), &lf)); + LOGFONTW lf; + Require(GetObjectW(g_hfNormal, sizeof(LOGFONTW), &lf)); lf.lfWeight = FW_BOLD; g_hfBold = Require(CreateFontIndirectW(&lf)); } |