aboutsummaryrefslogtreecommitdiff
path: root/c/main.cpp
diff options
context:
space:
mode:
authorJohn Ankarström <john@ankarstrom.se>2022-07-20 02:12:32 +0200
committerJohn Ankarström <john@ankarstrom.se>2022-07-20 02:12:32 +0200
commitdf42108d1f4c1628fe62874e48e87282fab6bc65 (patch)
tree76589bd39abd7ec180a9928d49325dbee5d2562b /c/main.cpp
parent4da9280a307ced3fab399d655b9d11330fc33bc4 (diff)
downloadEpisodeBrowser-df42108d1f4c1628fe62874e48e87282fab6bc65.tar.gz
Fix bug in and rename throw_nil, warn_nil.
In warn_nil, the return value was undefined on exception -- I think. While informative, the names throw_nil and warn_nil don't work very well in conditionals: if (warn_nil<f>(...)) g(); sounds like g should be called if f returns nil and a warning is issued. But it is actually the other way around; g is called if f is successful. if (prefer<f>(...)) g(); sounds less like that.
Diffstat (limited to 'c/main.cpp')
-rw-r--r--c/main.cpp38
1 files changed, 19 insertions, 19 deletions
diff --git a/c/main.cpp b/c/main.cpp
index f9bdced..1a50c6f 100644
--- a/c/main.cpp
+++ b/c/main.cpp
@@ -89,10 +89,10 @@ int WINAPI WinMain(const HINSTANCE hInstance, const HINSTANCE, char* const, cons
INITCOMMONCONTROLSEX icc;
icc.dwSize = sizeof(icc);
icc.dwICC = ICC_WIN95_CLASSES;
- throw_nil<InitCommonControlsEx>(&icc);
+ require<InitCommonControlsEx>(&icc);
- g_hPopupMenu = throw_nil<LoadMenu>((HINSTANCE)NULL, MAKEINTRESOURCE(IDR_POPUPMENU));
- g_hPopupMenu = throw_nil<GetSubMenu>(g_hPopupMenu, 0);
+ g_hPopupMenu = require<LoadMenu>((HINSTANCE)NULL, MAKEINTRESOURCE(IDR_POPUPMENU));
+ g_hPopupMenu = require<GetSubMenu>(g_hPopupMenu, 0);
WNDCLASSEX wc;
memset(&wc, 0, sizeof(WNDCLASSEX));
@@ -105,23 +105,23 @@ int WINAPI WinMain(const HINSTANCE hInstance, const HINSTANCE, char* const, cons
wc.lpszMenuName = MAKEINTRESOURCE(IDR_MENU);
wc.lpszClassName = TEXT("Episode Browser");
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
- throw_nil<RegisterClassEx>(&wc);
+ require<RegisterClassEx>(&wc);
/* Create window. A CBT hook is used to initialize important
* global variables before any messages are sent to the new
* window. It is vital that the hook is set up correctly. */
- const HHOOK hHook = throw_nil<SetWindowsHookEx>(WH_CBT, CBTProc,
+ const HHOOK hHook = require<SetWindowsHookEx>(WH_CBT, CBTProc,
(HINSTANCE)NULL, GetCurrentThreadId());
- const HWND hWnd = throw_nil<CreateWindowEx>(
+ const HWND hWnd = require<CreateWindowEx>(
0,
TEXT("Episode Browser"),
TEXT("Episode Browser"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 0, 0,
(HWND)NULL, (HMENU)NULL, hInstance, (void*)NULL);
- throw_nil<UnhookWindowsHookEx>(hHook);
+ require<UnhookWindowsHookEx>(hHook);
- g_hWndStatus = throw_nil<CreateWindowEx>(
+ g_hWndStatus = require<CreateWindowEx>(
0,
STATUSCLASSNAME,
(const TCHAR*)NULL,
@@ -171,17 +171,17 @@ static LRESULT CALLBACK CBTProc(const int nCode, const WPARAM wParam, const LPAR
if (opLib->GetProcAddress<void>("SystemParametersInfo" WA)) {
NONCLIENTMETRICS m;
m.cbSize = sizeof(NONCLIENTMETRICS);
- throw_nil<SystemParametersInfo>(SPI_GETNONCLIENTMETRICS,
+ require<SystemParametersInfo>(SPI_GETNONCLIENTMETRICS,
sizeof(NONCLIENTMETRICS), &m, 0);
- g_hfNormal = throw_nil<CreateFontIndirect>(&m.lfMessageFont);
+ g_hfNormal = require<CreateFontIndirect>(&m.lfMessageFont);
}
} else
- g_hfNormal = static_cast<HFONT>(throw_nil<GetStockObject>(DEFAULT_GUI_FONT));
+ g_hfNormal = static_cast<HFONT>(require<GetStockObject>(DEFAULT_GUI_FONT));
LOGFONT lf;
- throw_nil<GetObject>(g_hfNormal, sizeof(LOGFONT), &lf);
+ require<GetObject>(g_hfNormal, sizeof(LOGFONT), &lf);
lf.lfWeight = FW_BOLD;
- g_hfBold = throw_nil<CreateFontIndirect>(&lf);
+ g_hfBold = require<CreateFontIndirect>(&lf);
/* Create child windows. */
g_pDlv = new DataListView(g_hWnd);
@@ -237,7 +237,7 @@ LRESULT CALLBACK WndProc(const HWND hWnd, const UINT uMsg, const WPARAM wParam,
{
const RECT* const lpr = (RECT*)lParam;
g_iDPI = HIWORD(wParam);
- warn_nil<SetWindowPos>(hWnd, (HWND)NULL,
+ prefer<SetWindowPos>(hWnd, (HWND)NULL,
lpr->left, lpr->top,
lpr->right-lpr->left,
lpr->bottom-lpr->top,
@@ -280,7 +280,7 @@ LRESULT CALLBACK WndProc(const HWND hWnd, const UINT uMsg, const WPARAM wParam,
TEXT("")));
} else {
i = 0;
- warn_nil<KillTimer>(hWnd, IDT_TIMER);
+ prefer<KillTimer>(hWnd, IDT_TIMER);
g_pElv->Update();
}
break;
@@ -302,8 +302,8 @@ LRESULT CALLBACK WndProc(const HWND hWnd, const UINT uMsg, const WPARAM wParam,
case IDM_FILE_FETCH_SCREENWRITERS:
if (g_bThread) break;
Pl("episode_data","thread_create","update_screenwriters",&g_aThread);
- t: warn_nil<KillTimer>(hWnd, IDT_TIMER);
- if (!SetTimer(hWnd, IDT_TIMER, 500, (TIMERPROC)NULL)) break;
+ t: KillTimer(hWnd, IDT_TIMER);
+ if (!prefer<SetTimer>(hWnd, IDT_TIMER, 500, (TIMERPROC)NULL)) break;
SendMessage(g_hWndStatus, SB_SETTEXT, MAKEWPARAM(1,0), (LPARAM)TEXT("."));
g_bThread = 1;
break;
@@ -514,14 +514,14 @@ void UpdateLayout()
/* Resize data list view. */
cyDlv = rc.bottom-yStatus-g_pDlv->Height();
- throw_nil<MoveWindow>(g_pDlv->hWnd, 0, cyDlv, rc.right, rc.bottom-yStatus-cyDlv, TRUE);
+ require<MoveWindow>(g_pDlv->hWnd, 0, cyDlv, rc.right, rc.bottom-yStatus-cyDlv, TRUE);
ListView_SetColumnWidth(g_pDlv->hWnd, DLVSIKEY, LVSCW_AUTOSIZE);
cxColumn = ListView_GetColumnWidth(g_pDlv->hWnd, 0)+4;
ListView_SetColumnWidth(g_pDlv->hWnd, DLVSIKEY, cxColumn);
ListView_SetColumnWidth(g_pDlv->hWnd, DLVSIVALUE, rc.right-cxColumn-cxVScroll-4);
/* Resize episode list view. */
- throw_nil<MoveWindow>(g_pElv->hWnd, 0, 0, rc.right, cyDlv+1, TRUE);
+ require<MoveWindow>(g_pElv->hWnd, 0, 0, rc.right, cyDlv+1, TRUE);
ListView_SetColumnWidth(g_pElv->hWnd, ELVSIEPISODE, LVSCW_AUTOSIZE);
cxColumn = ListView_GetColumnWidth(g_pElv->hWnd, ELVSIEPISODE)+4;
ListView_SetColumnWidth(g_pElv->hWnd, ELVSIEPISODE, cxColumn);