in tools/ExeView/filllb.cpp [71:204]
BOOL FillLBWithNewExeHeader (HWND hWnd, PEXEINFO pExeInfo)
{
char szBuff[255];
PNEWEXE pne = &(pExeInfo->NewHdr);
LPSTR lp = (LPSTR)szBuff;
#define ADDITEM() SendMessage( hWnd, LB_ADDSTRING, 0, (LPARAM)lp )
SendMessage( hWnd, WM_SETREDRAW, 0, 0L );
SendMessage( hWnd, LB_RESETCONTENT, 0, 0L );
lstrcpy( lp, "New EXE Header Info" );
ADDITEM();
lstrcpy( lp, "---------------------------------------------------------------" );
ADDITEM();
if (pne->wFlags & LIBRARY)
wsprintf( lp, "Library:\t\t\t\t%s", GetModuleName(pExeInfo) );
else
wsprintf( lp, "Module:\t\t\t\t%s", GetModuleName(pExeInfo) );
ADDITEM();
wsprintf( lp, "Description:\t\t\t%s", GetModuleDescription(pExeInfo) );
ADDITEM();
wsprintf( lp, "Data:\t\t\t\t%s", GetExeDataType(pExeInfo) );
ADDITEM();
if (pne->bExeType == 0x02) // Windows EXE
wsprintf( lp, "Windows Version:\t\t\t%u.%u", HIBYTE(pne->wExpVersion),
LOBYTE(pne->wExpVersion) );
else
lp[0] = 0;
if (pne->wFlags & PMODEONLY)
lstrcat( lp, " (PMODE ONLY!)" );
ADDITEM();
lstrcpy( lp, "" );
ADDITEM();
wsprintf( lp, "Signature:\t\t\t%#04x", pne->wNewSignature );
ADDITEM();
wsprintf( lp, "Linker Version:\t\t\t%#04x", pne->cLinkerVer );
ADDITEM();
wsprintf( lp, "Linker Revision:\t\t\t%#04x", pne->cLinkerRev );
ADDITEM();
wsprintf( lp, "Entry Table Offset:\t\t%#04X", pne->wEntryOffset );
ADDITEM();
wsprintf( lp, "Entry Table Length:\t\t%#04X", pne->wEntrySize );
ADDITEM();
wsprintf(lp,"Checksum:\t\t\t%#08lX", pne->lChecksum );
ADDITEM();
wsprintf(lp,"Module Flags:\t\t\t%#04X", pne->wFlags );
ADDITEM();
wsprintf( lp, "DGROUP:\t\t\t\tseg %#04X", pne->wAutoDataSegment );
ADDITEM();
wsprintf( lp, "Heap Size:\t\t\t%#04X", pne->wHeapInit );
ADDITEM();
wsprintf( lp, "Stack Size:\t\t\t%#04X", pne->wStackInit );
ADDITEM();
wsprintf( lp, "Inital CS:IP:\t\t\tseg %#04X offset %#04x",
pne->wCSInit, pne->wIPInit);
ADDITEM();
wsprintf( lp, "Inital SS:SP:\t\t\tseg %#04X offset %#04x",
pne->wSSInit, pne->wSPInit);
ADDITEM();
wsprintf( lp, "Entries in Segment Table:\t\t%#04X", pne->wSegEntries );
ADDITEM();
wsprintf( lp, "Entries in Module Table:\t\t%#04X", pne->wModEntries );
ADDITEM();
wsprintf( lp, "Non-Resident Name Table Size:\t%#04X", pne->wNonResSize );
ADDITEM();
wsprintf( lp, "Segment Table Offset:\t\t%#04X", pne->wSegOffset );
ADDITEM();
wsprintf( lp, "Resource Table Offset:\t\t%#04X", pne->wResourceOffset );
ADDITEM();
wsprintf( lp, "Resident Name Table Offset:\t%#04X", pne->wResOffset );
ADDITEM();
wsprintf( lp, "Module Table Offset:\t\t%#04X", pne->wModOffset );
ADDITEM();
wsprintf( lp, "Imported Name Table Offset:\t%#04X", pne->wImportOffset );
ADDITEM();
wsprintf( lp, "Non-Resident Name Table Offset:\t%#08lX", pne->lNonResOffset );
ADDITEM();
wsprintf( lp, "Moveable entries:\t\t\t%#04X", pne->wMoveableEntry );
ADDITEM();
wsprintf( lp, "Alignment Shift Count:\t\t%#04X", pne->wAlign );
ADDITEM();
wsprintf( lp, "Resource Segments:\t\t%#04X", pne->wResourceSegs );
ADDITEM();
wsprintf( lp, "Executable Type:\t\t\t%#04X", pne->bExeType );
ADDITEM();
wsprintf( lp, "Additional Flags:\t\t\t%#04X", pne->bAdditionalFlags );
ADDITEM();
wsprintf( lp, "Fast Load Offset:\t\t\t%#04X", pne->wFastOffset );
ADDITEM();
wsprintf( lp, "Fast Load Length:\t\t\t%#04X", pne->wFastSize );
ADDITEM();
SendMessage( hWnd, WM_SETREDRAW, 1, 0L );
InvalidateRect( hWnd, NULL, TRUE );
UpdateWindow( hWnd );
return TRUE;
} //*** FillLBNewExeInfo