From 7e96e72218e40a2fc3c49294d5156eb0e05b8e94 Mon Sep 17 00:00:00 2001 From: pixel Date: Thu, 22 Jan 2004 22:44:43 +0000 Subject: Having a cute patching system now --- PE/pepatch.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'PE/pepatch.cpp') diff --git a/PE/pepatch.cpp b/PE/pepatch.cpp index be67faf..80e6154 100644 --- a/PE/pepatch.cpp +++ b/PE/pepatch.cpp @@ -1,7 +1,51 @@ +#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 -- cgit v1.2.3