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