summaryrefslogtreecommitdiff
path: root/PE/pepatch.cpp
blob: 18e11dd3e8a738813943feefd744ded30b94718e (plain)
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