#define RID_ICON 1 #define RID_XSAMPA 2 #define RID_INIT 3 #define RID_LOOSE 4 inline void GetMessageFont(LOGFONT &lf) { NONCLIENTMETRICS ncmMetrics = { sizeof(NONCLIENTMETRICS) }; SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, &ncmMetrics, 0); memcpy(&lf, &ncmMetrics.lfMessageFont, sizeof lf); } inline void TellError(LPWSTR title, HWND hwnd = NULL, DWORD error = (DWORD) -1) { LPTSTR message; if (error == (DWORD) -1) error = GetLastError(); if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, error, 0, (LPWSTR) &message, 0, NULL) == 0) { TCHAR str[25]; wsprintf(str, L"0x%x", error); MessageBox(hwnd, str, title, MB_ICONERROR); } else { MessageBox(hwnd, message, title, MB_ICONERROR); LocalFree(message); } }