Initial
This commit is contained in:
112
hookproc/EXCPTDLG.HPP
Normal file
112
hookproc/EXCPTDLG.HPP
Normal file
@@ -0,0 +1,112 @@
|
||||
#ifndef _HOOKPROC_EXCEPTDIALOG_HPP_
|
||||
#define _HOOKPROC_EXCEPTDIALOG_HPP_
|
||||
#ifndef _COMMON_WINDOWS_HPP_
|
||||
#include <common/windows.hpp>
|
||||
#endif
|
||||
#ifndef _COMMON_FONT_HPP_
|
||||
#include <common/font.hpp>
|
||||
#endif
|
||||
#ifndef _DIALOG_DYNAMICDIALOG_HPP_
|
||||
#include <dialog/dyndlg.hpp>
|
||||
#endif
|
||||
#ifndef _DECODE_DISASSEMBLER_HPP_
|
||||
#include <decode/disasm.hpp>
|
||||
#endif
|
||||
#ifndef _DEBUG_EXCEPTIONRECORD_HPP_
|
||||
#include <debug/except.hpp>
|
||||
#endif
|
||||
#ifndef _DEBUG_CONTEXT_HPP_
|
||||
#include <debug/context.hpp>
|
||||
#endif
|
||||
|
||||
class ExceptDlg : public DynamicDialog
|
||||
{
|
||||
public:
|
||||
ExceptDlg(void);
|
||||
virtual ~ExceptDlg();
|
||||
WORD performDialog(const ExceptionRecord &exceptionRecord,const Context &exceptionContext);
|
||||
DWORD eax(void)const;
|
||||
void eax(DWORD eax);
|
||||
DWORD ebx(void)const;
|
||||
void ebx(DWORD ebx);
|
||||
DWORD ecx(void)const;
|
||||
void ecx(DWORD ecx);
|
||||
DWORD edx(void)const;
|
||||
void edx(DWORD edx);
|
||||
DWORD esi(void)const;
|
||||
void esi(DWORD esi);
|
||||
DWORD edi(void)const;
|
||||
void edi(DWORD edi);
|
||||
DWORD esp(void)const;
|
||||
void esp(DWORD esp);
|
||||
DWORD ebp(void)const;
|
||||
void ebp(DWORD ebp);
|
||||
DWORD eip(void)const;
|
||||
void eip(DWORD eip);
|
||||
WORD ds(void)const;
|
||||
void ds(WORD ds);
|
||||
WORD es(void)const;
|
||||
void es(WORD es);
|
||||
WORD fs(void)const;
|
||||
void fs(WORD fs);
|
||||
WORD gs(void)const;
|
||||
void gs(WORD gs);
|
||||
WORD cs(void)const;
|
||||
void cs(WORD cs);
|
||||
WORD ss(void)const;
|
||||
void ss(WORD ss);
|
||||
BOOL signFlag(void)const;
|
||||
void signFlag(BOOL signFlag);
|
||||
BOOL carryFlag(void)const;
|
||||
void carryFlag(BOOL carryFlag);
|
||||
BOOL overflowFlag(void)const;
|
||||
void overflowFlag(BOOL overflowFlag);
|
||||
BOOL zeroFlag(void)const;
|
||||
void zeroFlag(BOOL zeroFlag);
|
||||
BOOL parityFlag(void)const;
|
||||
void parityFlag(BOOL parityFlag);
|
||||
BOOL auxiliaryFlag(void)const;
|
||||
void auxiliaryFlag(BOOL auxiliaryFlag);
|
||||
BOOL directionFlag(void)const;
|
||||
void directionFlag(BOOL directionFlag);
|
||||
BOOL interruptFlag(void)const;
|
||||
void interruptFlag(BOOL interruptFlag);
|
||||
void clear(void);
|
||||
protected:
|
||||
virtual WORD dlgCode(CallbackData &someCallbackData);
|
||||
virtual WORD dlgCommand(DWORD commandID,CallbackData &someCallbackData);
|
||||
virtual BOOL dlgInitDialog(CallbackData &someCallbackData);
|
||||
virtual void dlgDestroyDialog(CallbackData &someCallbackData);
|
||||
private:
|
||||
enum {EditControlID=200,MaxDecodeBytes=96};
|
||||
enum {DebugEAX=500,DebugEBX=501,DebugECX=502,DebugEDX=503,DebugESI=504,DebugEDI=505,DebugESP=506,
|
||||
DebugEBP=507,DebugDS=508,DebugES=509,DebugFS=510,DebugGS=511,DebugCS=512,DebugSS=513,
|
||||
DebugEIP=514,DebugFlagsSign=515,DebugFlagsCarry=516,DebugFlagsOverflow=517,DebugFlagsZero=518,
|
||||
DebugFlagsParity=519,DebugFlagsAuxiliary=520,DebugFlagsDirection=521,DebugFlagsInterrupt=522};
|
||||
ExceptDlg(const ExceptDlg &loginDialog);
|
||||
void showException(DWORD exceptionAddress);
|
||||
void showContext(void);
|
||||
|
||||
DisAssembler mDisAssembler;
|
||||
ExceptionRecord mExceptionRecord;
|
||||
Context mExceptionContext;
|
||||
Font mEditFont;
|
||||
};
|
||||
|
||||
inline
|
||||
ExceptDlg::ExceptDlg(void)
|
||||
: mEditFont("MS LineDraw",-8,Font::PitchFixed|Font::WeightBold)
|
||||
{
|
||||
}
|
||||
|
||||
inline
|
||||
ExceptDlg::ExceptDlg(const ExceptDlg &/*argDialog*/)
|
||||
{
|
||||
}
|
||||
|
||||
inline
|
||||
ExceptDlg::~ExceptDlg()
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user