diff options
author | John Ankarström <john@ankarstrom.se> | 2022-07-20 02:12:32 +0200 |
---|---|---|
committer | John Ankarström <john@ankarstrom.se> | 2022-07-20 02:12:32 +0200 |
commit | df42108d1f4c1628fe62874e48e87282fab6bc65 (patch) | |
tree | 76589bd39abd7ec180a9928d49325dbee5d2562b /c/main.cpp | |
parent | 4da9280a307ced3fab399d655b9d11330fc33bc4 (diff) | |
download | EpisodeBrowser-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.cpp | 38 |
1 files changed, 19 insertions, 19 deletions
@@ -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); |