1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
#include <Output.h>
#include <Main.h>
#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
|