#include #include #include "pepatch-res.h" BOOL CALLBACK AboutDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) { Base::printm(M_STATUS, "AboutDlgProc: uMsg = %i (0x%x)\n", uMsg, uMsg); switch (uMsg) { case WM_COMMAND: switch (LOWORD(wParam)) { case IDCANCEL: DestroyWindow(hW); return TRUE; case IDOK: DestroyWindow(hW); return TRUE; } } return FALSE; } CODE_BEGINS virtual int startup() throw (GeneralException) { verbosity = M_INFO; HBITMAP bmp; Output * out = new Output("TestBmp.bmp"); char buffer[2048]; DWORD readed; DialogBox(0, MAKEINTRESOURCE(IDD_ABOUT), GetActiveWindow(), 0); // ShowWindow(CreateDialog(0, MAKEINTRESOURCE(IDD_ABOUT), GetActiveWindow(), AboutDlgProc), SW_SHOWDEFAULT); bmp = LoadBitmap(0, MAKEINTRESOURCE(IDB_AYA)); do { if (!ReadFile(bmp, buffer, 2048, &readed, 0)) { DWORD dwErrCode = GetLastError(); LPVOID lpMsgBuf; if (!FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language (LPTSTR) &lpMsgBuf, 0, NULL )) throw GeneralException("Gave up on reading CD: unknown error"); String errmsg = (LPCTSTR) lpMsgBuf; LocalFree(lpMsgBuf); throw GeneralException("Got error " + errmsg); } printm(M_INFO, "Read %i bytes\n", readed); out->write(buffer, readed); } while (readed != 0); return 0; } CODE_ENDS