|
|
struct _FORMATS_MEM_WIN { DWORD cBits; FMTTYPE fmtType; DWORD radix; DWORD fTwoFields; DWORD cchMax; PTSTR lpszDescription; };
extern _FORMATS_MEM_WIN g_FormatsMemWin[]; extern const int g_nMaxNumFormatsMemWin;
//
// Enum type and string identifier
//
extern struct _INTERFACE_TYPE_NAMES { INTERFACE_TYPE type; PTSTR psz; } rgInterfaceTypeNames[MaximumInterfaceType];
extern struct _BUS_TYPE_NAMES { BUS_DATA_TYPE type; PTSTR psz; } rgBusTypeNames[MaximumBusDataType];
struct GEN_MEMORY_DATA { MEMORY_TYPE memtype; int nDisplayFormat; ANY_MEMORY_DATA any; };
#define IDC_MEM_PREVIOUS 1234
#define IDC_MEM_NEXT 1235
class MEMWIN_DATA : public EDITWIN_DATA { public: char m_OffsetExpr[MAX_OFFSET_EXPR]; BOOL m_UpdateExpr; ULONG64 m_OffsetRead; GEN_MEMORY_DATA m_GenMemData; HWND m_FormatCombo; HWND m_PreviousButton; HWND m_NextButton; ULONG m_Columns; BOOL m_AllowWrite; BOOL m_UpdateValue; char m_ValueExpr[MAX_OFFSET_EXPR]; ULONG m_WindowDataSize;
MEMWIN_DATA();
virtual void Validate();
virtual BOOL HasEditableProperties(); virtual BOOL EditProperties();
virtual HRESULT ReadState(void);
virtual BOOL OnCreate(void); virtual LRESULT OnCommand(WPARAM wParam, LPARAM lParam); virtual void OnSize(void); virtual void OnTimer(WPARAM TimerId); virtual LRESULT OnNotify(WPARAM wParam, LPARAM lParam); virtual void OnUpdate(UpdateType Type);
virtual void UpdateColors(void);
void ScrollLower(void); void ScrollHigher(void); void WriteValue(ULONG64 Offset); void UpdateOptions(void); ULONG64 GetAddressOfCurValue( PULONG pCharIndex, CHARRANGE *pCRange ); }; typedef MEMWIN_DATA *PMEMWIN_DATA;
INT_PTR DisplayOptionsPropSheet( HWND hwndOwner, HINSTANCE hinst, MEMORY_TYPE memtypeStartPage );
#if 0
#define MAX_CHUNK_TOREAD 4096 // maximum chunk of memory to read at one go
LRESULT CALLBACK MemoryEditProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam );
/*
void ViewMem(int view, BOOL fVoidCache);
extern TCHAR memText[MAX_MSG_TXT]; //the selected text for memory dlg
*/
struct memItem { char iStart; char cch; char iFmt; };
struct memWinDesc { int iFormat; ATOM atmAddress; BOOL fLive; BOOL fHaveAddr; BOOL fBadRead; // dis we really read mem or just ??
PTSTR lpbBytes; memItem *lpMi; UINT cMi; BOOL fEdit; BOOL fFill; UINT cPerLine; //ADDR addr;
//ADDR orig_addr;
//ADDR old_addr;
TCHAR szAddress[MAX_MSG_TXT]; //the mem address expression in ascii
UINT cbRead; };
/*
extern struct memWinDesc MemWinDesc[MAX_VIEWS]; extern struct memWinDesc TempMemWinDesc;
//
// Define the set of memory formats
//
enum { MW_ASCII = 0, MW_BYTE, MW_SHORT, MW_SHORT_HEX, MW_SHORT_UNSIGNED, MW_LONG, MW_LONG_HEX, MW_LONG_UNSIGNED, MW_QUAD, MW_QUAD_HEX, MW_QUAD_UNSIGNED, MW_REAL, MW_REAL_LONG, MW_REAL_TEN }; */
#if 0
#define MEM_FORMATS {\
1, /* ASCII */ \ 1, /* BYTE */ \ 2, /* SHORT */ \ 2, /* SHORT_HEX */ \ 2, /* SHORT_UNSIGNED */ \ 4, /* LONG */ \ 4, /* LONG_HEX */ \ 4, /* LONG_UNSIGNED */ \ 8, /* QUAD */ \ 8, /* QUAD_HEX */ \ 8, /* QUAD_UNSIGNED */ \ 4, /* REAL */ \ 8, /* REAL_LONG */ \ 10, /* REAL_TEN */ \ 16 /* */ \ } #endif
#endif
|