#include #pragma hdrstop #define STRING(x) x[0]?x:"(empty string in .pif file)" int __cdecl main( int argc, char *argv[]) { HFILE hFile; STDPIF stdpif; PIFEXTHDR pifexthdr; LONG cbRead; CHAR szTemp[ 512 ]; memset( &stdpif, 0, sizeof(stdpif) ); if (argc!=2) { printf("usage: pifdump filename.pif\n" ); return(1); } hFile = _lopen( argv[1], OF_READ ); if (hFile == HFILE_ERROR) { printf( "pifdump: unable to open file %s, err %d\n", argv[1], GetLastError() ); return(1); } _lread( hFile, &stdpif, sizeof(stdpif) ); printf( "\n===== Dump of PIF file (%s) =====\n\n", argv[1] ); printf( "[Standard PIF Data]\n" ); printf( " unknown = 0x%02X\n", stdpif.unknown ); printf( " id = 0x%02X\n", stdpif.id ); printf( " appname = %s\n", STRING(stdpif.appname) ); printf( " maxmem = 0x%04X\n", stdpif.maxmem ); printf( " minmem = 0x%04X\n", stdpif.minmem ); printf( " startfile = %s\n", STRING(stdpif.startfile) ); printf( " MSflags = 0x%02X\n", stdpif.MSflags ); if (stdpif.MSflags & fResident) printf( " [fResident is set ==> directly modifies memory]\n", fResident ); if (stdpif.MSflags & fGraphics) printf( " [fGraphics is set ==> screen exchange: graphics/text]\n", fGraphics ); if (stdpif.MSflags & fNoSwitch) printf( " [fNoSwitch is set ==> program switch: prevent]\n", fNoSwitch ); if (stdpif.MSflags & fNoGrab) printf( " [fNoGrab is set ==> screen exchange: none]\n", fNoGrab ); if (stdpif.MSflags & fDestroy) printf( " [fDestroy is set ==> close window on exit]\n", fDestroy ); if (stdpif.MSflags & fCOM1) printf( " [fCOM1 is set ==> directly modifies: COM1]\n", fCOM1 ); if (stdpif.MSflags & fCOM2) printf( " [fCOM2 is set ==> directly modifies: COM2]\n", fCOM2 ); printf( " reserved = 0x%02X\n", stdpif.reserved ); printf( " defpath = %s\n", STRING(stdpif.defpath) ); printf( " params = %s\n", STRING(stdpif.params) ); printf( " cPages = 0x%02X (should always be 0x01!)\n", stdpif.cPages ); printf( " lowVector = 0x%02X (should always be 0x00!)\n", stdpif.lowVector ); printf( " highVector = 0x%02X (should always be 0xFF!)\n", stdpif.highVector ); printf( " rows = 0x%02X (not used)\n", stdpif.rows ); printf( " cols = 0x%02X (not used)\n", stdpif.cols ); printf( " rowoff = 0x%02X (not used)\n", stdpif.rowoff ); printf( " coloff = 0x%02X (not used)\n", stdpif.coloff ); printf( " sysmem = 0x%04X (not used)\n", stdpif.sysmem ); printf( " behavior = 0x%02X\n", stdpif.behavior); if (stdpif.behavior & fScreen) printf( " [fScreen (0x%02X) is set ==> directly modifies screen]\n", fScreen ); if (stdpif.behavior & fForeground) printf( " [fForeground (0x%02X) is set ==> Set same as fScreen (alias)]\n", fForeground ); if (stdpif.behavior & f8087) printf( " [f8087 (0x%02X) is set ==> No PIFEDIT control]\n", f8087 ); if (stdpif.behavior & fKeyboard) printf( " [fKeyboard (0x%02X) is set ==> directly modifies keyboard]\n", fKeyboard ); printf( " sysflags = 0x%02X\n", stdpif.sysflags); // Read in extended header sections while( (cbRead = _lread( hFile, &pifexthdr, sizeof( pifexthdr )))!=0 ) { printf( "\n[%s]\n", pifexthdr.extsig ); if (strcmp(pifexthdr.extsig, STDHDRSIG)==0) { if (pifexthdr.extnxthdrfloff==0xFFFF) { printf( " No more entries\n" ); goto OutOfHere; } else printf( " No information in \"%s\" section (as expected)\n\n", STDHDRSIG ); } if (strcmp(pifexthdr.extsig, W286HDRSIG30)==0) { W286PIF30 w286ext30; _lread( hFile, &w286ext30, sizeof( w286ext30 ) ); printf( " PfMaxXmsK = 0x%04X\n", w286ext30.PfMaxXmsK ); printf( " PfMinXmsK = 0x%04X\n", w286ext30.PfMinXmsK ); printf( " PfW286Flags = 0x%04X\n", w286ext30.PfW286Flags ); if (w286ext30.PfW286Flags & fALTTABdis286) printf( " fALTTABdis286 is set.\n" ); if (w286ext30.PfW286Flags & fALTESCdis286) printf( " fALTESCdis286 is set.\n" ); if (w286ext30.PfW286Flags & fALTESCdis286) printf( " fALTPRTSCdis286 is set.\n" ); if (w286ext30.PfW286Flags & fPRTSCdis286) printf( " fPRTSCdis286 is set.\n" ); if (w286ext30.PfW286Flags & fCTRLESCdis286) printf( " fCTRLESCdis286 is set.\n" ); if (w286ext30.PfW286Flags & fNoSaveVid286) printf( " fNoSaveVid286 is set.\n" ); if (w286ext30.PfW286Flags & fCOM3_286) printf( " fCOM3_286 is set.\n" ); if (w286ext30.PfW286Flags & fCOM4_286) printf( " fCOM4_286 is set.\n" ); printf( "\n" ); } if (strcmp(pifexthdr.extsig, W386HDRSIG30)==0) { W386PIF30 w386ext30; _lread( hFile, &w386ext30, sizeof( w386ext30 ) ); printf( " PfW386maxmem = 0x%02X (%d)\n", w386ext30.PfW386maxmem, w386ext30.PfW386maxmem ); printf( " PfW386minmem = 0x%02X (%d)\n", w386ext30.PfW386minmem, w386ext30.PfW386minmem ); printf( " PfFPriority = 0x%02X (%d)\n", w386ext30.PfFPriority, w386ext30.PfFPriority ); printf( " PfBPriority = 0x%02X (%d)\n", w386ext30.PfBPriority, w386ext30.PfBPriority ); printf( " PfMaxEMMK = 0x%02X (%d)\n", w386ext30.PfMaxEMMK, w386ext30.PfMaxEMMK ); printf( " PfMinEMMK = 0x%02X (%d)\n", w386ext30.PfMinEMMK, w386ext30.PfMinEMMK ); printf( " PfMaxXmsK = 0x%02X (%d)\n", w386ext30.PfMaxXmsK, w386ext30.PfMaxXmsK ); printf( " PfMinXmsK = 0x%02X (%d)\n", w386ext30.PfMinXmsK, w386ext30.PfMinXmsK ); printf( " PfW386Flags = 0x%08X\n", w386ext30.PfW386Flags ); if (w386ext30.PfW386Flags & fEnableClose) printf( " fEnableClose is set.\n" ); if (w386ext30.PfW386Flags & fBackground) printf( " fBackground is set.\n" ); if (w386ext30.PfW386Flags & fExclusive) printf( " fExclusive is set.\n" ); if (w386ext30.PfW386Flags & fFullScreen) printf( " fFullScreen is set.\n" ); if (w386ext30.PfW386Flags & fALTTABdis) printf( " fALTTABdis is set.\n" ); if (w386ext30.PfW386Flags & fALTESCdis) printf( " fALTESCdis is set.\n" ); if (w386ext30.PfW386Flags & fALTSPACEdis) printf( " fALTSPACEdis is set.\n" ); if (w386ext30.PfW386Flags & fALTENTERdis) printf( " fALTENTERdis is set.\n" ); if (w386ext30.PfW386Flags & fALTPRTSCdis) printf( " fALTPRTSCdis is set.\n" ); if (w386ext30.PfW386Flags & fPRTSCdis) printf( " fPRTSCdis is set.\n" ); if (w386ext30.PfW386Flags & fCTRLESCdis) printf( " fCTRLESCdis is set.\n" ); if (w386ext30.PfW386Flags & fPollingDetect) printf( " fPollingDetect is set.\n" ); if (w386ext30.PfW386Flags & fNoHMA) printf( " fNoHMA is set.\n" ); if (w386ext30.PfW386Flags & fHasHotKey) printf( " fHasHotKey is set.\n" ); if (w386ext30.PfW386Flags & fEMSLocked) printf( " fEMSLocked is set.\n" ); if (w386ext30.PfW386Flags & fXMSLocked) printf( " fXMSLocked is set.\n" ); if (w386ext30.PfW386Flags & fINT16Paste) printf( " fINT16Paste is set.\n" ); if (w386ext30.PfW386Flags & fVMLocked) printf( " fVMLocked is set.\n" ); if (w386ext30.PfW386Flags & fGlobalProtect) printf( " fGlobalProtect is set.\n" ); if (w386ext30.PfW386Flags & fMinimized) printf( " fMinimized is set.\n" ); if (w386ext30.PfW386Flags & fMaximized) printf( " fMaximized is set.\n" ); if (w386ext30.PfW386Flags & fRealMode) printf( " fRealMode is set.\n" ); if (w386ext30.PfW386Flags & fWinLie) printf( " fWinLie is set.\n" ); if (w386ext30.PfW386Flags & fStrayPtrDetect) printf( " fStrayPtrDetect is set.\n" ); if (w386ext30.PfW386Flags & fNoSuggestMSDOS) printf( " fNoSuggestMSDOS is set.\n" ); if (w386ext30.PfW386Flags & fLocalUMBs) printf( " fLocalUMBs is set.\n" ); if (w386ext30.PfW386Flags & fRealModeSilent) printf( " fRealModeSilent is set.\n" ); if (w386ext30.PfW386Flags & fQuickStart) printf( " fQuickStart is set.\n" ); if (w386ext30.PfW386Flags & fAmbiguousPIF) printf( " fAmbiguousPIF is set.\n" ); printf( " PfW386Flags2 = 0x%08X\n", w386ext30.PfW386Flags2 ); if (w386ext30.PfW386Flags2 & fVidTxtEmulate) printf( " fVidTxtEmulate is set.\n" ); if (w386ext30.PfW386Flags2 & fVidNoTrpTxt) printf( " fVidNoTrpTxt is set.\n" ); if (w386ext30.PfW386Flags2 & fVidNoTrpLRGrfx) printf( " fVidNoTrpLRGrfx is set.\n" ); if (w386ext30.PfW386Flags2 & fVidNoTrpHRGrfx) printf( " fVidNoTrpHRGrfx is set.\n" ); if (w386ext30.PfW386Flags2 & fVidTextMd) printf( " fVidTextMd is set.\n" ); if (w386ext30.PfW386Flags2 & fVidLowRsGrfxMd) printf( " fVidLowRsGrfxd is set.\n" ); if (w386ext30.PfW386Flags2 & fVidHghRsGrfxMd) printf( " fVidHghRsGrfxd is set.\n" ); if (w386ext30.PfW386Flags2 & fVidRetainAllo) printf( " fVidRetainAllo is set.\n" ); printf( " PfHotKeyScan = 0x%04X\n", w386ext30.PfHotKeyScan ); printf( " PfHotKeyShVal = 0x%04X\n", w386ext30.PfHotKeyShVal ); printf( " PfHotKeyShMsk = 0x%04X\n", w386ext30.PfHotKeyShMsk ); printf( " PfHotKeyVal = 0x%02X\n", w386ext30.PfHotKeyVal ); printf( " PfW386params = %s\n", STRING(w386ext30.PfW386params) ); printf( "\n" ); } if (strcmp(pifexthdr.extsig, WNTHDRSIG31)==0) { WNTPIF31 wntpif31; _lread( hFile, &wntpif31, sizeof( wntpif31 ) ); printf( " ==> Internal Revision %d <==\n", wntpif31.wInternalRevision ); printf( " dwWNTFlags = 0x%08X\n", wntpif31.nt31Prop.dwWNTFlags ); if (wntpif31.nt31Prop.dwWNTFlags & COMPAT_TIMERTIC) printf( " COMPAT_TIMERTIC is set.\n" ); printf( " dwRes1 = 0x%08X\n", wntpif31.nt31Prop.dwRes1 ); printf( " dwRes2 = 0x%08X\n", wntpif31.nt31Prop.dwRes2 ); printf( " achConfigFile = %s\n", STRING(wntpif31.nt31Prop.achConfigFile) ); printf( " achAuotexecFile = %s\n", STRING(wntpif31.nt31Prop.achAutoexecFile) ); } if (strcmp(pifexthdr.extsig, WENHHDRSIG40)==0) { WENHPIF40 wenhpif40; _lread( hFile, &wenhpif40, sizeof( wenhpif40 ) ); printf( " ==> Internal Revision %d <==\n", wenhpif40.wInternalRevision ); printf( " dwEnhModeFlagsProp = 0x%08X\n", wenhpif40.dwEnhModeFlagsProp ); printf( " dwRealModeFlagsProp = 0x%08X\n", wenhpif40.dwRealModeFlagsProp ); printf( " achOtherFileProp = %s\n", STRING(wenhpif40.achOtherFileProp) ); printf( " achIconFileProp = %s\n", STRING(wenhpif40.achIconFileProp) ); printf( " wIconInxexProp = 0x%04X\n", wenhpif40.wIconIndexProp ); printf( " PROPTSK:\n" ); printf( " flTsk = 0x%04X\n", wenhpif40.tskProp.flTsk ); if (wenhpif40.tskProp.flTsk & TSK_ALLOWCLOSE) printf( " TSK_ALLOWCLOSE is set.\n" ); if (wenhpif40.tskProp.flTsk & TSK_BACKGROUND) printf( " TSK_BACKGROUND is set.\n" ); if (wenhpif40.tskProp.flTsk & TSK_EXCLUSIVE) printf( " TSK_EXCLUSIVE is set.\n" ); if (wenhpif40.tskProp.flTsk & TSK_NOWARNTERMINATE) printf( " TSK_NOWARNTERMINATE is set.\n" ); if (wenhpif40.tskProp.flTsk & TSK_NOSCREENSAVER) printf( " TSK_NOSCREENSAVER is set.\n" ); printf( " flTskInit = 0x%04X\n", wenhpif40.tskProp.flTskInit ); printf( " wReserved1 = 0x%04X\n", wenhpif40.tskProp.wReserved1 ); printf( " wReserved2 = 0x%04X\n", wenhpif40.tskProp.wReserved2 ); printf( " wReserved3 = 0x%04X\n", wenhpif40.tskProp.wReserved3 ); printf( " wReserved4 = 0x%04X\n", wenhpif40.tskProp.wReserved4 ); printf( " wIdleSensitivity = 0x%04X\n", wenhpif40.tskProp.wIdleSensitivity ); printf( " PROPVID:\n" ); printf( " flVid = 0x%04X\n", wenhpif40.vidProp.flVid ); if (wenhpif40.vidProp.flVid & VID_TEXTEMULATE) printf( " VID_TEXTEMULATE is set.\n" ); if (wenhpif40.vidProp.flVid & VID_RETAINMEMORY) printf( " VID_RETAINMEMORY is set.\n" ); if (wenhpif40.vidProp.flVid & VID_FULLSCREEN) printf( " VID_FULLSCREEN is set.\n" ); printf( " flVidInit = 0x%04X\n", wenhpif40.vidProp.flVidInit ); printf( " wReserved1 = 0x%04X\n", wenhpif40.vidProp.wReserved1 ); printf( " wReserved2 = 0x%04X\n", wenhpif40.vidProp.wReserved2 ); printf( " wReserved3 = 0x%04X\n", wenhpif40.vidProp.wReserved3 ); printf( " cScreenLines = 0x%04X\n", wenhpif40.vidProp.cScreenLines ); printf( " PROPKBD:\n" ); printf( " flKbd = 0x%04X\n", wenhpif40.kbdProp.flKbd ); if (wenhpif40.kbdProp.flKbd & KBD_FASTPASTE) printf( " KBD_FASTPASTE is set.\n" ); if (wenhpif40.kbdProp.flKbd & KBD_NOALTTAB) printf( " KBD_NOALTTAB is set.\n" ); if (wenhpif40.kbdProp.flKbd & KBD_NOALTESC) printf( " KBD_NOALTESC is set.\n" ); if (wenhpif40.kbdProp.flKbd & KBD_NOALTSPACE) printf( " KBD_NOALTSPACE is set.\n" ); if (wenhpif40.kbdProp.flKbd & KBD_NOALTENTER) printf( " KBD_NOALTENTER is set.\n" ); if (wenhpif40.kbdProp.flKbd & KBD_NOALTPRTSC) printf( " KBD_NOALTPRTSC is set.\n" ); if (wenhpif40.kbdProp.flKbd & KBD_NOPRTSC) printf( " KBD_NOPRTSC is set.\n" ); if (wenhpif40.kbdProp.flKbd & KBD_NOCTRLESC) printf( " KBD_NOCTRLESC is set.\n" ); printf( " flKbdInit = 0x%04X\n", wenhpif40.kbdProp.flKbdInit ); printf( " msAltDelay = 0x%04X\n", wenhpif40.kbdProp.msAltDelay ); printf( " msAltPasteDelay = 0x%04X\n", wenhpif40.kbdProp.msAltPasteDelay ); printf( " msPasteDelay = 0x%04X\n", wenhpif40.kbdProp.msPasteDelay ); printf( " msPasteFullDelay = 0x%04X\n", wenhpif40.kbdProp.msPasteFullDelay ); printf( " msPasteTimeout = 0x%04X\n", wenhpif40.kbdProp.msPasteTimeout ); printf( " cPasteSkip = 0x%04X\n", wenhpif40.kbdProp.cPasteSkip ); printf( " cPasteCRSkip = 0x%04X\n", wenhpif40.kbdProp.cPasteCRSkip ); printf( " PROPMSE:\n" ); printf( " flMse = 0x%04X\n", wenhpif40.mseProp.flMse ); if (wenhpif40.mseProp.flMse & MSE_WINDOWENABLE) printf( " MSE_WINDOWENABLE is set.\n" ); if (wenhpif40.mseProp.flMse & MSE_EXCLUSIVE) printf( " MSE_EXCLUSIVE is set.\n" ); printf( " flMseInit = 0x%04X\n", wenhpif40.mseProp.flMseInit ); printf( " PROPSND:\n" ); printf( " flSnd = 0x%04X\n", wenhpif40.sndProp.flSnd ); if (wenhpif40.sndProp.flSnd & SND_SPEAKERENABLE) printf( " SND_SPEAKERENABLE is set.\n" ); printf( " flSndInit = 0x%04X\n", wenhpif40.sndProp.flSndInit ); printf( " PROPFNT:\n" ); printf( " flFnt = 0x%04X\n", wenhpif40.fntProp.flFnt ); if (wenhpif40.fntProp.flFnt & FNT_RASTERFONTS) printf( " FNT_RASTERFONTS is set.\n" ); if (wenhpif40.fntProp.flFnt & FNT_TTFONTS) printf( " FNT_TTFONTS is set.\n" ); if (wenhpif40.fntProp.flFnt & FNT_AUTOSIZE) printf( " FNT_AUTOSIZE is set.\n" ); if (wenhpif40.fntProp.flFnt & FNT_RASTER) printf( " FNT_RASTER is set.\n" ); if (wenhpif40.fntProp.flFnt & FNT_TT) printf( " FNT_TT is set.\n" ); printf( " flFntInit = 0x%04X\n", wenhpif40.fntProp.flFntInit ); printf( " cxFont = 0x%04X (%d)\n", wenhpif40.fntProp.cxFont, wenhpif40.fntProp.cxFont ); printf( " cyFont = 0x%04X (%d)\n", wenhpif40.fntProp.cyFont, wenhpif40.fntProp.cyFont ); printf( " cxFontActual = 0x%04X (%d)\n", wenhpif40.fntProp.cxFontActual, wenhpif40.fntProp.cxFontActual ); printf( " cyFontActual = 0x%04X (%d)\n", wenhpif40.fntProp.cyFontActual, wenhpif40.fntProp.cyFontActual ); printf( " achRasterFaceName = %s\n", STRING(wenhpif40.fntProp.achRasterFaceName) ); printf( " achTTFaceName = %s\n", STRING(wenhpif40.fntProp.achRasterFaceName) ); printf( " wCurrentCP = 0x%04X\n", wenhpif40.fntProp.wCurrentCP ); printf( " PROPWIN:\n" ); printf( " flWin = 0x%04X\n", wenhpif40.winProp.flWin ); if (wenhpif40.winProp.flWin & WIN_SAVESETTINGS) printf( " WIN_SAVESETTINGS is set.\n" ); if (wenhpif40.winProp.flWin & WIN_TOOLBAR) printf( " WIN_TOOLBAR is set.\n" ); printf( " flWinInit = 0x%04X\n", wenhpif40.winProp.flWinInit ); printf( " cxCells = 0x%04X (%d)\n", wenhpif40.winProp.cxCells, wenhpif40.winProp.cxCells ); printf( " cyCells = 0x%04X (%d)\n", wenhpif40.winProp.cyCells, wenhpif40.winProp.cyCells ); printf( " cxClient = 0x%04X (%d)\n", wenhpif40.winProp.cxClient, wenhpif40.winProp.cxClient ); printf( " cyClient = 0x%04X (%d)\n", wenhpif40.winProp.cyClient, wenhpif40.winProp.cyClient ); printf( " cxWindow = 0x%04X (%d)\n", wenhpif40.winProp.cxWindow, wenhpif40.winProp.cxWindow ); printf( " cyWindow = 0x%04X (%d)\n", wenhpif40.winProp.cyWindow, wenhpif40.winProp.cyWindow ); printf( " wLength = 0x%04X\n", wenhpif40.winProp.wLength ); printf( " wShowFlags = 0x%04X\n", wenhpif40.winProp.wShowFlags ); printf( " wShowCmd = 0x%04X\n", wenhpif40.winProp.wShowCmd ); printf( " xMinimize = 0x%04X (%d)\n", wenhpif40.winProp.xMinimize, wenhpif40.winProp.xMinimize ); printf( " yMinimize = 0x%04X (%d)\n", wenhpif40.winProp.yMinimize, wenhpif40.winProp.yMinimize ); printf( " xMaximize = 0x%04X (%d)\n", wenhpif40.winProp.xMaximize, wenhpif40.winProp.xMaximize ); printf( " yMaximize = 0x%04X (%d)\n", wenhpif40.winProp.yMaximize, wenhpif40.winProp.yMaximize ); printf( " rcNormal = (0x%04X, 0x%04X, 0x%04X, 0x%04X)\n", wenhpif40.winProp.rcNormal.left, wenhpif40.winProp.rcNormal.top, wenhpif40.winProp.rcNormal.right,wenhpif40.winProp.rcNormal.bottom ); printf( " PROPENV:\n" ); printf( " flEnv = 0x%04X\n", wenhpif40.envProp.flEnv ); printf( " flEnvInit = 0x%04X\n", wenhpif40.envProp.flEnvInit ); printf( " achBatchFile = %s\n", STRING(wenhpif40.envProp.achBatchFile) ); printf( " cbEnvironemnt = 0x%04X\n", wenhpif40.envProp.cbEnvironment ); printf( " wMaxDPMI = 0x%04X\n", wenhpif40.envProp.wMaxDPMI ); } if (strcmp(pifexthdr.extsig, WNTHDRSIG40)==0) { WNTPIF40 wntpif40; _lread( hFile, &wntpif40, sizeof( wntpif40 ) ); printf( " ==> Internal Revision %d <==\n", wntpif40.wInternalRevision ); printf( " flWnt = 0x%08X\n", wntpif40.nt40Prop.flWnt ); if (wntpif40.nt40Prop.flWnt & WNT_LET_SYS_POS) printf( " WNT_LET_SYS_POS is set.\n" ); if (wntpif40.nt40Prop.flWnt & WNT_CONSOLE_PROPS) printf( " WNT_CONSOLE_PROPS is set.\n" ); WideCharToMultiByte( CP_ACP, 0, wntpif40.nt40Prop.awchCmdLine, -1, szTemp, 512, NULL, NULL ); printf( " awchCmdLine = %s\n", STRING(szTemp) ); printf( " achSaveCmdLine = %s\n", STRING(wntpif40.nt40Prop.achSaveCmdLine) ); WideCharToMultiByte( CP_ACP, 0, wntpif40.nt40Prop.awchOtherFile, -1, szTemp, 512, NULL, NULL ); printf( " awchOtherFile = %s\n", STRING(szTemp) ); printf( " achSaveOtherFile = %s\n", STRING(wntpif40.nt40Prop.achSaveOtherFile) ); WideCharToMultiByte( CP_ACP, 0, wntpif40.nt40Prop.awchPIFFile, -1, szTemp, 512, NULL, NULL ); printf( " awchPIFFile = %s\n", STRING(szTemp) ); printf( " achSavePIFFile = %s\n", STRING(wntpif40.nt40Prop.achSavePIFFile) ); WideCharToMultiByte( CP_ACP, 0, wntpif40.nt40Prop.awchTitle, -1, szTemp, 512, NULL, NULL ); printf( " awchTitle = %s\n", STRING(szTemp) ); printf( " achSaveTitle = %s\n", STRING(wntpif40.nt40Prop.achSaveTitle) ); WideCharToMultiByte( CP_ACP, 0, wntpif40.nt40Prop.awchIconFile, -1, szTemp, 512, NULL, NULL ); printf( " awchIconFIle = %s\n", STRING(szTemp) ); printf( " achSaveIconFile = %s\n", STRING(wntpif40.nt40Prop.achSaveIconFile) ); WideCharToMultiByte( CP_ACP, 0, wntpif40.nt40Prop.awchWorkDir, -1, szTemp, 512, NULL, NULL ); printf( " awchWorkDir = %s\n", STRING(szTemp) ); printf( " achSaveWorkDir = %s\n", STRING(wntpif40.nt40Prop.achSaveWorkDir) ); WideCharToMultiByte( CP_ACP, 0, wntpif40.nt40Prop.awchBatchFile, -1, szTemp, 512, NULL, NULL ); printf( " awchBatchFile = %s\n", STRING(szTemp) ); printf( " achSaveBatchFile = %s\n", STRING(wntpif40.nt40Prop.achSaveBatchFile) ); printf( " dwForeColor = 0x%08X\n", wntpif40.nt40Prop.dwForeColor ); printf( " dwBackColor = 0x%08X\n", wntpif40.nt40Prop.dwBackColor ); printf( " dwPopupForeColor = 0x%08X\n", wntpif40.nt40Prop.dwPopupForeColor ); printf( " dwPopupBackColor = 0x%08X\n", wntpif40.nt40Prop.dwPopupBackColor ); printf( " WinSize = (0x%04X, 0x%04X)\n", wntpif40.nt40Prop.WinSize.X, wntpif40.nt40Prop.WinSize.Y ); printf( " BuffSize = (0x%04X, 0x%04X)\n", wntpif40.nt40Prop.BuffSize.X, wntpif40.nt40Prop.BuffSize.Y ); printf( " WinPos = (0x%08X, 0x%08X)\n", wntpif40.nt40Prop.WinPos.x, wntpif40.nt40Prop.WinPos.y ); printf( " dwCursorSize = 0x%08X\n", wntpif40.nt40Prop.dwCursorSize ); printf( " dwCmdHistBufSize = 0x%08X\n", wntpif40.nt40Prop.dwCmdHistBufSize ); printf( " dwNumCmdHist = 0x%08X\n", wntpif40.nt40Prop.dwNumCmdHist ); } _llseek( hFile, pifexthdr.extnxthdrfloff, FILE_BEGIN ); } OutOfHere: printf( "\n" ); return(0); }