#include #include #include #include #include #include #include #include "logger.h" #include "lintern.h" #ifdef WIN32 #include #ifndef PHSURF typedef HSURF *PHSURF; #endif #endif #define COLOR_ENDCOLORS 21 int WindowsVerRunning; void WriteLPRECT( LPRECT ); void WriteThatHandle( HANDLE handle, CORR_TABLE corr, LPSTR prefix ); #ifdef WIN32 void WriteThatPHandle( HANDLE *phandle, CORR_TABLE corr, LPSTR prefix); #endif void WriteBOOL( BOOL f ) { char chTemp[10]; if ( f == FALSE ) { WriteBuff( (LPSTR)"FALSE" ); } else { if ( f == TRUE ) { WriteBuff( (LPSTR)"TRUE" ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", f ); WriteBuff( (LPSTR)chTemp ); } } } va_list PrtBool( LPSTR lpstr, va_list marker ) { BOOL f; f = va_arg( marker, BOOL ); WriteBOOL( f ); return( marker ); } void WriteWORD( WORD wVal ) { char chTemp[10]; wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", wVal ); WriteBuff( (LPSTR)chTemp ); } va_list PrtInt( LPSTR lpstr, va_list marker ) { int i; char chTemp[10]; i = va_arg( marker, int ); wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", i ); WriteBuff( (LPSTR)chTemp ); return( marker ); } va_list PrtShort( LPSTR lpstr, va_list marker ) { int i; char chTemp[10]; i = va_arg( marker, short ); wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", i ); WriteBuff( (LPSTR)chTemp ); return( marker ); } void WriteTIME( DWORD time ) { char chTemp[15] ; if ( fAlias ) { if ( time == (DWORD)0 ) { wsprintf( (LPSTR)chTemp, (LPSTR)"TIME_0 " ); } else { MakeCorrespondence( TIME_TABLE, &time ); wsprintf( (LPSTR)chTemp, "TIME_%d ", (int)time+1 ); } } else { if ( time == (DWORD)0 ) { WriteBuff( (LPSTR)"0 " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"%08lX ", time ); } } WriteBuff( (LPSTR)chTemp ); } void WriteFARPROC( FARPROC fp ) { char chTemp[15] ; if ( fAlias ) { if ( fp == (FARPROC)NULL ) { wsprintf( (LPSTR)chTemp, (LPSTR)"FARPROC_NULL " ); } else { MakeCorrespondence( FARPROC_TABLE, &fp ); wsprintf( (LPSTR)chTemp, "FARPROC_%d ", (int)(LOWORD(fp))+1 ); } } else { if ( fp == (FARPROC)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"%08lX ", fp ); } } WriteBuff( (LPSTR)chTemp ); } void WriteThatHandle( HANDLE handle, CORR_TABLE corr, LPSTR prefix ) { char chTemp[20]; if ( fAlias ) { if ( handle == (HANDLE)NULL ) { wsprintf( (LPSTR)chTemp, (LPSTR)"%s_NULL ", prefix ); } else { /* ** Handles that differ by only that last bit are really the same ** handle and should be output to the logfile as such so this ** routine will be smart and check to see if either "handle" exists ** before trying to make a correspondence. This will prevent problems ** with XL4 where they alloc memory but don't use the handle they ** were returned in later memory callse (esp Frees!) - MarkRi */ HANDLE hSave = handle ; // First see if the value passed to us exists. if ( !SpecialFindNewCorrespondence( corr, &handle ) ) { // NOPE!!! #ifdef WIN32 MakeCorrespondence( corr, &handle ); #else // 16-bit HANDLEs and Selectors only differ by the lowest most bit // Create a new try at the HANDLE handle = ( (WORD)hSave & 0x0001 ) ? ((UINT)hSave & 0xFFFE) : ((WORD)hSave | 0x0001) ; // This one work? if ( !SpecialFindNewCorrespondence( corr, &handle ) ) { // NOPE AGAIN!!! // Now we can add it... handle = hSave ; MakeCorrespondence( corr, &handle ); } #endif } wsprintf( (LPSTR)chTemp, "%s_%d ", prefix, (int)handle+1 ); } } else { wsprintf( (LPSTR)chTemp, "%X ", (int)handle ); } WriteBuff( (LPSTR)chTemp ); } void WriteATOM( ATOM handle ) { WriteThatHandle( (HANDLE)handle, ATOM_TABLE, "ATOM" ); } va_list PrtATOM( LPSTR lpstr, va_list marker ) { ATOM handle; handle = va_arg( marker, ATOM ); WriteATOM( handle ); return( marker ); } void WriteHACCEL( HACCEL handle ) { WriteThatHandle( handle, HACCEL_TABLE, "HACCEL" ); } va_list PrtHACCEL( LPSTR lpstr, va_list marker ) { HACCEL handle; handle = va_arg( marker, HACCEL ); WriteHACCEL( handle ); return( marker ); } void WriteHBITMAP( HBITMAP handle ) { WriteThatHandle( handle, HBITMAP_TABLE, "HBITMAP" ); } va_list PrtHBITMAP( LPSTR lpstr, va_list marker ) { HBITMAP handle; handle = va_arg( marker, HBITMAP ); WriteHBITMAP( handle ); return( marker ); } void WriteHBRUSH( HBRUSH handle ) { WriteThatHandle( handle, HBRUSH_TABLE, "HBRUSH" ); } va_list PrtHBRUSH( LPSTR lpstr, va_list marker ) { HBRUSH handle; handle = va_arg( marker, HBRUSH ); WriteHBRUSH( handle ); return( marker ); } void WriteHCURSOR( HCURSOR handle ) { WriteThatHandle( handle, HCURSOR_TABLE, "HCURSOR" ); } va_list PrtHCURSOR( LPSTR lpstr, va_list marker ) { HCURSOR handle; handle = va_arg( marker, HCURSOR ); WriteHCURSOR( handle ); return( marker ); } void WriteHDC( HDC handle ) { WriteThatHandle( handle, HDC_TABLE, "HDC" ); } va_list PrtHDC( LPSTR lpstr, va_list marker ) { HDC handle; handle = va_arg( marker, HDC ); WriteHDC( handle ); return( marker ); } void WriteHDWP( HDWP handle ) { WriteThatHandle( handle, HDWP_TABLE, "HDWP" ); } va_list PrtHDWP( LPSTR lpstr, va_list marker ) { HDWP handle; handle = va_arg( marker, HDWP ); WriteHDWP( handle ); return( marker ); } void WriteHFILE( HFILE handle ) { WriteThatHandle( (HANDLE)handle, HFILE_TABLE, "HFILE" ); } va_list PrtHFILE( LPSTR lpstr, va_list marker ) { HFILE handle; handle = va_arg( marker, HFILE ); WriteHFILE( handle ); return( marker ); } void WriteHFONT( HFONT handle ) { WriteThatHandle( handle, HFONT_TABLE, "HFONT" ); } va_list PrtHFONT( LPSTR lpstr, va_list marker ) { HFONT handle; handle = va_arg( marker, HFONT ); WriteHFONT( handle ); return( marker ); } void WriteHHOOK( HHOOK handle ) { char chTemp[20]; LPSTR prefix = "HHOOK"; CORR_TABLE corr = HHOOK_TABLE; // Different code from WriteThatHandle because HHOOKs are 32-bit qtys if ( fAlias ) { if ( handle == NULL ) { wsprintf( (LPSTR)chTemp, (LPSTR)"%s_NULL ", prefix ); } else { HHOOK hSave = handle ; // First see if the value passed to us exists. if ( !SpecialFindNewCorrespondence( corr, &handle ) ) { // NOPE!!! MakeCorrespondence( corr, &handle ); } wsprintf( (LPSTR)chTemp, "%s_%d ", prefix, (*(int *)&handle)+1 ); } } else { wsprintf( (LPSTR)chTemp, "%lX ", handle ); } WriteBuff( (LPSTR)chTemp ); } va_list PrtHHOOK( LPSTR lpstr, va_list marker ) { HHOOK handle; handle = va_arg( marker, HHOOK ); WriteHHOOK( handle ); return( marker ); } void WriteHICON( HICON handle ) { WriteThatHandle( handle, HICON_TABLE, "HICON" ); } va_list PrtHICON( LPSTR lpstr, va_list marker ) { HICON handle; handle = va_arg( marker, HICON ); WriteHICON( handle ); return( marker ); } void WriteHMEM( HMEM handle ) { WriteThatHandle( handle, HMEM_TABLE, "HMEM" ); } va_list PrtHMEM( LPSTR lpstr, va_list marker ) { HMEM handle; handle = va_arg( marker, HMEM ); WriteHMEM( handle ); return( marker ); } va_list PrtPHANDLE( LPSTR lpstr, va_list marker ) { HANDLE *phandle; phandle = va_arg( marker, HANDLE*); WriteHMEM( (HMEM)(*phandle) ); return( marker ); } void WriteHMENU( HMENU handle ) { WriteThatHandle( handle, HMENU_TABLE, "HMENU" ); } va_list PrtHMENU( LPSTR lpstr, va_list marker ) { HMENU handle; handle = va_arg( marker, HMENU ); WriteHMENU( handle ); return( marker ); } void WriteHMETA( HMETA handle ) { WriteThatHandle( handle, HMETA_TABLE, "HMETA" ); } va_list PrtHMETA( LPSTR lpstr, va_list marker ) { HMETA handle; handle = va_arg( marker, HMETA ); WriteHMETA( handle ); return( marker ); } void WriteHPALETTE( HPALETTE handle ) { WriteThatHandle( handle, HPALETTE_TABLE, "HPALETTE" ); } va_list PrtHPALETTE( LPSTR lpstr, va_list marker ) { HPALETTE handle; handle = va_arg( marker, HPALETTE ); WriteHPALETTE( handle ); return( marker ); } void WriteHPEN( HPEN handle ) { WriteThatHandle( handle, HPEN_TABLE, "HPEN" ); } va_list PrtHPEN( LPSTR lpstr, va_list marker ) { HPEN handle; handle = va_arg( marker, HPEN ); WriteHPEN( handle ); return( marker ); } void WriteHRES( HRES handle ) { WriteThatHandle( handle, HRES_TABLE, "HRES" ); } va_list PrtHRES( LPSTR lpstr, va_list marker ) { HRES handle; handle = va_arg( marker, HRES ); WriteHRES( handle ); return( marker ); } void WriteHRGN( HRGN handle ) { WriteThatHandle( handle, HRGN_TABLE, "HRGN" ); } va_list PrtHRGN( LPSTR lpstr, va_list marker ) { HRGN handle; handle = va_arg( marker, HRGN ); WriteHRGN( handle ); return( marker ); } void WriteHTASK( HTASK handle ) { WriteThatHandle( handle, HTASK_TABLE, "HTASK" ); } va_list PrtHTASK( LPSTR lpstr, va_list marker ) { HTASK handle; handle = va_arg( marker, HTASK ); WriteHTASK( handle ); return( marker ); } void WriteHWND( HWND handle ) { WriteThatHandle( handle, HWND_TABLE, "HWND" ); } va_list PrtHWND( LPSTR lpstr, va_list marker ) { HWND handle; handle = va_arg( marker, HWND ); WriteHWND( handle ); return( marker ); } va_list PrtLong( LPSTR lpstr, va_list marker ) { long l; char chTemp[10]; l = va_arg( marker, long ); wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", l ); WriteBuff( (LPSTR)chTemp ); return( marker ); } void WriteCOMPAREITEMSTRUCT( LPCOMPAREITEMSTRUCT lpcis ) { char chTemp[80] ; wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X ", lpcis->CtlType, lpcis->CtlID ) ; WriteBuff( (LPSTR)chTemp ); WriteHWND( lpcis->hwndItem ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X %lX %X %lX} ", lpcis->itemID1, lpcis->itemData1, lpcis->itemID2, lpcis->itemData2 ) ; WriteBuff( (LPSTR)chTemp ); } void WriteDELETEITEMSTRUCT( LPDELETEITEMSTRUCT lpdis ) { char chTemp[80] ; wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X ", lpdis->CtlType, lpdis->CtlID, lpdis->itemID ) ; WriteBuff( (LPSTR)chTemp ); WriteHWND( lpdis->hwndItem ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX} ", lpdis->itemData ) ; WriteBuff( (LPSTR)chTemp ); } void WriteWINDOWPOS( LPWINDOWPOS lpwp ) { char chTemp[100] ; wsprintf( (LPSTR)chTemp, (LPSTR)"{" ); WriteBuff( (LPSTR) chTemp ); WriteHWND( lpwp->hwnd ); WriteHWND( lpwp->hwndInsertAfter ); wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X %X %X %X} ", lpwp->x, lpwp->y, lpwp->cx, lpwp->cy, lpwp->flags ); WriteBuff( (LPSTR)chTemp ); } void WriteNCCALCSIZE_PARAMS ( LPNCCALCSIZE_PARAMS lpnc ) { char chTemp[100]; #if WINVER >= 0x030a if ( WindowsVerRunning >= 0x30a ) { wsprintf( (LPSTR)chTemp, (LPSTR)"{" ); WriteBuff( (LPSTR)chTemp ); WriteLPRECT( &(lpnc->rgrc[0]) ); WriteLPRECT( &(lpnc->rgrc[1]) ); WriteLPRECT( &(lpnc->rgrc[2]) ); WriteWINDOWPOS( lpnc->lppos ); wsprintf( (LPSTR)chTemp, (LPSTR)"} "); WriteBuff( (LPSTR)chTemp ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{" ); WriteBuff( (LPSTR)chTemp ); WriteLPRECT( &(lpnc->rgrc[0]) ); WriteLPRECT( &(lpnc->rgrc[1]) ); wsprintf( (LPSTR)chTemp, (LPSTR)"} "); WriteBuff( (LPSTR)chTemp ); } #else wsprintf( (LPSTR)chTemp, (LPSTR)"{" ); WriteBuff( (LPSTR)chTemp ); WriteLPRECT( &(lpnc->rgrc[0]) ); WriteLPRECT( &(lpnc->rgrc[1]) ); wsprintf( (LPSTR)chTemp, (LPSTR)"} "); WriteBuff( (LPSTR)chTemp ); #endif } void WriteDRAWITEMSTRUCT( LPDRAWITEMSTRUCT lpdis ) { char chTemp[100] ; wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X %X ", lpdis->CtlType, lpdis->CtlID, lpdis->itemID, lpdis->itemAction, lpdis->itemAction ) ; WriteBuff( (LPSTR)chTemp ); WriteHWND( lpdis->hwndItem ) ; WriteHDC( lpdis->hDC ) ; wsprintf( (LPSTR)chTemp,(LPSTR)"{%X %X %X %X} %lX} ", lpdis->rcItem.left, lpdis->rcItem.top, lpdis->rcItem.right, lpdis->rcItem.bottom, lpdis->itemData ) ; WriteBuff( (LPSTR)chTemp ); } void WriteMEASUREITEMSTRUCT( LPMEASUREITEMSTRUCT lpdis ) { char chTemp[80] ; wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X %X %lX} ", lpdis->CtlType, lpdis->CtlID, lpdis->itemID, lpdis->itemWidth, lpdis->itemHeight, lpdis->itemData ) ; WriteBuff( (LPSTR)chTemp ); } void WriteLPINT( LPINT lpInt, int nInt ) { char chTemp[10] ; int i ; if ( lpInt == (LPINT)NULL || nInt == 0 ) { WriteBuff( (LPSTR)"NULL " ); } else { WriteBuff( (LPSTR)"{" ) ; for( i=0; i 32767) WriteBuff((LPSTR) "Tough Break, Sherlock!"); else if (dwSize == 0) WriteBuff((LPSTR) "{}"); else WriteLPSTR( string, dwSize ) ; return( marker ); } va_list PrtFineString( LPSTR lpstr, va_list marker ) { LPSTR string; int nSize; char chTemp[30]; string = va_arg( marker, LPSTR ) ; nSize = va_arg( marker, int ) ; if (nSize > 32767) { WriteBuff((LPSTR) "Tough Break, Sherlock!"); } else if (nSize == 0) { WriteBuff((LPSTR) "{}[0] "); } else { WriteLPSTR( string, (DWORD)nSize ); } wsprintf( chTemp, "[%X] ", nSize ); WriteBuff( (LPSTR)chTemp ); return( marker ); } void WriteLPTR( DWORD dwPtr ) { /* ** LPTR type is dumped as a sel:offset pair with the sel being ** aliased to an HMEM_* if fAliasing is != 0 ** */ WORD wSel, wOffset ; wSel = HIWORD( dwPtr ) ; wOffset = LOWORD( dwPtr ) ; // Looks like "HMEM_x :xxxx " WriteHMEM( (HANDLE)wSel ) ; WriteBuff(":") ; WriteWORD( wOffset ) ; } va_list PrtLPTR( LPSTR lpstr, va_list marker ) { WriteLPTR((DWORD)va_arg( marker, DWORD ) ) ; return marker ; } void WriteLPPOINT( LPPOINT lppoint, int npoint ) { char chTemp[30]; int i; int len; if ( lppoint == (LPPOINT)NULL || npoint == 0 ) { WriteBuff( (LPSTR)"NULL " ); nLineLen += 5; return; } if (npoint > 25) { DWORD dwWhere; dwWhere = StoreData( (LPCSTR)lppoint, (DWORD) (npoint) * (DWORD) sizeof(POINT)); WriteBuff( "DATAFILE "); wsprintf(chTemp, "%lX", dwWhere); WriteBuff(chTemp); return; } for( i=0; i 200 ) { EndLineBuff(); WriteBuff( "**|DATA:x "); nLineLen = 10; } WriteBuff( chTemp ); nLineLen += len; } } void WriteLPSTR( LPCSTR lpstr, DWORD dwLen ) { char chTemp[10]; DWORD dwTemp; LPCSTR lpTemp; BOOL fTextable; char ch; #define MAX_STRING_LEN 128 /* There are now 4 cases for LPSTR: 1) a far pointer to a 0 terminated string - dump it as bytes 2) a far pointer to some complicated object - dump it as a long 3) a WINDOWS identifier for a system object which has a NULL segment portion of the pointer 4) NULL pointer */ if ( lpstr==NULL ) { WriteBuff( "NULL ") ; return; } if ( dwLen == (DWORD)-1 || HIWORD(lpstr) == 0 ) { wsprintf( (LPSTR)chTemp, (LPSTR)"%08lX ", lpstr ); WriteBuff( (LPSTR)chTemp ); return; } if ( dwLen == 0 ) { for (dwLen = 0; lpstr[dwLen] && dwLen < MAX_STRING_LEN; dwLen++) /* nothing */; } if (dwLen > MAX_STRING_LEN) { /* Dump big strings to data file */ DWORD dwWhere; dwWhere = StoreData(lpstr, (DWORD) dwLen * sizeof(char) ); WriteBuff( "DATAFILE "); wsprintf(chTemp, "%lX", dwWhere); WriteBuff(chTemp); return; } /* Dump as an array of bytes */ fTextable = TRUE; for ( lpTemp = lpstr, dwTemp = dwLen; dwTemp; lpTemp++, dwTemp-- ) { ch = *lpTemp; if (!isascii(ch) || (!isprint(ch) && !isspace(ch))) { fTextable = FALSE; break; } } if ( fTextable ) { WriteBuff( "\"" ); for ( lpTemp = lpstr, dwTemp = dwLen; dwTemp; lpTemp++, dwTemp-- ) { ch = *lpTemp; switch (ch) { case '\t': WriteBuff( "\\t" ); break; case '\n': WriteBuff( "\\n" ); break; case '\r': WriteBuff( "\\r" ); break; case '\"': WriteBuff( "\\\"" ); break; case '\\': WriteBuff( "\\\\" ); break; default: chTemp[0] = ch; chTemp[1] = '\0'; WriteBuff( chTemp ); break; } } WriteBuff( "\" " ); } else { WriteBuff( "{" ); for ( lpTemp = lpstr, dwTemp = dwLen; dwTemp; lpTemp++, dwTemp-- ) { wsprintf( chTemp, "%02X", (unsigned char)*lpTemp ); WriteBuff( chTemp ); } WriteBuff( "} " ); } } #ifdef WIN32 void WriteLPWSTR( LPCWSTR lpstr, DWORD dwLen ) { CHAR chTemp[10]; DWORD dwTemp; LPCWSTR lpTemp; BOOL fTextable; char ch; #define MAX_STRING_LEN 128 /* There are now 4 cases for LPSTR: 1) a far pointer to a 0 terminated string - dump it as bytes 2) a far pointer to some complicated object - dump it as a long 3) a WINDOWS identifier for a system object which has a NULL segment portion of the pointer 4) NULL pointer */ //#define FP_SEG(fp) (*((unsigned FAR *) &(fp)+1)) if ( lpstr==NULL ) { WriteBuff( "NULL ") ; return; } if ( dwLen == (DWORD)-1 || HIWORD(lpstr) == 0 ) { wsprintf( (LPSTR)chTemp, (LPSTR)"%08lX ", lpstr ); WriteBuff( (LPSTR)chTemp ); return; } if ( dwLen == 0 ) { for (dwLen = 0; lpstr[dwLen] && dwLen < MAX_STRING_LEN; dwLen++) /* nothing */; } if (dwLen > MAX_STRING_LEN) { /* Dump big strings to data file */ DWORD dwWhere; dwWhere = StoreData((LPCSTR)lpstr, (DWORD) dwLen*sizeof(WCHAR) ); WriteBuff( "DATAFILE "); wsprintf(chTemp, "%lX", dwWhere); WriteBuff(chTemp); return; } /* Dump as an array of bytes */ fTextable = TRUE; for ( lpTemp = lpstr, dwTemp = dwLen; dwTemp; lpTemp++, dwTemp-- ) { wctomb(&ch, (WCHAR)(*lpTemp)); if (!isascii(ch) || (!isprint(ch) && !isspace(ch))) { fTextable = FALSE; break; } } if ( fTextable ) { WriteBuff( "\"" ); for ( lpTemp = lpstr, dwTemp = dwLen; dwTemp; lpTemp++, dwTemp-- ) { wctomb(&ch, (WCHAR)(*lpTemp)); switch (ch) { case '\t': WriteBuff( "\\t" ); break; case '\n': WriteBuff( "\\n" ); break; case '\r': WriteBuff( "\\r" ); break; case '\"': WriteBuff( "\\\"" ); break; case '\\': WriteBuff( "\\\\" ); break; default: chTemp[0] = ch; chTemp[1] = '\0'; WriteBuff( chTemp ); break; } } WriteBuff( "\" " ); } else { WriteBuff( "{" ); for ( lpTemp = lpstr, dwTemp = dwLen; dwTemp; lpTemp++, dwTemp-- ) { wsprintf( chTemp, "%04X", (WCHAR)*lpTemp ); WriteBuff( chTemp ); } WriteBuff( "} " ); } } va_list PrtLPWSTR( LPSTR lpstr, va_list marker ) { LPCWSTR lpwstrX; lpwstrX = va_arg( marker, LPCWSTR ); WriteLPWSTR( lpwstrX, 0 ) ; return( marker ); } va_list PrtPLPWSTR( LPSTR lpstr, va_list marker ) { LPCWSTR *plpwstrX; plpwstrX = va_arg( marker, LPWSTR* ); WriteBuff( "{" ); WriteLPWSTR( *plpwstrX, 0 ) ; WriteBuff( "} " ); return( marker ); } #endif /* WIN32 */ va_list PrtLPSTR( LPSTR lpstr, va_list marker ) { LPCSTR lpstrX; lpstrX = va_arg( marker, LPCSTR ); WriteLPSTR( lpstrX, 0 ) ; return( marker ); } typedef COMSTAT FAR *LPCOMSTAT; void WriteCOMSTAT( LPCOMSTAT lpcomstat ) { char chTemp[100] ; wsprintf( (LPSTR)chTemp, (LPSTR)"{%d %d %d %d %d %d %d %X %X} ", #ifdef WIN32 (UINT)lpcomstat->fCtsHold, (UINT)lpcomstat->fDsrHold, (UINT)lpcomstat->fRlsdHold, (UINT)lpcomstat->fXoffHold, (UINT)lpcomstat->fXoffSent, (UINT)lpcomstat->fEof, (UINT)lpcomstat->fTxim, #else (UINT)((lpcomstat->status & CSTF_CTSHOLD ) == CSTF_CTSHOLD ), (UINT)((lpcomstat->status & CSTF_DSRHOLD ) == CSTF_DSRHOLD ), (UINT)((lpcomstat->status & CSTF_RLSDHOLD) == CSTF_RLSDHOLD), (UINT)((lpcomstat->status & CSTF_XOFFHOLD) == CSTF_XOFFHOLD), (UINT)((lpcomstat->status & CSTF_XOFFSENT) == CSTF_XOFFSENT), (UINT)((lpcomstat->status & CSTF_EOF ) == CSTF_EOF ), (UINT)((lpcomstat->status & CSTF_TXIM ) == CSTF_TXIM ), #endif (UINT)lpcomstat->cbInQue, (UINT)lpcomstat->cbOutQue ); WriteBuff( (LPSTR)chTemp ); } va_list PrtLPCOMSTAT( LPSTR lpstr, va_list marker ) { LPCOMSTAT lpCOMSTAT; lpCOMSTAT = va_arg( marker, LPCOMSTAT ); WriteCOMSTAT( lpCOMSTAT ) ; return( marker ); } va_list PrtLPLOGBRUSH( LPSTR lpstr, va_list marker ) { LPLOGBRUSH lpLogBrush ; char chTemp[80] ; lpLogBrush = va_arg( marker, LPLOGBRUSH ) ; if ( lpLogBrush == (LPLOGBRUSH)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %lX %X} ", lpLogBrush->lbStyle, lpLogBrush->lbColor, lpLogBrush->lbHatch ) ; WriteBuff( (LPSTR)chTemp ) ; } return( marker ); } va_list PrtLPDEVMODE( LPSTR lpstr, va_list marker ) { LPDEVMODE lpDevMode; char chTemp[256]; lpDevMode = va_arg( marker, LPDEVMODE ) ; if ( lpDevMode == (LPDEVMODE)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( chTemp, "{\"%s\" %X %X %X %X %lX %X %X %X %X %X %X %X %X %X %X } ", (LPSTR)lpDevMode->dmDeviceName, lpDevMode->dmSpecVersion, lpDevMode->dmDriverVersion, lpDevMode->dmSize, lpDevMode->dmDriverExtra, lpDevMode->dmFields, lpDevMode->dmOrientation, lpDevMode->dmPaperSize, lpDevMode->dmPaperLength, lpDevMode->dmPaperWidth, lpDevMode->dmScale, lpDevMode->dmCopies, lpDevMode->dmDefaultSource, lpDevMode->dmPrintQuality, lpDevMode->dmColor, lpDevMode->dmDuplex ); WriteBuff( (LPSTR)chTemp ) ; } return( marker ); } void WriteLPPALETTEENTRY( LPPALETTEENTRY lpPaletteEntry ) { char chTemp[80]; int len; if ( lpPaletteEntry == NULL ) { WriteBuff( "NULL " ); nLineLen += 5; } else { wsprintf( chTemp, "{%X %X %X %X} ", lpPaletteEntry->peRed, lpPaletteEntry->peGreen, lpPaletteEntry->peBlue, lpPaletteEntry->peFlags ); len = lstrlen(chTemp); if ( nLineLen + len > 200 ) { EndLineBuff(); WriteBuff( "**|DATA:x "); nLineLen = 10; } WriteBuff( chTemp ); nLineLen += len; } } va_list PrtLPPALETTEENTRY( LPSTR lpstr, va_list marker ) { LPPALETTEENTRY lpPaletteEntry; lpPaletteEntry = va_arg( marker, LPPALETTEENTRY ); WriteLPPALETTEENTRY( lpPaletteEntry ); return( marker ); } va_list PrtLPLOGPALETTE( LPSTR lpstr, va_list marker ) { LPLOGPALETTE lpLogPalette; char chTemp[80]; int i; lpLogPalette = va_arg( marker, LPLOGPALETTE ) ; if ( lpLogPalette == NULL ) { WriteBuff( "NULL " ); nLineLen += 5; } else { wsprintf( chTemp, "{%X %X ", lpLogPalette->palVersion, lpLogPalette->palNumEntries ); WriteBuff( chTemp ); nLineLen += lstrlen(chTemp); for ( i = 0; i < lpLogPalette->palNumEntries; i++ ) { WriteLPPALETTEENTRY( &lpLogPalette->palPalEntry[i] ); } WriteBuff( "}" ); } return( marker ); } va_list PrtLPLOGPEN( LPSTR lpstr, va_list marker ) { LPLOGPEN lpLogPen ; char chTemp[80] ; lpLogPen = va_arg( marker, LPLOGPEN ) ; if ( lpLogPen == (LPLOGPEN)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X {%X %X} %lX} ", lpLogPen->lopnStyle, lpLogPen->lopnWidth.x, lpLogPen->lopnWidth.y, lpLogPen->lopnColor ) ; WriteBuff( (LPSTR)chTemp ) ; } return( marker ); } #ifdef WIN32 void WriteLPTEXTMETRICA( LPTEXTMETRICA lptm ) { char chTemp[200] ; if ( lptm == (LPTEXTMETRICA)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X %X %X %X %X %X %X %X %X %X %X %X %X %X %X %X %X} ", lptm->tmHeight, lptm->tmAscent, lptm->tmDescent, lptm->tmInternalLeading, lptm->tmExternalLeading, lptm->tmAveCharWidth, lptm->tmMaxCharWidth, lptm->tmWeight, (int)lptm->tmItalic, (int)lptm->tmUnderlined, (int)lptm->tmStruckOut, (int)lptm->tmFirstChar, (int)lptm->tmLastChar, (int)lptm->tmDefaultChar, (int)lptm->tmBreakChar, (int)lptm->tmPitchAndFamily, (int)lptm->tmCharSet, lptm->tmOverhang, lptm->tmDigitizedAspectX, lptm->tmDigitizedAspectY ) ; WriteBuff( (LPSTR)chTemp ) ; } } va_list PrtLPTEXTMETRICA( LPSTR lpstr, va_list marker ) { LPTEXTMETRICA lptm ; lptm = va_arg( marker, LPTEXTMETRICA ) ; WriteLPTEXTMETRICA( lptm ); return( marker ); } void WriteLPTEXTMETRICW( LPTEXTMETRICW lptm ) { char chTemp[200] ; if ( lptm == (LPTEXTMETRICW)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X %X %X %X %X %X %X %X %X %X %X %X %X %X %X %X %X} ", lptm->tmHeight, lptm->tmAscent, lptm->tmDescent, lptm->tmInternalLeading, lptm->tmExternalLeading, lptm->tmAveCharWidth, lptm->tmMaxCharWidth, lptm->tmWeight, (int)lptm->tmItalic, (int)lptm->tmUnderlined, (int)lptm->tmStruckOut, (int)lptm->tmFirstChar, (int)lptm->tmLastChar, (int)lptm->tmDefaultChar, (int)lptm->tmBreakChar, (int)lptm->tmPitchAndFamily, (int)lptm->tmCharSet, lptm->tmOverhang, lptm->tmDigitizedAspectX, lptm->tmDigitizedAspectY ) ; WriteBuff( (LPSTR)chTemp ) ; } } va_list PrtLPTEXTMETRICW( LPSTR lpstr, va_list marker ) { LPTEXTMETRICW lptm ; lptm = va_arg( marker, LPTEXTMETRICW ) ; WriteLPTEXTMETRICW( lptm ); return( marker ); } #else void WriteLPTEXTMETRIC( LPTEXTMETRIC lptm ) { char chTemp[200] ; if ( lptm == (LPTEXTMETRIC)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X %X %X %X %X %X %X %X %X %X %X %X %X %X %X %X %X} ", lptm->tmHeight, lptm->tmAscent, lptm->tmDescent, lptm->tmInternalLeading, lptm->tmExternalLeading, lptm->tmAveCharWidth, lptm->tmMaxCharWidth, lptm->tmWeight, (int)lptm->tmItalic, (int)lptm->tmUnderlined, (int)lptm->tmStruckOut, (int)lptm->tmFirstChar, (int)lptm->tmLastChar, (int)lptm->tmDefaultChar, (int)lptm->tmBreakChar, (int)lptm->tmPitchAndFamily, (int)lptm->tmCharSet, lptm->tmOverhang, lptm->tmDigitizedAspectX, lptm->tmDigitizedAspectY ) ; WriteBuff( (LPSTR)chTemp ) ; } } va_list PrtLPTEXTMETRIC( LPSTR lpstr, va_list marker ) { LPTEXTMETRIC lptm ; lptm = va_arg( marker, LPTEXTMETRIC ) ; WriteLPTEXTMETRIC( lptm ); return( marker ); } #endif /* WIN32 */ #if (WINVER >= 0x30a ) void WriteLPPANOSE( LPPANOSE lppan ) { char chTemp[200] ; if ( lppan == (LPPANOSE)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X %X %X %X %X} ", lppan->bFamilyType, lppan->bSerifStyle, lppan->bWeight, lppan->bProportion, lppan->bContrast, lppan->bStrokeVariation, lppan->bArmStyle, lppan->bLetterform, lppan->bMidline, lppan->bXHeight ); WriteBuff( (LPSTR)chTemp ); } } #ifdef WIN32 va_list PrtLPOUTLINETEXTMETRICA( LPSTR lpstr, va_list marker ) { LPOUTLINETEXTMETRICA lpotm ; char chTemp[400] ; lpotm = va_arg( marker, LPOUTLINETEXTMETRICA ) ; if ( lpotm == (LPOUTLINETEXTMETRICA)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( chTemp,"{%X ", lpotm->otmSize ); WriteBuff( (LPSTR)chTemp ); WriteLPTEXTMETRICA( &lpotm->otmTextMetrics ); wsprintf( chTemp,"%X ", lpotm->otmFiller ); WriteBuff( (LPSTR)chTemp ); WriteLPPANOSE( &lpotm->otmPanoseNumber ); wsprintf( chTemp,"%X %X %X %X %X %X %X %X %X %X %X {%X %X %X %X} %X %X %X %X {%X %X} {%X %X} {%X %X} {%X %X} %X %X %X %X ", lpotm->otmfsSelection, lpotm->otmfsType, lpotm->otmsCharSlopeRise, lpotm->otmsCharSlopeRun, lpotm->otmItalicAngle, lpotm->otmEMSquare, lpotm->otmAscent, lpotm->otmDescent, lpotm->otmLineGap, lpotm->otmsCapEmHeight, lpotm->otmsXHeight, lpotm->otmrcFontBox.left, lpotm->otmrcFontBox.top, lpotm->otmrcFontBox.right, lpotm->otmrcFontBox.bottom, lpotm->otmMacAscent, lpotm->otmMacDescent, lpotm->otmMacLineGap, lpotm->otmusMinimumPPEM, lpotm->otmptSubscriptSize.x, lpotm->otmptSubscriptSize.y, lpotm->otmptSubscriptOffset.x, lpotm->otmptSubscriptOffset.y, lpotm->otmptSuperscriptSize.x, lpotm->otmptSuperscriptSize.y, lpotm->otmptSuperscriptOffset.x, lpotm->otmptSuperscriptOffset.y, lpotm->otmsStrikeoutSize, lpotm->otmsStrikeoutPosition, lpotm->otmsUnderscorePosition, lpotm->otmsUnderscoreSize ) ; WriteBuff( (LPSTR)chTemp ) ; wsprintf( chTemp,"\"%s\" \"%s\" \"%s\" \"%s\"} ", (LPSTR)lpotm + (int)lpotm->otmpFamilyName, (LPSTR)lpotm + (int)lpotm->otmpFaceName, (LPSTR)lpotm + (int)lpotm->otmpStyleName, (LPSTR)lpotm + (int)lpotm->otmpFullName ); WriteBuff( (LPSTR)chTemp ) ; } return( marker ); } va_list PrtLPOUTLINETEXTMETRICW( LPSTR lpstr, va_list marker ) { LPOUTLINETEXTMETRICW lpotm ; char chTemp[400] ; lpotm = va_arg( marker, LPOUTLINETEXTMETRICW ) ; if ( lpotm == (LPOUTLINETEXTMETRICW)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( chTemp,"{%X ", lpotm->otmSize ); WriteBuff( (LPSTR)chTemp ); WriteLPTEXTMETRICW( &lpotm->otmTextMetrics ); wsprintf( chTemp,"%X ", lpotm->otmFiller ); WriteBuff( (LPSTR)chTemp ); WriteLPPANOSE( &lpotm->otmPanoseNumber ); wsprintf( chTemp,"%X %X %X %X %X %X %X %X %X %X %X {%X %X %X %X} %X %X %X %X {%X %X} {%X %X} {%X %X} {%X %X} %X %X %X %X \"%s\" \"%s\" \"%s\" \"%s\"} ", lpotm->otmfsSelection, lpotm->otmfsType, lpotm->otmsCharSlopeRise, lpotm->otmsCharSlopeRun, lpotm->otmItalicAngle, lpotm->otmEMSquare, lpotm->otmAscent, lpotm->otmDescent, lpotm->otmLineGap, lpotm->otmsCapEmHeight, lpotm->otmsXHeight, lpotm->otmrcFontBox.left, lpotm->otmrcFontBox.top, lpotm->otmrcFontBox.right, lpotm->otmrcFontBox.bottom, lpotm->otmMacAscent, lpotm->otmMacDescent, lpotm->otmMacLineGap, lpotm->otmusMinimumPPEM, lpotm->otmptSubscriptSize.x, lpotm->otmptSubscriptSize.y, lpotm->otmptSubscriptOffset.x, lpotm->otmptSubscriptOffset.y, lpotm->otmptSuperscriptSize.x, lpotm->otmptSuperscriptSize.y, lpotm->otmptSuperscriptOffset.x, lpotm->otmptSuperscriptOffset.y, lpotm->otmsStrikeoutSize, lpotm->otmsStrikeoutPosition, lpotm->otmsUnderscorePosition, lpotm->otmsUnderscoreSize ) ; WriteBuff( (LPSTR)chTemp ) ; wsprintf( chTemp,"\"%s\" \"%s\" \"%s\" \"%s\"} ", (LPSTR)lpotm + (int)lpotm->otmpFamilyName, (LPSTR)lpotm + (int)lpotm->otmpFaceName, (LPSTR)lpotm + (int)lpotm->otmpStyleName, (LPSTR)lpotm + (int)lpotm->otmpFullName ); WriteBuff( (LPSTR)chTemp ) ; } return( marker ); } #else va_list PrtLPOUTLINETEXTMETRIC( LPSTR lpstr, va_list marker ) { LPOUTLINETEXTMETRIC lpotm ; char chTemp[400] ; lpotm = va_arg( marker, LPOUTLINETEXTMETRIC ) ; if ( lpotm == (LPOUTLINETEXTMETRIC)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( chTemp,"{%X ", lpotm->otmSize ); WriteBuff( (LPSTR)chTemp ); WriteLPTEXTMETRIC( &lpotm->otmTextMetrics ); wsprintf( chTemp,"%X ", lpotm->otmFiller ); WriteBuff( (LPSTR)chTemp ); WriteLPPANOSE( &lpotm->otmPanoseNumber ); wsprintf( chTemp,"%X %X %X %X %X %X %X %X %X %X %X {%X %X %X %X} %X %X %X %X {%X %X} {%X %X} {%X %X} {%X %X} %X %X %X %X \"%s\" \"%s\" \"%s\" \"%s\"} ", lpotm->otmfsSelection, lpotm->otmfsType, lpotm->otmsCharSlopeRise, lpotm->otmsCharSlopeRun, lpotm->otmItalicAngle, lpotm->otmEMSquare, lpotm->otmAscent, lpotm->otmDescent, lpotm->otmLineGap, lpotm->otmsCapEmHeight, lpotm->otmsXHeight, lpotm->otmrcFontBox.left, lpotm->otmrcFontBox.top, lpotm->otmrcFontBox.right, lpotm->otmrcFontBox.bottom, lpotm->otmMacAscent, lpotm->otmMacDescent, lpotm->otmMacLineGap, lpotm->otmusMinimumPPEM, lpotm->otmptSubscriptSize.x, lpotm->otmptSubscriptSize.y, lpotm->otmptSubscriptOffset.x, lpotm->otmptSubscriptOffset.y, lpotm->otmptSuperscriptSize.x, lpotm->otmptSuperscriptSize.y, lpotm->otmptSuperscriptOffset.x, lpotm->otmptSuperscriptOffset.y, lpotm->otmsStrikeoutSize, lpotm->otmsStrikeoutPosition, lpotm->otmsUnderscorePosition, lpotm->otmsUnderscoreSize ) ; WriteBuff( (LPSTR)chTemp ) ; wsprintf( chTemp,"\"%s\" \"%s\" \"%s\" \"%s\"} ", (LPSTR)lpotm + (int)lpotm->otmpFamilyName, (LPSTR)lpotm + (int)lpotm->otmpFaceName, (LPSTR)lpotm + (int)lpotm->otmpStyleName, (LPSTR)lpotm + (int)lpotm->otmpFullName ); WriteBuff( (LPSTR)chTemp ) ; } return( marker ); } #endif /* WIN32 */ va_list PrtLPGLYPHMETRICS( LPSTR lpstr, va_list marker ) { LPGLYPHMETRICS lpgm; char chTemp[80]; lpgm = va_arg( marker, LPGLYPHMETRICS ); if ( lpgm == (LPGLYPHMETRICS)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( chTemp,"{%X %X", lpgm->gmBlackBoxX, lpgm->gmBlackBoxY ); WriteBuff( (LPSTR)chTemp ); WriteLPPOINT( &(lpgm->gmptGlyphOrigin), 1 ); wsprintf( chTemp,"%X %X} ", lpgm->gmCellIncX, lpgm->gmCellIncY ); WriteBuff( (LPSTR)chTemp ); } return( marker ); } void WriteFIXED (FIXED *lpfix ) { char chTemp[80]; int len; if ( lpfix == NULL ) { WriteBuff( "NULL " ); nLineLen += 5; } else { wsprintf( chTemp, "{%X %X} ", lpfix->fract, lpfix->value ); len = lstrlen(chTemp); if ( nLineLen + len > 200 ) { EndLineBuff(); WriteBuff( "**|DATA:x "); nLineLen = 10; } WriteBuff( chTemp ); nLineLen += len; } } va_list PrtLPMAT2( LPSTR lpstr, va_list marker ) { LPMAT2 lpm2; char chTemp[80]; lpm2 = va_arg( marker, LPMAT2 ); if ( lpm2 == (LPMAT2)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{" ); WriteBuff( (LPSTR)chTemp ); WriteFIXED( &(lpm2->eM11) ); WriteFIXED( &(lpm2->eM12) ); WriteFIXED( &(lpm2->eM21) ); WriteFIXED( &(lpm2->eM22) ); wsprintf( (LPSTR)chTemp, (LPSTR)"} "); WriteBuff( (LPSTR)chTemp ); } return( marker ); } #endif void WriteLPCREATESTRUCT( LPCREATESTRUCT lpcs ) { char chTemp[80] ; wsprintf( (LPSTR)chTemp, (LPSTR)"{%lX ", lpcs->lpCreateParams ); WriteBuff( (LPSTR)chTemp ); WriteHMEM( lpcs->hInstance ); WriteHMENU( lpcs->hMenu ); WriteHWND( lpcs->hwndParent ); wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X %X %X %lX ", lpcs->cy, lpcs->cx, lpcs->y, lpcs->x, lpcs->style ) ; WriteBuff( (LPSTR)chTemp ); WriteLPSTR( lpcs->lpszName, 0 ) ; WriteLPSTR( lpcs->lpszClass, 0 ) ; wsprintf( (LPSTR)chTemp, (LPSTR)" %lX", lpcs->dwExStyle ) ; WriteBuff( (LPSTR)chTemp ); WriteBuff( (LPSTR) "} " ) ; } void WriteLPMDICREATESTRUCT( LPMDICREATESTRUCT lpcs ) { char chTemp[80] ; WriteBuff( (LPSTR) "{" ) ; WriteLPSTR( lpcs->szClass, 0 ) ; WriteLPSTR( lpcs->szTitle, 0 ) ; WriteHMEM( lpcs->hOwner ); wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X %X %X %lX %lX", lpcs->x, lpcs->y, lpcs->cx, lpcs->cy, lpcs->style, lpcs->lParam ) ; WriteBuff( (LPSTR)chTemp ); WriteBuff( (LPSTR) "} " ) ; } #ifdef WIN32 void WriteLPCREATESTRUCTW( LPCREATESTRUCTW lpcs ) { char chTemp[80] ; wsprintf( (LPSTR)chTemp, (LPSTR)"{%lX ", lpcs->lpCreateParams ); WriteBuff( (LPSTR)chTemp ); WriteHMEM( lpcs->hInstance ); WriteHMENU( lpcs->hMenu ); WriteHWND( lpcs->hwndParent ); wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X %X %X %lX ", lpcs->cy, lpcs->cx, lpcs->y, lpcs->x, lpcs->style ) ; WriteBuff( (LPSTR)chTemp ); WriteLPWSTR( lpcs->lpszName, 0 ) ; WriteLPWSTR( lpcs->lpszClass, 0 ) ; wsprintf( (LPSTR)chTemp, (LPSTR)" %lX", lpcs->dwExStyle ) ; WriteBuff( (LPSTR)chTemp ); WriteBuff( (LPSTR) "} " ) ; } void WriteLPMDICREATESTRUCTW( LPMDICREATESTRUCTW lpcs ) { char chTemp[80] ; WriteBuff( (LPSTR) "{" ) ; WriteLPWSTR( lpcs->szClass, 0 ) ; WriteLPWSTR( lpcs->szTitle, 0 ) ; WriteHMEM( lpcs->hOwner ); wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X %X %X %lX %lX", lpcs->x, lpcs->y, lpcs->cx, lpcs->cy, lpcs->style, lpcs->lParam ) ; WriteBuff( (LPSTR)chTemp ); WriteBuff( (LPSTR) "} " ) ; } #endif /* WIN32 */ #define NCBNAMSZ 16 typedef struct _internalNCB { BYTE ncb_command; /* command code */ BYTE ncb_retcode; /* return code */ BYTE ncb_lsn; /* local session number */ BYTE ncb_num; /* number of our network name */ LPBYTE ncb_buffer; /* address of message buffer */ WORD ncb_length; /* size of message buffer */ BYTE ncb_callname[NCBNAMSZ]; /* blank-padded name of remote */ BYTE ncb_name[NCBNAMSZ]; /* our blank-padded netname */ BYTE ncb_rto; /* rcv timeout/retry count */ BYTE ncb_sto; /* send timeout/sys timeout */ LPSTR ncb_post; /* POST routine address */ BYTE ncb_lana_num; /* lana (adapter) number */ BYTE ncb_cmd_cplt; /* 0xff => commmand pending */ BYTE ncb_reserve[10]; /* reserved, used by BIOS */ } INTERNALNCB, FAR *LPINTERNALNCB; typedef struct _ncb_cname { LPSTR lpstrName; BYTE bCommand; } NCB_CNAME; NCB_CNAME ncb_commands[] = { "NCBCALL", 0x10, /* NCB CALL */ "NCBLISTEN", 0x11, /* NCB LISTEN */ "NCBHANGUP", 0x12, /* NCB HANG UP */ "NCBSEND", 0x14, /* NCB SEND */ "NCBRECV", 0x15, /* NCB RECEIVE */ "NCBRECVANY", 0x16, /* NCB RECEIVE ANY */ "NCBCHAINSEND", 0x17, /* NCB CHAIN SEND */ "NCBDGSEND", 0x20, /* NCB SEND DATAGRAM */ "NCBDGRECV", 0x21, /* NCB RECEIVE DATAGRAM */ "NCBDGSENDBC", 0x22, /* NCB SEND BROADCAST DATAGRAM */ "NCBDGRECVBC", 0x23, /* NCB RECEIVE BROADCAST DATAGRAM */ "NCBADDNAME", 0x30, /* NCB ADD NAME */ "NCBDELNAME", 0x31, /* NCB DELETE NAME */ "NCBRESET", 0x32, /* NCB RESET */ "NCBASTAT", 0x33, /* NCB ADAPTER STATUS */ "NCBSSTAT", 0x34, /* NCB SESSION STATUS */ "NCBCANCEL", 0x35, /* NCB CANCEL */ "NCBADDGRNAME", 0x36, /* NCB ADD GROUP NAME */ "NCBENUM", 0x37, /* NCB ENUMERATE LANA NUMBERS */ "NCBUNLINK", 0x70, /* NCB UNLINK */ "NCBSENDNA", 0x71, /* NCB SEND NO ACK */ "NCBCHAINSENDNA",0x72, /* NCB CHAIN SEND NO ACK */ "NCBLANSTALERT", 0x73, /* NCB LAN STATUS ALERT */ "NCBACTION", 0x77, /* NCB ACTION */ "NCBFINDNAME", 0x78, /* NCB FIND NAME */ "NCBTRACE", 0x79, /* NCB TRACE */ }; va_list PrtLPNCB( LPSTR lpstr, va_list marker ) { LPINTERNALNCB lpncb; char chTemp[80]; char chCallName[80]; char chName[80]; int cCommand; LPSTR lpstrCommand; lpncb = va_arg( marker, LPINTERNALNCB ); if ( lpncb == (LPINTERNALNCB)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { memcpy( chCallName, lpncb->ncb_callname, NCBNAMSZ ); chCallName[NCBNAMSZ] = '\0'; memcpy( chName, lpncb->ncb_name, NCBNAMSZ ); chName[NCBNAMSZ] = '\0'; lpstrCommand = (LPSTR)"Unknown"; cCommand = 0; while ( cCommand < sizeof(ncb_commands)/sizeof(ncb_commands[0]) ) { if ( (lpncb->ncb_command & 0x7F) == ncb_commands[cCommand].bCommand ) { lpstrCommand = ncb_commands[cCommand].lpstrName; break; } cCommand++; } wsprintf( (LPSTR)chTemp, (LPSTR)"{%X-%s %X %X %X %08lX %X \"%s\" \"%s\" %X %X %08lX %X %X} ", lpncb->ncb_command, lpstrCommand, lpncb->ncb_retcode, lpncb->ncb_lsn, lpncb->ncb_num, lpncb->ncb_buffer, lpncb->ncb_length, chCallName, chName, lpncb->ncb_rto, lpncb->ncb_sto, lpncb->ncb_post, lpncb->ncb_lana_num, lpncb->ncb_cmd_cplt ) ; WriteBuff( (LPSTR)chTemp ) ; } return( marker ); } #ifdef WIN32 va_list PrtLPLOGFONTA( LPSTR lpstr, va_list marker ) { LPLOGFONTA lpLogFont ; char chTemp[80] ; #ifdef NOT_NEW_BETTER_WAY int i = 0 ; #endif lpLogFont = va_arg( marker, LPLOGFONTA ) ; if ( lpLogFont == (LPLOGFONTA)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X %X %X %X %X %X %X %X %X %X ", lpLogFont->lfHeight, lpLogFont->lfWidth, lpLogFont->lfEscapement, lpLogFont->lfOrientation, lpLogFont->lfWeight, lpLogFont->lfItalic, lpLogFont->lfUnderline, lpLogFont->lfStrikeOut, lpLogFont->lfCharSet, lpLogFont->lfOutPrecision, lpLogFont->lfClipPrecision, lpLogFont->lfQuality, lpLogFont->lfPitchAndFamily ) ; WriteBuff( (LPSTR)chTemp ) ; #ifndef NOT_NEW_BETTER_WAY WriteLPSTR( &lpLogFont->lfFaceName[0], 0 ); #else while( i < LF_FACESIZE ) { wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", lpLogFont->lfFaceName[i] ) ; WriteBuff( (LPSTR)chTemp ) ; i++ ; } ; #endif WriteBuff( (LPSTR)"} " ) ; } return( marker ); } void WriteLPLOGFONTW( LPLOGFONTW lpLogFont ) { #ifdef NOT_NEW_BETTER_WAY int i = 0 ; #endif char chTemp[150] ; if ( lpLogFont == (LPLOGFONTW)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X %X %X %X %X %X %X %X %X %X ", lpLogFont->lfHeight, lpLogFont->lfWidth, lpLogFont->lfEscapement, lpLogFont->lfOrientation, lpLogFont->lfWeight, lpLogFont->lfItalic, lpLogFont->lfUnderline, lpLogFont->lfStrikeOut, lpLogFont->lfCharSet, lpLogFont->lfOutPrecision, lpLogFont->lfClipPrecision, lpLogFont->lfQuality, lpLogFont->lfPitchAndFamily ) ; WriteBuff( (LPSTR)chTemp ) ; #ifndef NOT_NEW_BETTER_WAY WriteLPWSTR( &lpLogFont->lfFaceName[0], 0 ); #else while( i < LF_FACESIZE ) { wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", lpLogFont->lfFaceName[i] ) ; WriteBuff( (LPSTR)chTemp ) ; i++ ; } ; #endif WriteBuff( (LPSTR)"} " ) ; } } va_list PrtLPLOGFONTW( LPSTR lpstr, va_list marker ) { LPLOGFONTW lpLogFont ; lpLogFont = va_arg( marker, LPLOGFONTW ) ; WriteLPLOGFONTW( lpLogFont ) ; return( marker ); } #else va_list PrtLPLOGFONT( LPSTR lpstr, va_list marker ) { LPLOGFONT lpLogFont ; char chTemp[80] ; #ifdef NOT_NEW_BETTER_WAY int i = 0 ; #endif lpLogFont = va_arg( marker, LPLOGFONT ) ; if ( lpLogFont == (LPLOGFONT)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X %X %X %X %X %X %X %X %X %X ", lpLogFont->lfHeight, lpLogFont->lfWidth, lpLogFont->lfEscapement, lpLogFont->lfOrientation, lpLogFont->lfWeight, lpLogFont->lfItalic, lpLogFont->lfUnderline, lpLogFont->lfStrikeOut, lpLogFont->lfCharSet, lpLogFont->lfOutPrecision, lpLogFont->lfClipPrecision, lpLogFont->lfQuality, lpLogFont->lfPitchAndFamily ) ; WriteBuff( (LPSTR)chTemp ) ; #ifndef NOT_NEW_BETTER_WAY WriteLPSTR( &lpLogFont->lfFaceName[0], 0 ); #else while( i < LF_FACESIZE ) { wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", lpLogFont->lfFaceName[i] ) ; WriteBuff( (LPSTR)chTemp ) ; i++ ; } ; #endif WriteBuff( (LPSTR)"} " ) ; } return( marker ); } #endif /* WIN32 */ #ifdef WIN32 va_list PrtLPWNDCLASSA( LPSTR lpstr, va_list marker ) { LPWNDCLASSA lpwc ; char chTemp[50] ; BOOL fSaveAliasFlag = fAlias ; lpwc = va_arg( marker, LPWNDCLASSA ); if ( lpwc == (LPWNDCLASSA)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X ", lpwc->style ) ; WriteBuff( (LPSTR)chTemp ) ; WriteFARPROC( (FARPROC)lpwc->lpfnWndProc ) ; wsprintf( (LPSTR)chTemp, (LPSTR)" %X %X ", lpwc->cbClsExtra, lpwc->cbWndExtra ); WriteBuff( (LPSTR)chTemp ) ; WriteHMEM( lpwc->hInstance ); WriteHICON( lpwc->hIcon ); WriteHCURSOR( lpwc->hCursor ); /* ** A brush in this context can be one of two things ** 1) a real HBRUSH created by calling a GDI function OR ** 2) a constant representing a brush of a system defined color ** ** Modifying so case 2 always writes a number (for SGA - MarkRi) */ if( (int)(lpwc->hbrBackground) < COLOR_ENDCOLORS ) { // Force Aliasing OFF fAlias = FALSE ; } WriteHBRUSH( lpwc->hbrBackground ); // restore Alias flag fAlias = fSaveAliasFlag ; WriteLPSTR( lpwc->lpszMenuName, 0 ) ; WriteBuff( (LPSTR)" " ) ; WriteLPSTR( lpwc->lpszClassName, 0 ) ; WriteBuff( (LPSTR)"} " ) ; } return( marker ); } va_list PrtLPWNDCLASSW( LPSTR lpstr, va_list marker ) { LPWNDCLASSW lpwc ; char chTemp[50] ; BOOL fSaveAliasFlag = fAlias ; lpwc = va_arg( marker, LPWNDCLASSW ); if ( lpwc == (LPWNDCLASSW)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X ", lpwc->style ) ; WriteBuff( (LPSTR)chTemp ) ; WriteFARPROC( (FARPROC)lpwc->lpfnWndProc ) ; wsprintf( (LPSTR)chTemp, (LPSTR)" %X %X ", lpwc->cbClsExtra, lpwc->cbWndExtra ); WriteBuff( (LPSTR)chTemp ) ; WriteHMEM( lpwc->hInstance ); WriteHICON( lpwc->hIcon ); WriteHCURSOR( lpwc->hCursor ); /* ** A brush in this context can be one of two things ** 1) a real HBRUSH created by calling a GDI function OR ** 2) a constant representing a brush of a system defined color ** ** Modifying so case 2 always writes a number (for SGA - MarkRi) */ if( (int)(lpwc->hbrBackground) < COLOR_ENDCOLORS ) { // Force Aliasing OFF fAlias = FALSE ; } WriteHBRUSH( lpwc->hbrBackground ); // restore Alias flag fAlias = fSaveAliasFlag ; WriteLPWSTR( lpwc->lpszMenuName, 0 ) ; WriteBuff( (LPSTR)" " ) ; WriteLPWSTR( lpwc->lpszClassName, 0 ) ; WriteBuff( (LPSTR)"} " ) ; } return( marker ); } #else va_list PrtLPWNDCLASS( LPSTR lpstr, va_list marker ) { LPWNDCLASS lpwc ; char chTemp[50] ; BOOL fSaveAliasFlag = fAlias ; lpwc = va_arg( marker, LPWNDCLASS ); if ( lpwc == (LPWNDCLASS)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X ", lpwc->style ) ; WriteBuff( (LPSTR)chTemp ) ; WriteFARPROC( (FARPROC)lpwc->lpfnWndProc ) ; wsprintf( (LPSTR)chTemp, (LPSTR)" %X %X ", lpwc->cbClsExtra, lpwc->cbWndExtra ); WriteBuff( (LPSTR)chTemp ) ; WriteHMEM( lpwc->hInstance ); WriteHICON( lpwc->hIcon ); WriteHCURSOR( lpwc->hCursor ); /* ** A brush in this context can be one of two things ** 1) a real HBRUSH created by calling a GDI function OR ** 2) a constant representing a brush of a system defined color ** ** Modifying so case 2 always writes a number (for SGA - MarkRi) */ if( lpwc->hbrBackground < COLOR_ENDCOLORS ) { // Force Aliasing OFF fAlias = FALSE ; } WriteHBRUSH( lpwc->hbrBackground ); // restore Alias flag fAlias = fSaveAliasFlag ; WriteLPSTR( lpwc->lpszMenuName, 0 ) ; WriteBuff( (LPSTR)" " ) ; WriteLPSTR( lpwc->lpszClassName, 0 ) ; WriteBuff( (LPSTR)"} " ) ; } return( marker ); } #endif va_list PrtLPEVENTMSG( LPSTR lpstr, va_list marker ) { LPEVENTMSG lpeventmsg; char chTemp[80]; lpeventmsg = va_arg( marker, LPEVENTMSG ); if ( lpeventmsg == NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X ", lpeventmsg->message, lpeventmsg->paramL, lpeventmsg->paramH ) ; WriteBuff( (LPSTR)chTemp ); WriteTIME( lpeventmsg->time ) ; WriteBuff( "} " ) ; } return( marker ); } va_list PrtLPMSG( LPSTR lpstr, va_list marker ) { LPMSG lpmsg; char chTemp[80]; lpmsg = va_arg( marker, LPMSG ); if ( lpmsg == (LPMSG)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { WriteBuff( "{" ); WriteHWND( lpmsg->hwnd ); wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X %lX ", lpmsg->message, lpmsg->wParam, lpmsg->lParam ) ; WriteBuff( (LPSTR)chTemp ); WriteTIME( lpmsg->time ) ; WriteLPPOINT( (LPPOINT)&lpmsg->pt, 1 ) ; WriteBuff( (LPSTR)"} " ) ; } return( marker ); } va_list PrtLPOFSTRUCT( LPSTR lpstr, va_list marker ) { LPOFSTRUCT lpOfStruct; char chTemp[80]; int i; int j; lpOfStruct = va_arg( marker, LPOFSTRUCT ); if ( lpOfStruct == (LPOFSTRUCT)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X %X %X %X ", lpOfStruct->cBytes, lpOfStruct->fFixedDisk, lpOfStruct->nErrCode, #ifdef WIN32 LOBYTE(lpOfStruct->Reserved1), HIBYTE(lpOfStruct->Reserved1), LOBYTE(lpOfStruct->Reserved2), HIBYTE(lpOfStruct->Reserved2) #else lpOfStruct->reserved[0], lpOfStruct->reserved[1], lpOfStruct->reserved[2], lpOfStruct->reserved[3] #endif ); WriteBuff( (LPSTR)chTemp ) ; if ( lpOfStruct->cBytes <= 135 ) { /* 128 + 8 - 1 */ j = 0; i = 7; while( i < lpOfStruct->cBytes ) { wsprintf( chTemp, "%X ", lpOfStruct->szPathName[j] ) ; WriteBuff( (LPSTR)chTemp ) ; i++; j++; } } WriteBuff( (LPSTR)"} " ) ; } return( marker ); } void WriteLPPAINTSTRUCT( LPPAINTSTRUCT lpPS ) { char chTemp[120]; register short nLen ; if ( lpPS == (LPPAINTSTRUCT)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { WriteBuff( "{" ); WriteHDC( lpPS->hdc ); wsprintf( (LPSTR)chTemp, (LPSTR)"%s {%X %X %X %X} %s %s ", (LPSTR)((lpPS->fErase) ? "TRUE" : "FALSE"), lpPS->rcPaint.left, lpPS->rcPaint.top, lpPS->rcPaint.right, lpPS->rcPaint.bottom, (LPSTR)((lpPS->fRestore) ? "TRUE" : "FALSE"), (LPSTR)((lpPS->fIncUpdate) ? "TRUE" : "FALSE" )); WriteBuff( (LPSTR)chTemp ); if( fAlias ) { PAINTSTRUCT ps; ps = *lpPS; MakeCorrespondence( PS_TABLE, &ps ) ; wsprintf( (LPSTR)chTemp, "PS_%d ", (*(int *)&ps)+1 ); WriteBuff( (LPSTR)chTemp ); } else { for( nLen = 0; nLen < 16; nLen++ ) { wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", (int)lpPS->rgbReserved[nLen] ) ; WriteBuff( (LPSTR)chTemp ); } } WriteBuff( (LPSTR)"} " ) ; } } va_list PrtLPPAINTSTRUCT( LPSTR lpstr, va_list marker ) { LPPAINTSTRUCT lpPS ; lpPS = va_arg( marker, LPPAINTSTRUCT ); WriteLPPAINTSTRUCT( lpPS ) ; return( marker ); } va_list PrtLPPOINT( LPSTR lpstr, va_list marker ) { LPPOINT lppoint; lppoint = va_arg( marker, LPPOINT ); WriteLPPOINT( lppoint, 1 ) ; return( marker ); } void WriteLPRECT( LPRECT lprect ) { char chTemp[40]; if ( lprect == (LPRECT)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X} ", lprect->left, lprect->top, lprect->right, lprect->bottom ); WriteBuff( (LPSTR)chTemp ); } } void WritePSMALL_RECT( PSMALL_RECT lprect ) { char chTemp[40]; if ( lprect == (PSMALL_RECT)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X} ", lprect->Left, lprect->Top, lprect->Right, lprect->Bottom ); WriteBuff( (LPSTR)chTemp ); } } va_list PrtLPRECT( LPSTR lpstr, va_list marker ) { LPRECT lprect; lprect = va_arg( marker, LPRECT ); WriteLPRECT( lprect ) ; return( marker ); } va_list PrtPSMALL_RECT( LPSTR lpstr, va_list marker ) { PSMALL_RECT lprect; lprect = va_arg( marker, PSMALL_RECT ); WritePSMALL_RECT( lprect ) ; return( marker ); } void WriteLPBITMAP( LPBITMAP lpbmp ) { char chTemp[40]; if ( lpbmp == (LPBITMAP)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { DWORD cBytes = lpbmp->bmHeight * lpbmp->bmWidthBytes ; wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X %X %X ", lpbmp->bmType, lpbmp->bmWidth, lpbmp->bmHeight, lpbmp->bmWidthBytes, lpbmp->bmPlanes, lpbmp->bmBitsPixel ); WriteBuff( (LPSTR)chTemp ); /* Dump bits if less than 80 bytes of output */ if( cBytes <= 80 ) WriteLPSTR( lpbmp->bmBits, cBytes ) ; else WriteBuff( (LPSTR)"Veg-a-matic!" ); WriteBuff( (LPSTR)"} " ); } } va_list PrtLPBITMAP( LPSTR lpstr, va_list marker ) { LPBITMAP lpbmp; lpbmp = va_arg( marker, LPBITMAP ); WriteLPBITMAP( lpbmp ) ; return( marker ); } void WriteLPBMIH( LPBITMAPINFOHEADER lpbmp ) { char chTemp[100]; if ( lpbmp == (LPBITMAPINFOHEADER)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { if( lpbmp->biSize == sizeof(BITMAPCOREHEADER) ) { LPBITMAPCOREHEADER lpbch = (LPBITMAPCOREHEADER)lpbmp ; wsprintf( (LPSTR)chTemp, (LPSTR)"{%lX %X %X %X %X}", lpbch->bcSize, lpbch->bcWidth, lpbch->bcHeight, lpbch->bcPlanes, lpbch->bcBitCount ) ; } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%lX %lX %lX %X %X %lX %lX %lX %lX %lX %lX}", lpbmp->biSize, lpbmp->biWidth, lpbmp->biHeight, lpbmp->biPlanes, lpbmp->biBitCount, lpbmp->biCompression, lpbmp->biSizeImage, lpbmp->biXPelsPerMeter, lpbmp->biYPelsPerMeter, lpbmp->biClrUsed, lpbmp->biClrImportant ); } WriteBuff( (LPSTR)chTemp ); } } va_list PrtLPBMIH( LPSTR lpstr, va_list marker ) { LPBITMAPINFOHEADER lpbmp; lpbmp = va_arg( marker, LPBITMAPINFOHEADER ); WriteLPBMIH( lpbmp ) ; return( marker ); } void WriteLPBMI( LPBITMAPINFO lpbmp ) { char chTemp[15]; int i ; if ( lpbmp == (LPBITMAPINFO)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { DWORD cEntries; WriteBuff( (LPSTR)" {") ; WriteLPBMIH((LPBITMAPINFOHEADER)lpbmp) ; if( ((LPBITMAPINFOHEADER)lpbmp)->biSize == sizeof(BITMAPCOREHEADER) ) { // Now dump RGBTRIPLES switch( ((LPBITMAPCOREHEADER)lpbmp)->bcBitCount ) { case 1: cEntries = 2 ; break ; case 4: cEntries = 16 ; break ; case 8: cEntries = 256 ; break ; case 24: // bitmap is RGB no color entries cEntries = 0 ; break ; } // First Dump the number of entries to expect (to help SGA) wsprintf( (LPSTR)chTemp, (LPSTR) " %X", cEntries ) ; WriteBuff( (LPSTR)chTemp ) ; i = 0 ; while( cEntries ) { DWORD dwColor ; dwColor = RGB(((LPBITMAPCOREINFO)lpbmp)->bmciColors[i].rgbtRed, ((LPBITMAPCOREINFO)lpbmp)->bmciColors[i].rgbtGreen, ((LPBITMAPCOREINFO)lpbmp)->bmciColors[i].rgbtBlue ) ; wsprintf( (LPSTR)chTemp, (LPSTR)" %lX", dwColor ); WriteBuff( (LPSTR)chTemp ); cEntries-- ; i++ ; } } else { // Now dump RGBQUADS cEntries = lpbmp->bmiHeader.biClrUsed ; if ( cEntries != 0 ) { switch( lpbmp->bmiHeader.biBitCount ) { case 1: cEntries = 2 ; break ; case 4: cEntries = 16 ; break ; case 8: cEntries = 256 ; break ; case 24: // bitmap is RGB no color entries break ; } } // First Dump the number of entries to expect (to help SGA) wsprintf( (LPSTR)chTemp, (LPSTR) " %X", cEntries ) ; WriteBuff( (LPSTR)chTemp ) ; i = 0 ; while( cEntries ) { DWORD dwColor ; dwColor = RGB( lpbmp->bmiColors[i].rgbRed, lpbmp->bmiColors[i].rgbGreen, lpbmp->bmiColors[i].rgbBlue ) ; wsprintf( (LPSTR)chTemp, (LPSTR)" %lX", dwColor ); WriteBuff( (LPSTR)chTemp ); cEntries-- ; i++ ; } } WriteBuff( (LPSTR)"}") ; } } va_list PrtLPBMI( LPSTR lpstr, va_list marker ) { LPBITMAPINFO lpbmp; lpbmp = va_arg( marker, LPBITMAPINFO ); WriteLPBMI( lpbmp ) ; return( marker ); } va_list PrtFARPROC( LPSTR lpstr, va_list marker ) { FARPROC fp; fp = va_arg( marker, FARPROC ); WriteFARPROC( fp ) ; return( marker ); } va_list PrtLPFARPROC( LPSTR lpstr, va_list marker ) { FARPROC far *lpfp; lpfp = va_arg( marker, FARPROC far * ); if ( lpfp == (FARPROC far *)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { WriteBuff("{") ; WriteFARPROC( *lpfp ) ; WriteBuff("}") ; } return( marker ); } /* These routines are for dumping messsages >= WM_USER such as CB_*, EM_*, and LB_* messages. */ void PrtComboMessage( WORD wMsg, WORD wParam, LONG lParam, BOOL fCall, LONG lRet ) { char chTemp[80] ; LPSTR wm_name ; switch( (WORD)(wMsg - WM_USER) ) { case 0: wm_name = "CB_GETEDITSEL" ; goto Combo_Default_Processing ; case 1: wm_name = "CB_LIMITTEXT" ; goto Combo_Default_Processing ; case 2: wm_name = "CB_SETEDITSEL" ; goto Combo_Default_Processing ; case 3: wm_name = "CB_ADDSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 4: wm_name = "CB_DELETESTRING" ; goto Combo_Default_Processing ; case 5: wm_name = "CB_DIR" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 6: wm_name = "CB_GETCOUNT" ; goto Combo_Default_Processing ; case 7: wm_name = "CB_GETCURSEL" ; goto Combo_Default_Processing ; case 8: wm_name = "CB_GETLBTEXT" ; /* lParam points to buffer */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 9: wm_name = "CB_GETLBTEXTLEN" ; goto Combo_Default_Processing ; case 10: wm_name = "CB_INSERTSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 11: wm_name = "CB_RESETCONTENT" ; goto Combo_Default_Processing ; case 12: wm_name = "CB_FINDSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 13: wm_name = "CB_SELECTSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 14: wm_name = "CB_SETCURSEL" ; goto Combo_Default_Processing ; case 15: wm_name = "CB_SHOWDROPDOWN" ; goto Combo_Default_Processing ; case 16: wm_name = "CB_GETITEMDATA" ; goto Combo_Default_Processing ; case 17: wm_name = "CB_SETITEMDATA" ; goto Combo_Default_Processing ; case 18: wm_name = "CB_GETDROPPEDCONTROLRECT" ; goto Combo_Default_Processing ; case 19: wm_name = "CB_MSGMAX" ; goto Combo_Default_Processing ; default: wm_name = "UNKNOWN"; Combo_Default_Processing: wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %lX ", wMsg, (LPSTR)wm_name, wParam, lParam ); WriteBuff( (LPSTR)chTemp ); break ; } } void PrtEditMessage( WORD wMsg, WORD wParam, LONG lParam, BOOL fCall, LONG lRet ) { char chTemp[80] ; LPSTR wm_name ; switch( (WORD)(wMsg - WM_USER) ) { case 0: wm_name = "EM_GETSEL" ; goto Edit_Default_Processing ; case 1: wm_name = "EM_SETSEL" ; goto Edit_Default_Processing ; case 2: wm_name = "EM_GETRECT" ; /* lParam points to RECT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPRECT( (LPRECT)lParam ) ; break ; case 3: wm_name = "EM_SETRECT" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPRECT( (LPRECT)lParam ) ; break ; case 4: wm_name = "EM_SETRECTNP" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPRECT( (LPRECT)lParam ) ; break ; case 5: wm_name = "EM_SCROLL" ; goto Edit_Default_Processing ; case 6: wm_name = "EM_LINESCROLL" ; goto Edit_Default_Processing ; /* NO 7 */ case 8: wm_name = "EM_GETMODIFY" ; goto Edit_Default_Processing ; case 9: wm_name = "EM_SETMODIFY" ; goto Edit_Default_Processing ; case 10: wm_name = "EM_GETLINECOUNT" ; goto Edit_Default_Processing ; case 11: wm_name = "EM_LINEINDEX" ; goto Edit_Default_Processing ; case 12: /* ** wParam is a HLOCAL */ wm_name = "EM_SETHANDLE" ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHMEM( (HANDLE)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 13: wm_name = "EM_GETHANDLE" ; goto Edit_Default_Processing ; case 14: wm_name = "EM_GETTHUMB" ; goto Edit_Default_Processing ; /* NO 15, 16 */ case 17: wm_name = "EM_LINELENGTH" ; goto Edit_Default_Processing ; case 18: wm_name = "EM_REPLACESEL" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 19: wm_name = "EM_SETFONT" ; /* ** wParam is a HFONT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHFONT( (HFONT)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 20: wm_name = "EM_GETLINE" ; /* lParam points to buffer, first word is length. */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, (DWORD)(*(LPWORD)lParam) ) ; break ; case 21: wm_name = "EM_LIMITTEXT" ; goto Edit_Default_Processing ; case 22: wm_name = "EM_CANUNDO" ; goto Edit_Default_Processing ; case 23: wm_name = "EM_UNDO" ; goto Edit_Default_Processing ; case 24: wm_name = "EM_FMTLINES" ; goto Edit_Default_Processing ; case 25: wm_name = "EM_LINEFROMCHAR" ; goto Edit_Default_Processing ; case 26: /* ** lParam is a FARPROC */ wm_name = "EM_SETWORDBREAK" ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteFARPROC((FARPROC)lParam ) ; break ; case 27: wm_name = "EM_SETTABSTOPS" ; /* lParam points to an array of ints */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPINT( (LPINT)lParam, wParam ) ; break ; case 28: wm_name = "EM_SETPASSWORDCHAR" ; goto Edit_Default_Processing ; case 29: wm_name = "EM_EMPTYUNDOBUFFER" ; goto Edit_Default_Processing ; case 30: wm_name = "EM_MSGMAX" ; goto Edit_Default_Processing ; default: wm_name = "UNKNOWN"; Edit_Default_Processing: wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %lX ", wMsg, (LPSTR)wm_name, wParam, lParam ); WriteBuff( (LPSTR)chTemp ); break ; } } void PrtListMessage( WORD wMsg, WORD wParam, LONG lParam, BOOL fCall, LONG lRet ) { char chTemp[80] ; LPSTR wm_name ; switch( (WORD)(wMsg - WM_USER) ) { /* NO 0 */ case 1: wm_name = "LB_ADDSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 2: wm_name = "LB_INSERTSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 3: wm_name = "LB_DELETESTRING" ; goto List_Default_Processing ; /* NO 4 */ case 5: wm_name = "LB_RESETCONTENT" ; goto List_Default_Processing ; case 6: wm_name = "LB_SETSEL" ; goto List_Default_Processing ; case 7: wm_name = "LB_SETCURSEL" ; goto List_Default_Processing ; case 8: wm_name = "LB_GETSEL" ; goto List_Default_Processing ; case 9: wm_name = "LB_GETCURSEL" ; goto List_Default_Processing ; case 10: wm_name = "LB_GETTEXT" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 11: wm_name = "LB_GETTEXTLEN" ; goto List_Default_Processing ; case 12: wm_name = "LB_GETCOUNT" ; goto List_Default_Processing ; case 13: wm_name = "LB_SELECTSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 14: wm_name = "LB_DIR" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 15: wm_name = "LB_GETTOPINDEX" ; goto List_Default_Processing ; case 16: wm_name = "LB_FINDSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 17: wm_name = "LB_GETSELCOUNT" ; goto List_Default_Processing ; case 18: wm_name = "LB_GETSELITEMS" ; /* lParam points to array of int */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPINT( (LPINT)lParam, wParam ) ; break ; case 19: wm_name = "LB_SETTABSTOPS" ; /* lParam points to array of int */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPINT( (LPINT)lParam, wParam ) ; break ; case 20: wm_name = "LB_GETHORIZONTALEXTENT" ; goto List_Default_Processing ; case 21: wm_name = "LB_SETHORIZONTALEXTENT" ; goto List_Default_Processing ; case 22: wm_name = "LB_SETCOLUMNWIDTH" ; goto List_Default_Processing ; /* NO 23 */ case 24: wm_name = "LB_SETTOPINDEX" ; goto List_Default_Processing ; case 25: wm_name = "LB_GETITEMRECT" ; /* lParam points to a RECT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPRECT( (LPRECT)lParam ) ; break ; case 26: wm_name = "LB_GETITEMDATA" ; goto List_Default_Processing ; case 27: wm_name = "LB_SETITEMDATA" ; goto List_Default_Processing ; case 28: wm_name = "LB_SETITEMRANGE" ; goto List_Default_Processing ; /* NO 29, 30, 31, 32 */ case 33: wm_name = "LB_MSGMAX" ; goto List_Default_Processing ; default: wm_name = "UNKNOWN"; List_Default_Processing: wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %lX ", wMsg, (LPSTR)wm_name, wParam, lParam ); WriteBuff( (LPSTR)chTemp ); break ; } } void PrtButtonMessage( WORD wMsg, WORD wParam, LONG lParam, BOOL fCall, LONG lRet ) { char chTemp[80] ; LPSTR wm_name = "BM_?????" ; switch( (WORD)(wMsg - WM_USER) ) { case 0: wm_name = "BM_GETCHECK" ; break ; case 1: wm_name = "BM_SETCHECK" ; break ; case 2: wm_name = "BM_GETSTATE"; break ; case 3: wm_name = "BM_SETSTATE"; break ; case 4: wm_name = "BM_SETSTYLE"; break ; } wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %lX ", wMsg, (LPSTR)wm_name, wParam, lParam ); WriteBuff( (LPSTR)chTemp ); } void PrtScrollMessage( WORD wMsg, WORD wParam, LONG lParam, BOOL fCall, LONG lRet ) { char chTemp[80] ; LPSTR wm_name = "SBM_?????" ; switch( (WORD)(wMsg - WM_USER) ) { case 0: wm_name = "SBM_SETPOS" ; break ; case 1: wm_name = "SBM_GETPOS" ; break ; case 2: wm_name = "SBM_SETRANGE"; break ; case 3: wm_name = "SBM_GETRANGE"; break ; case 4: wm_name = "SBM_ENABLE_ARROWS"; break ; } wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %lX ", wMsg, (LPSTR)wm_name, wParam, lParam ); WriteBuff( (LPSTR)chTemp ); } void PrtUserMessage( HWND hwnd, WORD wMsg, WORD wParam, LONG lParam, BOOL fCall, LONG lRet ) { char chTemp[80] ; char chClass[25] ; GetClassName( hwnd, chClass, sizeof(chClass) ) ; if( !lstrcmpi( chClass, "COMBOBOX" ) ) PrtComboMessage( wMsg, wParam, lParam, fCall, lRet ) ; else if( !lstrcmpi( chClass, "EDIT" ) ) PrtEditMessage( wMsg, wParam, lParam, fCall, lRet ) ; else if( !lstrcmpi( chClass, "LISTBOX" ) ) PrtListMessage( wMsg, wParam, lParam, fCall, lRet ) ; else if ( !lstrcmpi( chClass, "SCROLLBAR") ) PrtScrollMessage( wMsg, wParam, lParam, fCall, lRet ) ; else if ( !lstrcmpi( chClass, "BUTTON") ) PrtButtonMessage( wMsg, wParam, lParam, fCall, lRet ) ; else { wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %lX ", wMsg, (LPSTR)"UNKNOWN", wParam, lParam ); WriteBuff( (LPSTR)chTemp ); } } /* This routine handles the dumping of all messages. If a message is >= WM_USER then PrtUserMessage() is called. Non-Aliased messages - DDE Messages WM_DROPFILES WM_[H,V]SCROLLCLIPBOARD WM_PAINTCLIPBOARD WM_SIZECLIPBOARD WM_PALETTECHANGED WM_PALETTEISCHANGING */ void PrtMessage( HWND hwnd, WORD wMsg, WORD wParam, LONG lParam, BOOL fCall, LONG lRet ) { char chTemp[80] ; LPSTR wm_name ; if( wMsg >= WM_USER ) PrtUserMessage( hwnd, wMsg, wParam, lParam, fCall, lRet ) ; else switch( wMsg ) { case 0x0000: wm_name = "WM_NULL "; goto Default_Processing ; case 0x0001: /* lParam points to CREATESTRUCT */ wm_name = "WM_CREATE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPCREATESTRUCT( (LPCREATESTRUCT)lParam ) ; break ; case 0x0002: wm_name = "WM_DESTROY"; goto Default_Processing ; case 0x0003: wm_name = "WM_MOVE"; goto Default_Processing ; case 0x0004: wm_name = "WM_SIZEWAIT"; goto Default_Processing ; case 0x0005: wm_name = "WM_SIZE"; goto Default_Processing ; case 0x0006: /* ** LOWORD(lParam) is a HWND */ wm_name = "WM_ACTIVATE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %X ", wMsg, (LPSTR)wm_name, wParam, HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)LOWORD(lParam) ) ; break ; case 0x0007: wm_name = "WM_SETFOCUS"; /* ** wParam is HWND */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0008: /* ** lParam is HWND */ wm_name = "WM_KILLFOCUS"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)lParam ) ; break ; case 0x0009: wm_name = "WM_SETVISIBLE"; goto Default_Processing ; case 0x000A: wm_name = "WM_ENABLE"; goto Default_Processing ; case 0x000B: wm_name = "WM_SETREDRAW"; goto Default_Processing ; case 0x000C: wm_name = "WM_SETTEXT"; /* lParam points to a STR */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 0x000D: /* wParam is length of a buffer pointed to by lParam */ wm_name = "WM_GETTEXT"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); if ( fCall ) { WriteLPSTR( (LPSTR)lParam, (DWORD)-1 ); } else { WriteLPSTR( (LPSTR)lParam, (DWORD)lRet ); } break ; case 0x000E: wm_name = "WM_GETTEXTLENGTH"; goto Default_Processing ; case 0x000F: wm_name = "WM_PAINT"; goto Default_Processing ; case 0x0010: wm_name = "WM_CLOSE"; goto Default_Processing ; case 0x0011: wm_name = "WM_QUERYENDSESSION"; goto Default_Processing ; case 0x0012: wm_name = "WM_QUIT"; goto Default_Processing ; case 0x0013: wm_name = "WM_QUERYOPEN"; goto Default_Processing ; case 0x0014: /* ** wParam is HDC */ wm_name = "WM_ERASEBKGND"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHDC( (HDC)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0015: wm_name = "WM_SYSCOLORCHANGE"; goto Default_Processing ; case 0x0016: wm_name = "WM_ENDSESSION"; goto Default_Processing ; case 0x0017: wm_name = "WM_SYSTEMERROR"; goto Default_Processing ; case 0x0018: wm_name = "WM_SHOWWINDOW"; goto Default_Processing ; case 0x0019: /* ** LOWORD(lParam) is HWND */ wm_name = "WM_CTLCOLOR"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name ) ; WriteBuff( (LPSTR)chTemp ); WriteHDC( (HDC)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)LOWORD(lParam) ) ; break ; case 0x001A: wm_name = "WM_WININICHANGE"; /* lParam is NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 0x001B: wm_name = "WM_DEVMODECHANGE"; /* lParam points to string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 0x001C: /* ** LOWORD(lParam) is HTASK */ wm_name = "WM_ACTIVATEAPP"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %X ", wMsg, (LPSTR)wm_name, wParam, HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHTASK( (HTASK)LOWORD(lParam) ) ; break ; case 0x001D: wm_name = "WM_FONTCHANGE"; goto Default_Processing ; case 0x001E: wm_name = "WM_TIMECHANGE"; goto Default_Processing ; case 0x001F: wm_name = "WM_CANCELMODE"; goto Default_Processing ; case 0x0020: /* ** wParam is HWND */ wm_name = "WM_SETCURSOR"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0021: /* ** wParam is HWND */ wm_name = "WM_MOUSEACTIVATE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; goto Default_Processing ; case 0x0022: wm_name = "WM_CHILDACTIVATE"; goto Default_Processing ; case 0x0023: wm_name = "WM_QUEUESYNC"; goto Default_Processing ; case 0x0024: wm_name = "WM_GETMINMAXINFO"; /* lParam points to array of 5 POINTS */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPPOINT( (LPPOINT)lParam, 5 ) ; break ; case 0x0026: wm_name = "WM_PAINTICON"; goto Default_Processing ; case 0x0027: /* ** wParam is HDC */ wm_name = "WM_ICONERASEBKGND"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHDC( (HDC)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0028: wm_name = "WM_NEXTDLGCTL"; goto Default_Processing ; case 0x0029: wm_name = "WM_ALTTABACTIVE"; goto Default_Processing ; case 0x002A: wm_name = "WM_SPOOLERSTATUS"; goto Default_Processing ; case 0x002B: wm_name = "WM_DRAWITEM"; /* lParam points to DRAWITEMSTRUCT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteDRAWITEMSTRUCT( (LPDRAWITEMSTRUCT)lParam ) ; break ; case 0x002C: wm_name = "WM_MEASUREITEM"; /* lParam points to MEASUREITEMSTRUCT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteMEASUREITEMSTRUCT( (LPMEASUREITEMSTRUCT)lParam ); break; case 0x002D: wm_name = "WM_DELETEITEM"; /* lParam points to DELETEITEMSTRUCT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteDELETEITEMSTRUCT( (LPDELETEITEMSTRUCT)lParam ) ; break ; case 0x002E: wm_name = "WM_VKEYTOITEM"; /* ** LOWORD(lParam) is HWND */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %X ", wMsg, (LPSTR)wm_name, wParam, HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)LOWORD(lParam) ) ; break ; goto Default_Processing ; case 0x002F: /* ** LOWORD(lParam) is HWND */ wm_name = "WM_CHARTOITEM"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %X ", wMsg, (LPSTR)wm_name, wParam, HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)LOWORD(lParam) ) ; break ; case 0x0030: wm_name = "WM_SETFONT"; /* ** wParam is a HFONT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHFONT( (HFONT)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0031: wm_name = "WM_GETFONT"; goto Default_Processing ; case 0x0032: wm_name = "WM_SETHOTKEY"; goto Default_Processing ; case 0x0033: wm_name = "WM_GETHOTKEY"; goto Default_Processing ; case 0x0034: wm_name = "WM_FILESYSCHANGE"; goto Default_Processing ; case 0x0035: wm_name = "WM_ISACTIVEICON"; goto Default_Processing ; case 0x0036: wm_name = "WM_QUERYPARKICON"; goto Default_Processing ; case 0x0037: wm_name = "WM_QUERYDRAGICON"; goto Default_Processing ; case 0x0039: wm_name = "WM_COMPAREITEM"; /* lParam points to a COMPAREITEMSTRUCT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteCOMPAREITEMSTRUCT( (LPCOMPAREITEMSTRUCT)lParam ) ; break ; case 0x0040: wm_name = "WM_TESTING"; goto Default_Processing ; case 0x0041: wm_name = "WM_COMPACTING"; goto Default_Processing ; case 0x0042: wm_name = "WM_OTHERWINDOWCREATED"; goto Default_Processing; case 0x0043: wm_name = "WM_OTHERWINDOWDESTROYED"; goto Default_Processing; case 0x0044: wm_name = "WM_COMMNOTIFY"; goto Default_Processing; case 0x0046: wm_name = "WM_WINDOWPOSCHANGING"; /* ** lParam points to a WINDOWSPOS structure */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteWINDOWPOS( (LPWINDOWPOS)lParam ); break; case 0x0047: wm_name = "WM_WINDOWPOSCHANGED"; /* ** lParam points to a WINDOWSPOS structure */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteWINDOWPOS( (LPWINDOWPOS)lParam ); break; case 0x0048: wm_name = "WM_POWER"; goto Default_Processing; case 0x0081: wm_name = "WM_NCCREATE"; /* lParam points to CREATESTRUCT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPCREATESTRUCT( (LPCREATESTRUCT)lParam ); if ( CreateWindowLevel <= CreateWindowLevel ) { GetWindowRect( hwnd, &CreateWindowRects[CreateWindowLevel-1] ); } break ; case 0x0082: wm_name = "WM_NCDESTROY"; goto Default_Processing ; case 0x0083: /* lParam points to a RECT */ wm_name = "WM_NCCALCSIZE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); if ( wParam == 0 ) { WriteLPRECT( (LPRECT)lParam ); } else { WriteNCCALCSIZE_PARAMS( (LPNCCALCSIZE_PARAMS)lParam ); } break ; case 0x0084: wm_name = "WM_NCHITTEST"; goto Default_Processing ; case 0x0085: wm_name = "WM_NCPAINT"; goto Default_Processing ; case 0x0086: wm_name = "WM_NCACTIVATE"; goto Default_Processing ; case 0x0087: wm_name = "WM_GETDLGCODE"; goto Default_Processing ; case 0x0088: wm_name = "WM_ENDDIALOG/WM_SYNCPAINT"; goto Default_Processing ; case 0x0089: wm_name = "WM_SYNCTASK"; goto Default_Processing ; case 0x00A0: wm_name = "WM_NCMOUSEMOVE"; goto Default_Processing ; case 0x00A1: wm_name = "WM_NCLBUTTONDOWN"; goto Default_Processing ; case 0x00A2: wm_name = "WM_NCLBUTTONUP"; goto Default_Processing ; case 0x00A3: wm_name = "WM_NCLBUTTONDBLCLK"; goto Default_Processing ; case 0x00A4: wm_name = "WM_NCRBUTTONDOWN"; goto Default_Processing ; case 0x00A5: wm_name = "WM_NCRBUTTONUP"; goto Default_Processing ; case 0x00A6: wm_name = "WM_NCRBUTTONDBLCLK"; goto Default_Processing ; case 0x00A7: wm_name = "WM_NCMBUTTONDOWN"; goto Default_Processing ; case 0x00A8: wm_name = "WM_NCMBUTTONUP"; goto Default_Processing ; case 0x00A9: wm_name = "WM_NCMBUTTONDBLCLK"; goto Default_Processing ; case 0x0100: wm_name = "WM_KEYDOWN/WM_KEYFIRST"; goto Default_Processing ; case 0x0101: wm_name = "WM_KEYUP"; goto Default_Processing ; case 0x0102: wm_name = "WM_CHAR"; goto Default_Processing ; case 0x0103: wm_name = "WM_DEADCHAR"; goto Default_Processing ; case 0x0104: wm_name = "WM_SYSKEYDOWN"; goto Default_Processing ; case 0x0105: wm_name = "WM_SYSKEYUP"; goto Default_Processing ; case 0x0106: wm_name = "WM_SYSCHAR"; goto Default_Processing ; case 0x0107: wm_name = "WM_SYSDEADCHAR"; goto Default_Processing ; case 0x0108: wm_name = "WM_KEYLAST"; goto Default_Processing ; case 0x010A: wm_name = "WM_CONVERTREQUEST"; goto Default_Processing ; case 0x010B: wm_name = "WM_CONVERTRESULT"; goto Default_Processing ; case 0x0110: /* ** wParam is HWND */ wm_name = "WM_INITDIALOG"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HANDLE)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; goto Default_Processing ; case 0x0111: /* ** LOWORD(lParam) is HWND */ wm_name = "WM_COMMAND"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %X ", wMsg, (LPSTR)wm_name, wParam, HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)LOWORD(lParam) ) ; break ; case 0x0112: wm_name = "WM_SYSCOMMAND"; goto Default_Processing ; case 0x0113: wm_name = "WM_TIMER"; goto Default_Processing ; case 0x0114: /* ** HIWORD(lParam) is HWND */ wm_name = "WM_HSCROLL"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)HIWORD(lParam) ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", LOWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0115: /* ** HIWORD(lParam) is HWND */ wm_name = "WM_VSCROLL"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)HIWORD(lParam) ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", LOWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0116: /* ** wParam is a HMENU */ wm_name = "WM_INITMENU"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHMENU( (HANDLE)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0117: /* ** wParam is a HMENU */ wm_name = "WM_INITMENUPOPUP"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHMENU( (HANDLE)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0118: wm_name = "WM_SYSTIMER"; goto Default_Processing ; case 0x011F: wm_name = "WM_MENUSELECT"; /* ** HIWORD(lParam) is HMENU */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteHMENU( (HMENU)HIWORD(lParam) ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", LOWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0120: /* ** HIWORD(lParam) is HMENU */ wm_name = "WM_MENUCHAR"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteHMENU( (HMENU)HIWORD(lParam) ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", LOWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0121: /* ** LOWORD(lParam) is HWND */ wm_name = "WM_ENTERIDLE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %X ", wMsg, (LPSTR)wm_name, wParam, HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)LOWORD(lParam) ) ; break ; case 0x0131: wm_name = "WM_LBTRACKPOINT"; goto Default_Processing ; case 0x0200: wm_name = "WM_MOUSEMOVE/WM_MOUSEFIRST"; goto Default_Processing ; case 0x0201: wm_name = "WM_LBUTTONDOWN"; goto Default_Processing ; case 0x0202: wm_name = "WM_LBUTTONUP"; goto Default_Processing ; case 0x0203: wm_name = "WM_LBUTTONDBLCLK"; goto Default_Processing ; case 0x0204: wm_name = "WM_RBUTTONDOWN"; goto Default_Processing ; case 0x0205: wm_name = "WM_RBUTTONUP"; goto Default_Processing ; case 0x0206: wm_name = "WM_RBUTTONDBLCLK"; goto Default_Processing ; case 0x0207: wm_name = "WM_MBUTTONDOWN"; goto Default_Processing ; case 0x0208: wm_name = "WM_MBUTTONUP"; goto Default_Processing ; case 0x0209: wm_name = "WM_MBUTTONDBLCLK/WM_MOUSELAST"; goto Default_Processing ; case 0x0210: /* ** if wParam == (WM_CREATE || WM_DESTROY) ** LOWORD(lParam) is HWND */ wm_name = "WM_PARENTNOTIFY"; if( (wParam != WM_CREATE) && (wParam != WM_DESTROY) ) goto Default_Processing ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %X ", wMsg, (LPSTR)wm_name, wParam, HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)LOWORD(lParam) ) ; break ; case 0x0211: wm_name = "WM_ENTERMENULOOP"; goto Default_Processing ; case 0x0212: wm_name = "WM_EXITMENULOOP"; goto Default_Processing ; case 0x0213: wm_name = "WM_NEXTMENU"; goto Default_Processing ; case 0x0220: /* lParam points to MDICREATESTRUCT */ wm_name = "WM_MDICREATE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPMDICREATESTRUCT( (LPMDICREATESTRUCT)lParam ) ; break ; case 0x0221: /* ** wParam is a HWND */ wm_name = "WM_MDIDESTROY"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HANDLE)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0222: /* ** Now this one is interesting as it occurs in two flavors ** Sent and MDI sent. ** ** Sent: lParam == 0L and wParam is HWND ** MDI-Sent: lParam == (HWND,HWND) and wParam is ... */ wm_name = "WM_MDIACTIVATE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name ); WriteBuff( (LPSTR)chTemp ); if( lParam == 0L ) { WriteHWND( (HWND)wParam ) ; WriteBuff( (LPSTR)"0 " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", wParam ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)HIWORD(lParam) ) ; WriteHWND( (HWND)LOWORD(lParam) ) ; } break ; case 0x0223: wm_name = "WM_MDIRESTORE"; goto Default_Processing ; case 0x0224: wm_name = "WM_MDINEXT"; /* ** wParam is a HWND */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HANDLE)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0225: /* ** wParam is a HWND */ wm_name = "WM_MDIMAXIMIZE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HANDLE)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0226: wm_name = "WM_MDITILE"; goto Default_Processing ; case 0x0227: wm_name = "WM_MDICASCADE"; goto Default_Processing ; case 0x0228: wm_name = "WM_MDIICONARRANGE"; goto Default_Processing ; case 0x0229: wm_name = "WM_MDIGETACTIVE"; goto Default_Processing ; case 0x022A: wm_name = "WM_DROPOBJECT"; goto Default_Processing ; case 0x022B: wm_name = "WM_QUERYDROPOBJECT"; goto Default_Processing ; case 0x022C: wm_name = "WM_BEGINDRAG"; goto Default_Processing ; case 0x022D: wm_name = "WM_DRAGLOOP"; goto Default_Processing ; case 0x022E: wm_name = "WM_DRAGSELECT"; goto Default_Processing ; case 0x022F: wm_name = "WM_DRAGMOVE"; goto Default_Processing ; case 0x0230: /* ** lParam is (HMENU, HMENU) */ wm_name = "WM_MDISETMENU"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteHMENU( (HMENU)HIWORD(lParam) ) ; WriteHMENU( (HMENU)LOWORD(lParam) ) ; break ; case 0x0231: wm_name = "WM_ENTERSIZEMOVE"; goto Default_Processing ; case 0x0232: wm_name = "WM_EXITSIZEMOVE"; goto Default_Processing ; case 0x0233: wm_name = "WM_DROPFILES"; goto Default_Processing ; case 0x0280: wm_name = "WM_KANJIFIRST"; goto Default_Processing ; case 0x029F: wm_name = "WM_KANJILAST"; goto Default_Processing ; case 0x0300: wm_name = "WM_CUT"; goto Default_Processing ; case 0x0301: wm_name = "WM_COPY"; goto Default_Processing ; case 0x0302: wm_name = "WM_PASTE"; goto Default_Processing ; case 0x0303: wm_name = "WM_CLEAR"; goto Default_Processing ; case 0x0304: wm_name = "WM_UNDO"; goto Default_Processing ; case 0x0305: wm_name = "WM_RENDERFORMAT"; goto Default_Processing ; case 0x0306: wm_name = "WM_RENDERALLFORMATS"; goto Default_Processing ; case 0x0307: wm_name = "WM_DESTROYCLIPBOARD"; goto Default_Processing ; case 0x0308: wm_name = "WM_DRAWCLIPBOARD"; goto Default_Processing ; case 0x0309: wm_name = "WM_PAINTCLIPBOARD"; /* lParam points to a PAINTSTRUCT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPPAINTSTRUCT( (LPPAINTSTRUCT)lParam ) ; break ; case 0x030A: wm_name = "WM_VSCROLLCLIPBOARD"; goto Default_Processing ; case 0x030B: wm_name = "WM_SIZECLIPBOARD"; /* lParam points to a RECT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPRECT( (LPRECT)lParam ) ; break ; case 0x030C: /* wParam is length of a buffer pointed to by lParam */ wm_name = "WM_ASKEMFORMATNAME"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, (DWORD)wParam ) ; break ; case 0x030D: wm_name = "WM_CHANGEEMCHAIN"; goto Default_Processing ; case 0x030E: wm_name = "WM_HSCROLLCLIPBOARD"; goto Default_Processing ; case 0x030F: wm_name = "WM_QUERYNEWPALETTE"; goto Default_Processing ; case 0x0310: wm_name = "WM_PALETTEISCHANGING"; goto Default_Processing ; case 0x0311: wm_name = "WM_PALETTECHANGED"; goto Default_Processing ; case 0x0380: wm_name = "WM_PENWINFIRST"; goto Default_Processing ; case 0x038F: wm_name = "WM_PENWINLAST"; goto Default_Processing ; case 0x0390: wm_name = "WM_INTERNAL_COALESCE_FIRST/WM_COALESCE_FIRST"; goto Default_Processing ; case 0x039F: wm_name = "WM_COALESCE_LAST"; goto Default_Processing ; case 0x03A0: wm_name = "WM_MM_RESERVED_FIRST"; goto Default_Processing ; case 0x03DF: wm_name = "WM_MM_RESERVED_LAST"; goto Default_Processing ; case 0x03E0: wm_name = "WM_DDE_INITIATE"; goto Default_Processing ; case 0x03E1: wm_name = "WM_DDE_TERMINATE"; goto Default_Processing ; case 0x03E2: wm_name = "WM_DDE_ADVISE"; goto Default_Processing ; case 0x03E3: wm_name = "WM_DDE_UNADVISE"; goto Default_Processing ; case 0x03E4: wm_name = "WM_DDE_ACK"; goto Default_Processing ; case 0x03E5: wm_name = "WM_DDE_DATA"; goto Default_Processing ; case 0x03E6: wm_name = "WM_DDE_REQUEST"; goto Default_Processing ; case 0x03E7: wm_name = "WM_DDE_POKE"; goto Default_Processing ; case 0x03E8: wm_name = "WM_DDE_EXECUTE"; goto Default_Processing ; case 0x03F0: wm_name = "WM_CBT_RESERVED_FIRST"; goto Default_Processing ; case 0x03FF: wm_name = "WM_CBT_RESERVED_LAST"; goto Default_Processing ; default: wm_name = "UNKNOWN"; Default_Processing: wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %lX ", wMsg, (LPSTR)wm_name, wParam, lParam ); WriteBuff( (LPSTR)chTemp ); break ; } } #ifdef WIN32 /* These routines are for dumping messsages >= WM_USER such as CB_*, EM_*, and LB_* messages. */ void PrtComboMessageA( UINT wMsg, WPARAM wParam, LPARAM lParam, BOOL fCall, LONG lRet ) { char chTemp[80] ; LPSTR wm_name ; switch( (WORD)(wMsg - WM_USER) ) { case 0: wm_name = "CB_GETEDITSEL" ; goto Combo_Default_Processing ; case 1: wm_name = "CB_LIMITTEXT" ; goto Combo_Default_Processing ; case 2: wm_name = "CB_SETEDITSEL" ; goto Combo_Default_Processing ; case 3: wm_name = "CB_ADDSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 4: wm_name = "CB_DELETESTRING" ; goto Combo_Default_Processing ; case 5: wm_name = "CB_DIR" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 6: wm_name = "CB_GETCOUNT" ; goto Combo_Default_Processing ; case 7: wm_name = "CB_GETCURSEL" ; goto Combo_Default_Processing ; case 8: wm_name = "CB_GETLBTEXT" ; /* lParam points to buffer */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 9: wm_name = "CB_GETLBTEXTLEN" ; goto Combo_Default_Processing ; case 10: wm_name = "CB_INSERTSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 11: wm_name = "CB_RESETCONTENT" ; goto Combo_Default_Processing ; case 12: wm_name = "CB_FINDSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 13: wm_name = "CB_SELECTSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 14: wm_name = "CB_SETCURSEL" ; goto Combo_Default_Processing ; case 15: wm_name = "CB_SHOWDROPDOWN" ; goto Combo_Default_Processing ; case 16: wm_name = "CB_GETITEMDATA" ; goto Combo_Default_Processing ; case 17: wm_name = "CB_SETITEMDATA" ; goto Combo_Default_Processing ; case 18: wm_name = "CB_GETDROPPEDCONTROLRECT" ; goto Combo_Default_Processing ; case 19: wm_name = "CB_MSGMAX" ; goto Combo_Default_Processing ; default: wm_name = "UNKNOWN"; Combo_Default_Processing: wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %lX ", wMsg, (LPSTR)wm_name, wParam, lParam ); WriteBuff( (LPSTR)chTemp ); break ; } } void PrtEditMessageA( UINT wMsg, WPARAM wParam, LPARAM lParam, BOOL fCall, LONG lRet ) { char chTemp[80] ; LPSTR wm_name ; switch( (WORD)(wMsg - WM_USER) ) { case 0: wm_name = "EM_GETSEL" ; goto Edit_Default_Processing ; case 1: wm_name = "EM_SETSEL" ; goto Edit_Default_Processing ; case 2: wm_name = "EM_GETRECT" ; /* lParam points to RECT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPRECT( (LPRECT)lParam ) ; break ; case 3: wm_name = "EM_SETRECT" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPRECT( (LPRECT)lParam ) ; break ; case 4: wm_name = "EM_SETRECTNP" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPRECT( (LPRECT)lParam ) ; break ; case 5: wm_name = "EM_SCROLL" ; goto Edit_Default_Processing ; case 6: wm_name = "EM_LINESCROLL" ; goto Edit_Default_Processing ; /* NO 7 */ case 8: wm_name = "EM_GETMODIFY" ; goto Edit_Default_Processing ; case 9: wm_name = "EM_SETMODIFY" ; goto Edit_Default_Processing ; case 10: wm_name = "EM_GETLINECOUNT" ; goto Edit_Default_Processing ; case 11: wm_name = "EM_LINEINDEX" ; goto Edit_Default_Processing ; case 12: /* ** wParam is a HLOCAL */ wm_name = "EM_SETHANDLE" ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHMEM( (HANDLE)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 13: wm_name = "EM_GETHANDLE" ; goto Edit_Default_Processing ; case 14: wm_name = "EM_GETTHUMB" ; goto Edit_Default_Processing ; /* NO 15, 16 */ case 17: wm_name = "EM_LINELENGTH" ; goto Edit_Default_Processing ; case 18: wm_name = "EM_REPLACESEL" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 19: wm_name = "EM_SETFONT" ; /* ** wParam is a HFONT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHFONT( (HFONT)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 20: wm_name = "EM_GETLINE" ; /* lParam points to buffer, first word is length. */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, (DWORD)(*(LPWORD)lParam) ) ; break ; case 21: wm_name = "EM_LIMITTEXT" ; goto Edit_Default_Processing ; case 22: wm_name = "EM_CANUNDO" ; goto Edit_Default_Processing ; case 23: wm_name = "EM_UNDO" ; goto Edit_Default_Processing ; case 24: wm_name = "EM_FMTLINES" ; goto Edit_Default_Processing ; case 25: wm_name = "EM_LINEFROMCHAR" ; goto Edit_Default_Processing ; case 26: /* ** lParam is a FARPROC */ wm_name = "EM_SETWORDBREAK" ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteFARPROC((FARPROC)lParam ) ; break ; case 27: wm_name = "EM_SETTABSTOPS" ; /* lParam points to an array of ints */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPINT( (LPINT)lParam, wParam ) ; break ; case 28: wm_name = "EM_SETPASSWORDCHAR" ; goto Edit_Default_Processing ; case 29: wm_name = "EM_EMPTYUNDOBUFFER" ; goto Edit_Default_Processing ; case 30: wm_name = "EM_MSGMAX" ; goto Edit_Default_Processing ; default: wm_name = "UNKNOWN"; Edit_Default_Processing: wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %lX ", wMsg, (LPSTR)wm_name, wParam, lParam ); WriteBuff( (LPSTR)chTemp ); break ; } } void PrtListMessageA( UINT wMsg, WPARAM wParam, LPARAM lParam, BOOL fCall, LONG lRet ) { char chTemp[80] ; LPSTR wm_name ; switch( (WORD)(wMsg - WM_USER) ) { /* NO 0 */ case 1: wm_name = "LB_ADDSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 2: wm_name = "LB_INSERTSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 3: wm_name = "LB_DELETESTRING" ; goto List_Default_Processing ; /* NO 4 */ case 5: wm_name = "LB_RESETCONTENT" ; goto List_Default_Processing ; case 6: wm_name = "LB_SETSEL" ; goto List_Default_Processing ; case 7: wm_name = "LB_SETCURSEL" ; goto List_Default_Processing ; case 8: wm_name = "LB_GETSEL" ; goto List_Default_Processing ; case 9: wm_name = "LB_GETCURSEL" ; goto List_Default_Processing ; case 10: wm_name = "LB_GETTEXT" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 11: wm_name = "LB_GETTEXTLEN" ; goto List_Default_Processing ; case 12: wm_name = "LB_GETCOUNT" ; goto List_Default_Processing ; case 13: wm_name = "LB_SELECTSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 14: wm_name = "LB_DIR" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 15: wm_name = "LB_GETTOPINDEX" ; goto List_Default_Processing ; case 16: wm_name = "LB_FINDSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 17: wm_name = "LB_GETSELCOUNT" ; goto List_Default_Processing ; case 18: wm_name = "LB_GETSELITEMS" ; /* lParam points to array of int */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPINT( (LPINT)lParam, wParam ) ; break ; case 19: wm_name = "LB_SETTABSTOPS" ; /* lParam points to array of int */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPINT( (LPINT)lParam, wParam ) ; break ; case 20: wm_name = "LB_GETHORIZONTALEXTENT" ; goto List_Default_Processing ; case 21: wm_name = "LB_SETHORIZONTALEXTENT" ; goto List_Default_Processing ; case 22: wm_name = "LB_SETCOLUMNWIDTH" ; goto List_Default_Processing ; /* NO 23 */ case 24: wm_name = "LB_SETTOPINDEX" ; goto List_Default_Processing ; case 25: wm_name = "LB_GETITEMRECT" ; /* lParam points to a RECT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPRECT( (LPRECT)lParam ) ; break ; case 26: wm_name = "LB_GETITEMDATA" ; goto List_Default_Processing ; case 27: wm_name = "LB_SETITEMDATA" ; goto List_Default_Processing ; case 28: wm_name = "LB_SETITEMRANGE" ; goto List_Default_Processing ; /* NO 29, 30, 31, 32 */ case 33: wm_name = "LB_MSGMAX" ; goto List_Default_Processing ; default: wm_name = "UNKNOWN"; List_Default_Processing: wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %lX ", wMsg, (LPSTR)wm_name, wParam, lParam ); WriteBuff( (LPSTR)chTemp ); break ; } } void PrtButtonMessageA( UINT wMsg, WPARAM wParam, LPARAM lParam, BOOL fCall, LONG lRet ) { char chTemp[80] ; LPSTR wm_name = "BM_?????" ; switch( (WORD)(wMsg - WM_USER) ) { case 0: wm_name = "BM_GETCHECK" ; break ; case 1: wm_name = "BM_SETCHECK" ; break ; case 2: wm_name = "BM_GETSTATE"; break ; case 3: wm_name = "BM_SETSTATE"; break ; case 4: wm_name = "BM_SETSTYLE"; break ; } wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %lX ", wMsg, (LPSTR)wm_name, wParam, lParam ); WriteBuff( (LPSTR)chTemp ); } void PrtScrollMessageA( UINT wMsg, WPARAM wParam, LPARAM lParam, BOOL fCall, LONG lRet ) { char chTemp[80] ; LPSTR wm_name = "SBM_?????" ; switch( (WORD)(wMsg - WM_USER) ) { case 0: wm_name = "SBM_SETPOS" ; break ; case 1: wm_name = "SBM_GETPOS" ; break ; case 2: wm_name = "SBM_SETRANGE"; break ; case 3: wm_name = "SBM_GETRANGE"; break ; case 4: wm_name = "SBM_ENABLE_ARROWS"; break ; } wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %lX ", wMsg, (LPSTR)wm_name, wParam, lParam ); WriteBuff( (LPSTR)chTemp ); } void PrtUserMessageA( HWND hwnd, UINT wMsg, WPARAM wParam, LPARAM lParam, BOOL fCall, LONG lRet ) { char chTemp[80] ; char chClass[25] ; GetClassName( hwnd, chClass, sizeof(chClass) ) ; if( !lstrcmpi( chClass, "COMBOBOX" ) ) PrtComboMessageA( wMsg, wParam, lParam, fCall, lRet ) ; else if( !lstrcmpi( chClass, "EDIT" ) ) PrtEditMessageA( wMsg, wParam, lParam, fCall, lRet ) ; else if( !lstrcmpi( chClass, "LISTBOX" ) ) PrtListMessageA( wMsg, wParam, lParam, fCall, lRet ) ; else if ( !lstrcmpi( chClass, "SCROLLBAR") ) PrtScrollMessageA( wMsg, wParam, lParam, fCall, lRet ) ; else if ( !lstrcmpi( chClass, "BUTTON") ) PrtButtonMessageA( wMsg, wParam, lParam, fCall, lRet ) ; else { wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %lX ", wMsg, (LPSTR)"UNKNOWN", wParam, lParam ); WriteBuff( (LPSTR)chTemp ); } } /* This routine handles the dumping of all messages. If a message is >= WM_USER then PrtUserMessage() is called. Non-Aliased messages - DDE Messages WM_DROPFILES WM_[H,V]SCROLLCLIPBOARD WM_PAINTCLIPBOARD WM_SIZECLIPBOARD WM_PALETTECHANGED WM_PALETTEISCHANGING */ void PrtMessageA( HWND hwnd, UINT wMsg, WPARAM wParam, LPARAM lParam, BOOL fCall, LONG lRet ) { char chTemp[80] ; LPSTR wm_name ; if( wMsg >= WM_USER ) PrtUserMessageA( hwnd, wMsg, wParam, lParam, fCall, lRet ) ; else switch( wMsg ) { case 0x0000: wm_name = "WM_NULL "; goto Default_Processing ; case 0x0001: /* lParam points to CREATESTRUCT */ wm_name = "WM_CREATE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPCREATESTRUCT( (LPCREATESTRUCT)lParam ) ; break ; case 0x0002: wm_name = "WM_DESTROY"; goto Default_Processing ; case 0x0003: wm_name = "WM_MOVE"; goto Default_Processing ; case 0x0004: wm_name = "WM_SIZEWAIT"; goto Default_Processing ; case 0x0005: wm_name = "WM_SIZE"; goto Default_Processing ; case 0x0006: /* ** LOWORD(lParam) is a HWND */ wm_name = "WM_ACTIVATE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %X ", wMsg, (LPSTR)wm_name, wParam, HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)LOWORD(lParam) ) ; break ; case 0x0007: wm_name = "WM_SETFOCUS"; /* ** wParam is HWND */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0008: /* ** lParam is HWND */ wm_name = "WM_KILLFOCUS"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)lParam ) ; break ; case 0x0009: wm_name = "WM_SETVISIBLE"; goto Default_Processing ; case 0x000A: wm_name = "WM_ENABLE"; goto Default_Processing ; case 0x000B: wm_name = "WM_SETREDRAW"; goto Default_Processing ; case 0x000C: wm_name = "WM_SETTEXT"; /* lParam points to a STR */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 0x000D: /* wParam is length of a buffer pointed to by lParam */ wm_name = "WM_GETTEXT"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); if ( fCall ) { WriteLPSTR( (LPSTR)lParam, (DWORD)-1 ); } else { WriteLPSTR( (LPSTR)lParam, (DWORD)lRet ); } break ; case 0x000E: wm_name = "WM_GETTEXTLENGTH"; goto Default_Processing ; case 0x000F: wm_name = "WM_PAINT"; goto Default_Processing ; case 0x0010: wm_name = "WM_CLOSE"; goto Default_Processing ; case 0x0011: wm_name = "WM_QUERYENDSESSION"; goto Default_Processing ; case 0x0012: wm_name = "WM_QUIT"; goto Default_Processing ; case 0x0013: wm_name = "WM_QUERYOPEN"; goto Default_Processing ; case 0x0014: /* ** wParam is HDC */ wm_name = "WM_ERASEBKGND"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHDC( (HDC)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0015: wm_name = "WM_SYSCOLORCHANGE"; goto Default_Processing ; case 0x0016: wm_name = "WM_ENDSESSION"; goto Default_Processing ; case 0x0017: wm_name = "WM_SYSTEMERROR"; goto Default_Processing ; case 0x0018: wm_name = "WM_SHOWWINDOW"; goto Default_Processing ; case 0x0019: /* ** LOWORD(lParam) is HWND */ wm_name = "WM_CTLCOLOR"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name ) ; WriteBuff( (LPSTR)chTemp ); WriteHDC( (HDC)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)LOWORD(lParam) ) ; break ; case 0x001A: wm_name = "WM_WININICHANGE"; /* lParam is NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 0x001B: wm_name = "WM_DEVMODECHANGE"; /* lParam points to string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, 0 ) ; break ; case 0x001C: /* ** LOWORD(lParam) is HTASK */ wm_name = "WM_ACTIVATEAPP"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %X ", wMsg, (LPSTR)wm_name, wParam, HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHTASK( (HTASK)LOWORD(lParam) ) ; break ; case 0x001D: wm_name = "WM_FONTCHANGE"; goto Default_Processing ; case 0x001E: wm_name = "WM_TIMECHANGE"; goto Default_Processing ; case 0x001F: wm_name = "WM_CANCELMODE"; goto Default_Processing ; case 0x0020: /* ** wParam is HWND */ wm_name = "WM_SETCURSOR"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0021: /* ** wParam is HWND */ wm_name = "WM_MOUSEACTIVATE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; goto Default_Processing ; case 0x0022: wm_name = "WM_CHILDACTIVATE"; goto Default_Processing ; case 0x0023: wm_name = "WM_QUEUESYNC"; goto Default_Processing ; case 0x0024: wm_name = "WM_GETMINMAXINFO"; /* lParam points to array of 5 POINTS */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPPOINT( (LPPOINT)lParam, 5 ) ; break ; case 0x0026: wm_name = "WM_PAINTICON"; goto Default_Processing ; case 0x0027: /* ** wParam is HDC */ wm_name = "WM_ICONERASEBKGND"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHDC( (HDC)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0028: wm_name = "WM_NEXTDLGCTL"; goto Default_Processing ; case 0x0029: wm_name = "WM_ALTTABACTIVE"; goto Default_Processing ; case 0x002A: wm_name = "WM_SPOOLERSTATUS"; goto Default_Processing ; case 0x002B: wm_name = "WM_DRAWITEM"; /* lParam points to DRAWITEMSTRUCT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteDRAWITEMSTRUCT( (LPDRAWITEMSTRUCT)lParam ) ; break ; case 0x002C: wm_name = "WM_MEASUREITEM"; /* lParam points to MEASUREITEMSTRUCT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteMEASUREITEMSTRUCT( (LPMEASUREITEMSTRUCT)lParam ); break; case 0x002D: wm_name = "WM_DELETEITEM"; /* lParam points to DELETEITEMSTRUCT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteDELETEITEMSTRUCT( (LPDELETEITEMSTRUCT)lParam ) ; break ; case 0x002E: wm_name = "WM_VKEYTOITEM"; /* ** LOWORD(lParam) is HWND */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %X ", wMsg, (LPSTR)wm_name, wParam, HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)LOWORD(lParam) ) ; break ; goto Default_Processing ; case 0x002F: /* ** LOWORD(lParam) is HWND */ wm_name = "WM_CHARTOITEM"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %X ", wMsg, (LPSTR)wm_name, wParam, HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)LOWORD(lParam) ) ; break ; case 0x0030: wm_name = "WM_SETFONT"; /* ** wParam is a HFONT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHFONT( (HFONT)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0031: wm_name = "WM_GETFONT"; goto Default_Processing ; case 0x0032: wm_name = "WM_SETHOTKEY"; goto Default_Processing ; case 0x0033: wm_name = "WM_GETHOTKEY"; goto Default_Processing ; case 0x0034: wm_name = "WM_FILESYSCHANGE"; goto Default_Processing ; case 0x0035: wm_name = "WM_ISACTIVEICON"; goto Default_Processing ; case 0x0036: wm_name = "WM_QUERYPARKICON"; goto Default_Processing ; case 0x0037: wm_name = "WM_QUERYDRAGICON"; goto Default_Processing ; case 0x0039: wm_name = "WM_COMPAREITEM"; /* lParam points to a COMPAREITEMSTRUCT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteCOMPAREITEMSTRUCT( (LPCOMPAREITEMSTRUCT)lParam ) ; break ; case 0x0040: wm_name = "WM_TESTING"; goto Default_Processing ; case 0x0041: wm_name = "WM_COMPACTING"; goto Default_Processing ; case 0x0042: wm_name = "WM_OTHERWINDOWCREATED"; goto Default_Processing; case 0x0043: wm_name = "WM_OTHERWINDOWDESTROYED"; goto Default_Processing; case 0x0044: wm_name = "WM_COMMNOTIFY"; goto Default_Processing; case 0x0046: wm_name = "WM_WINDOWPOSCHANGING"; /* ** lParam points to a WINDOWSPOS structure */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteWINDOWPOS( (LPWINDOWPOS)lParam ); break; case 0x0047: wm_name = "WM_WINDOWPOSCHANGED"; /* ** lParam points to a WINDOWSPOS structure */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteWINDOWPOS( (LPWINDOWPOS)lParam ); break; case 0x0048: wm_name = "WM_POWER"; goto Default_Processing; case 0x0081: wm_name = "WM_NCCREATE"; /* lParam points to CREATESTRUCT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPCREATESTRUCT( (LPCREATESTRUCT)lParam ); if ( CreateWindowLevel <= CreateWindowLevel ) { GetWindowRect( hwnd, &CreateWindowRects[CreateWindowLevel-1] ); } break ; case 0x0082: wm_name = "WM_NCDESTROY"; goto Default_Processing ; case 0x0083: /* lParam points to a RECT */ wm_name = "WM_NCCALCSIZE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); if ( wParam == 0 ) { WriteLPRECT( (LPRECT)lParam ); } else { WriteNCCALCSIZE_PARAMS( (LPNCCALCSIZE_PARAMS)lParam ); } break ; case 0x0084: wm_name = "WM_NCHITTEST"; goto Default_Processing ; case 0x0085: wm_name = "WM_NCPAINT"; goto Default_Processing ; case 0x0086: wm_name = "WM_NCACTIVATE"; goto Default_Processing ; case 0x0087: wm_name = "WM_GETDLGCODE"; goto Default_Processing ; case 0x0088: wm_name = "WM_ENDDIALOG/WM_SYNCPAINT"; goto Default_Processing ; case 0x0089: wm_name = "WM_SYNCTASK"; goto Default_Processing ; case 0x00A0: wm_name = "WM_NCMOUSEMOVE"; goto Default_Processing ; case 0x00A1: wm_name = "WM_NCLBUTTONDOWN"; goto Default_Processing ; case 0x00A2: wm_name = "WM_NCLBUTTONUP"; goto Default_Processing ; case 0x00A3: wm_name = "WM_NCLBUTTONDBLCLK"; goto Default_Processing ; case 0x00A4: wm_name = "WM_NCRBUTTONDOWN"; goto Default_Processing ; case 0x00A5: wm_name = "WM_NCRBUTTONUP"; goto Default_Processing ; case 0x00A6: wm_name = "WM_NCRBUTTONDBLCLK"; goto Default_Processing ; case 0x00A7: wm_name = "WM_NCMBUTTONDOWN"; goto Default_Processing ; case 0x00A8: wm_name = "WM_NCMBUTTONUP"; goto Default_Processing ; case 0x00A9: wm_name = "WM_NCMBUTTONDBLCLK"; goto Default_Processing ; case 0x0100: wm_name = "WM_KEYDOWN/WM_KEYFIRST"; goto Default_Processing ; case 0x0101: wm_name = "WM_KEYUP"; goto Default_Processing ; case 0x0102: wm_name = "WM_CHAR"; goto Default_Processing ; case 0x0103: wm_name = "WM_DEADCHAR"; goto Default_Processing ; case 0x0104: wm_name = "WM_SYSKEYDOWN"; goto Default_Processing ; case 0x0105: wm_name = "WM_SYSKEYUP"; goto Default_Processing ; case 0x0106: wm_name = "WM_SYSCHAR"; goto Default_Processing ; case 0x0107: wm_name = "WM_SYSDEADCHAR"; goto Default_Processing ; case 0x0108: wm_name = "WM_KEYLAST"; goto Default_Processing ; case 0x010A: wm_name = "WM_CONVERTREQUEST"; goto Default_Processing ; case 0x010B: wm_name = "WM_CONVERTRESULT"; goto Default_Processing ; case 0x0110: /* ** wParam is HWND */ wm_name = "WM_INITDIALOG"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HANDLE)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; goto Default_Processing ; case 0x0111: /* ** LOWORD(lParam) is HWND */ wm_name = "WM_COMMAND"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %X ", wMsg, (LPSTR)wm_name, wParam, HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)LOWORD(lParam) ) ; break ; case 0x0112: wm_name = "WM_SYSCOMMAND"; goto Default_Processing ; case 0x0113: wm_name = "WM_TIMER"; goto Default_Processing ; case 0x0114: /* ** HIWORD(lParam) is HWND */ wm_name = "WM_HSCROLL"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)HIWORD(lParam) ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", LOWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0115: /* ** HIWORD(lParam) is HWND */ wm_name = "WM_VSCROLL"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)HIWORD(lParam) ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", LOWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0116: /* ** wParam is a HMENU */ wm_name = "WM_INITMENU"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHMENU( (HANDLE)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0117: /* ** wParam is a HMENU */ wm_name = "WM_INITMENUPOPUP"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHMENU( (HANDLE)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0118: wm_name = "WM_SYSTIMER"; goto Default_Processing ; case 0x011F: wm_name = "WM_MENUSELECT"; /* ** HIWORD(lParam) is HMENU */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteHMENU( (HMENU)HIWORD(lParam) ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", LOWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0120: /* ** HIWORD(lParam) is HMENU */ wm_name = "WM_MENUCHAR"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteHMENU( (HMENU)HIWORD(lParam) ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", LOWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0121: /* ** LOWORD(lParam) is HWND */ wm_name = "WM_ENTERIDLE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %X ", wMsg, (LPSTR)wm_name, wParam, HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)LOWORD(lParam) ) ; break ; case 0x0131: wm_name = "WM_LBTRACKPOINT"; goto Default_Processing ; case 0x0200: wm_name = "WM_MOUSEMOVE/WM_MOUSEFIRST"; goto Default_Processing ; case 0x0201: wm_name = "WM_LBUTTONDOWN"; goto Default_Processing ; case 0x0202: wm_name = "WM_LBUTTONUP"; goto Default_Processing ; case 0x0203: wm_name = "WM_LBUTTONDBLCLK"; goto Default_Processing ; case 0x0204: wm_name = "WM_RBUTTONDOWN"; goto Default_Processing ; case 0x0205: wm_name = "WM_RBUTTONUP"; goto Default_Processing ; case 0x0206: wm_name = "WM_RBUTTONDBLCLK"; goto Default_Processing ; case 0x0207: wm_name = "WM_MBUTTONDOWN"; goto Default_Processing ; case 0x0208: wm_name = "WM_MBUTTONUP"; goto Default_Processing ; case 0x0209: wm_name = "WM_MBUTTONDBLCLK/WM_MOUSELAST"; goto Default_Processing ; case 0x0210: /* ** if wParam == (WM_CREATE || WM_DESTROY) ** LOWORD(lParam) is HWND */ wm_name = "WM_PARENTNOTIFY"; if( (wParam != WM_CREATE) && (wParam != WM_DESTROY) ) goto Default_Processing ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %X ", wMsg, (LPSTR)wm_name, wParam, HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)LOWORD(lParam) ) ; break ; case 0x0211: wm_name = "WM_ENTERMENULOOP"; goto Default_Processing ; case 0x0212: wm_name = "WM_EXITMENULOOP"; goto Default_Processing ; case 0x0213: wm_name = "WM_NEXTMENU"; goto Default_Processing ; case 0x0220: /* lParam points to MDICREATESTRUCT */ wm_name = "WM_MDICREATE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPMDICREATESTRUCT( (LPMDICREATESTRUCT)lParam ) ; break ; case 0x0221: /* ** wParam is a HWND */ wm_name = "WM_MDIDESTROY"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HANDLE)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0222: /* ** Now this one is interesting as it occurs in two flavors ** Sent and MDI sent. ** ** Sent: lParam == 0L and wParam is HWND ** MDI-Sent: lParam == (HWND,HWND) and wParam is ... */ wm_name = "WM_MDIACTIVATE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name ); WriteBuff( (LPSTR)chTemp ); if( lParam == 0L ) { WriteHWND( (HWND)wParam ) ; WriteBuff( (LPSTR)"0 " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", wParam ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)HIWORD(lParam) ) ; WriteHWND( (HWND)LOWORD(lParam) ) ; } break ; case 0x0223: wm_name = "WM_MDIRESTORE"; goto Default_Processing ; case 0x0224: wm_name = "WM_MDINEXT"; /* ** wParam is a HWND */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HANDLE)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0225: /* ** wParam is a HWND */ wm_name = "WM_MDIMAXIMIZE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HANDLE)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0226: wm_name = "WM_MDITILE"; goto Default_Processing ; case 0x0227: wm_name = "WM_MDICASCADE"; goto Default_Processing ; case 0x0228: wm_name = "WM_MDIICONARRANGE"; goto Default_Processing ; case 0x0229: wm_name = "WM_MDIGETACTIVE"; goto Default_Processing ; case 0x022A: wm_name = "WM_DROPOBJECT"; goto Default_Processing ; case 0x022B: wm_name = "WM_QUERYDROPOBJECT"; goto Default_Processing ; case 0x022C: wm_name = "WM_BEGINDRAG"; goto Default_Processing ; case 0x022D: wm_name = "WM_DRAGLOOP"; goto Default_Processing ; case 0x022E: wm_name = "WM_DRAGSELECT"; goto Default_Processing ; case 0x022F: wm_name = "WM_DRAGMOVE"; goto Default_Processing ; case 0x0230: /* ** lParam is (HMENU, HMENU) */ wm_name = "WM_MDISETMENU"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteHMENU( (HMENU)HIWORD(lParam) ) ; WriteHMENU( (HMENU)LOWORD(lParam) ) ; break ; case 0x0231: wm_name = "WM_ENTERSIZEMOVE"; goto Default_Processing ; case 0x0232: wm_name = "WM_EXITSIZEMOVE"; goto Default_Processing ; case 0x0233: wm_name = "WM_DROPFILES"; goto Default_Processing ; case 0x0280: wm_name = "WM_KANJIFIRST"; goto Default_Processing ; case 0x029F: wm_name = "WM_KANJILAST"; goto Default_Processing ; case 0x0300: wm_name = "WM_CUT"; goto Default_Processing ; case 0x0301: wm_name = "WM_COPY"; goto Default_Processing ; case 0x0302: wm_name = "WM_PASTE"; goto Default_Processing ; case 0x0303: wm_name = "WM_CLEAR"; goto Default_Processing ; case 0x0304: wm_name = "WM_UNDO"; goto Default_Processing ; case 0x0305: wm_name = "WM_RENDERFORMAT"; goto Default_Processing ; case 0x0306: wm_name = "WM_RENDERALLFORMATS"; goto Default_Processing ; case 0x0307: wm_name = "WM_DESTROYCLIPBOARD"; goto Default_Processing ; case 0x0308: wm_name = "WM_DRAWCLIPBOARD"; goto Default_Processing ; case 0x0309: wm_name = "WM_PAINTCLIPBOARD"; /* lParam points to a PAINTSTRUCT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPPAINTSTRUCT( (LPPAINTSTRUCT)lParam ) ; break ; case 0x030A: wm_name = "WM_VSCROLLCLIPBOARD"; goto Default_Processing ; case 0x030B: wm_name = "WM_SIZECLIPBOARD"; /* lParam points to a RECT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPRECT( (LPRECT)lParam ) ; break ; case 0x030C: /* wParam is length of a buffer pointed to by lParam */ wm_name = "WM_ASKEMFORMATNAME"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( (LPSTR)lParam, (DWORD)wParam ) ; break ; case 0x030D: wm_name = "WM_CHANGEEMCHAIN"; goto Default_Processing ; case 0x030E: wm_name = "WM_HSCROLLCLIPBOARD"; goto Default_Processing ; case 0x030F: wm_name = "WM_QUERYNEWPALETTE"; goto Default_Processing ; case 0x0310: wm_name = "WM_PALETTEISCHANGING"; goto Default_Processing ; case 0x0311: wm_name = "WM_PALETTECHANGED"; goto Default_Processing ; case 0x0380: wm_name = "WM_PENWINFIRST"; goto Default_Processing ; case 0x038F: wm_name = "WM_PENWINLAST"; goto Default_Processing ; case 0x0390: wm_name = "WM_INTERNAL_COALESCE_FIRST/WM_COALESCE_FIRST"; goto Default_Processing ; case 0x039F: wm_name = "WM_COALESCE_LAST"; goto Default_Processing ; case 0x03A0: wm_name = "WM_MM_RESERVED_FIRST"; goto Default_Processing ; case 0x03DF: wm_name = "WM_MM_RESERVED_LAST"; goto Default_Processing ; case 0x03E0: wm_name = "WM_DDE_INITIATE"; goto Default_Processing ; case 0x03E1: wm_name = "WM_DDE_TERMINATE"; goto Default_Processing ; case 0x03E2: wm_name = "WM_DDE_ADVISE"; goto Default_Processing ; case 0x03E3: wm_name = "WM_DDE_UNADVISE"; goto Default_Processing ; case 0x03E4: wm_name = "WM_DDE_ACK"; goto Default_Processing ; case 0x03E5: wm_name = "WM_DDE_DATA"; goto Default_Processing ; case 0x03E6: wm_name = "WM_DDE_REQUEST"; goto Default_Processing ; case 0x03E7: wm_name = "WM_DDE_POKE"; goto Default_Processing ; case 0x03E8: wm_name = "WM_DDE_EXECUTE"; goto Default_Processing ; case 0x03F0: wm_name = "WM_CBT_RESERVED_FIRST"; goto Default_Processing ; case 0x03FF: wm_name = "WM_CBT_RESERVED_LAST"; goto Default_Processing ; default: wm_name = "UNKNOWN"; Default_Processing: wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %lX ", wMsg, (LPSTR)wm_name, wParam, lParam ); WriteBuff( (LPSTR)chTemp ); break ; } } /* These routines are for dumping messsages >= WM_USER such as CB_*, EM_*, and LB_* messages. */ void PrtComboMessageW( UINT wMsg, WPARAM wParam, LPARAM lParam, BOOL fCall, LONG lRet ) { char chTemp[80] ; LPSTR wm_name ; switch( (WORD)(wMsg - WM_USER) ) { case 0: wm_name = "CB_GETEDITSEL" ; goto Combo_Default_Processing ; case 1: wm_name = "CB_LIMITTEXT" ; goto Combo_Default_Processing ; case 2: wm_name = "CB_SETEDITSEL" ; goto Combo_Default_Processing ; case 3: wm_name = "CB_ADDSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPWSTR( (LPWSTR)lParam, 0 ) ; break ; case 4: wm_name = "CB_DELETESTRING" ; goto Combo_Default_Processing ; case 5: wm_name = "CB_DIR" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPWSTR( (LPWSTR)lParam, 0 ) ; break ; case 6: wm_name = "CB_GETCOUNT" ; goto Combo_Default_Processing ; case 7: wm_name = "CB_GETCURSEL" ; goto Combo_Default_Processing ; case 8: wm_name = "CB_GETLBTEXT" ; /* lParam points to buffer */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPWSTR( (LPWSTR)lParam, 0 ) ; break ; case 9: wm_name = "CB_GETLBTEXTLEN" ; goto Combo_Default_Processing ; case 10: wm_name = "CB_INSERTSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPWSTR( (LPWSTR)lParam, 0 ) ; break ; case 11: wm_name = "CB_RESETCONTENT" ; goto Combo_Default_Processing ; case 12: wm_name = "CB_FINDSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPWSTR( (LPWSTR)lParam, 0 ) ; break ; case 13: wm_name = "CB_SELECTSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPWSTR( (LPWSTR)lParam, 0 ) ; break ; case 14: wm_name = "CB_SETCURSEL" ; goto Combo_Default_Processing ; case 15: wm_name = "CB_SHOWDROPDOWN" ; goto Combo_Default_Processing ; case 16: wm_name = "CB_GETITEMDATA" ; goto Combo_Default_Processing ; case 17: wm_name = "CB_SETITEMDATA" ; goto Combo_Default_Processing ; case 18: wm_name = "CB_GETDROPPEDCONTROLRECT" ; goto Combo_Default_Processing ; case 19: wm_name = "CB_MSGMAX" ; goto Combo_Default_Processing ; default: wm_name = "UNKNOWN"; Combo_Default_Processing: wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %lX ", wMsg, (LPSTR)wm_name, wParam, lParam ); WriteBuff( (LPSTR)chTemp ); break ; } } void PrtEditMessageW( UINT wMsg, WPARAM wParam, LPARAM lParam, BOOL fCall, LONG lRet ) { char chTemp[80] ; LPSTR wm_name ; switch( (WORD)(wMsg - WM_USER) ) { case 0: wm_name = "EM_GETSEL" ; goto Edit_Default_Processing ; case 1: wm_name = "EM_SETSEL" ; goto Edit_Default_Processing ; case 2: wm_name = "EM_GETRECT" ; /* lParam points to RECT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPRECT( (LPRECT)lParam ) ; break ; case 3: wm_name = "EM_SETRECT" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPRECT( (LPRECT)lParam ) ; break ; case 4: wm_name = "EM_SETRECTNP" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPRECT( (LPRECT)lParam ) ; break ; case 5: wm_name = "EM_SCROLL" ; goto Edit_Default_Processing ; case 6: wm_name = "EM_LINESCROLL" ; goto Edit_Default_Processing ; /* NO 7 */ case 8: wm_name = "EM_GETMODIFY" ; goto Edit_Default_Processing ; case 9: wm_name = "EM_SETMODIFY" ; goto Edit_Default_Processing ; case 10: wm_name = "EM_GETLINECOUNT" ; goto Edit_Default_Processing ; case 11: wm_name = "EM_LINEINDEX" ; goto Edit_Default_Processing ; case 12: /* ** wParam is a HLOCAL */ wm_name = "EM_SETHANDLE" ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHMEM( (HANDLE)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 13: wm_name = "EM_GETHANDLE" ; goto Edit_Default_Processing ; case 14: wm_name = "EM_GETTHUMB" ; goto Edit_Default_Processing ; /* NO 15, 16 */ case 17: wm_name = "EM_LINELENGTH" ; goto Edit_Default_Processing ; case 18: wm_name = "EM_REPLACESEL" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPWSTR( (LPWSTR)lParam, 0 ) ; break ; case 19: wm_name = "EM_SETFONT" ; /* ** wParam is a HFONT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHFONT( (HFONT)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 20: wm_name = "EM_GETLINE" ; /* lParam points to buffer, first word is length. */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPWSTR( (LPWSTR)lParam, (DWORD)(*(LPWORD)lParam) ) ; break ; case 21: wm_name = "EM_LIMITTEXT" ; goto Edit_Default_Processing ; case 22: wm_name = "EM_CANUNDO" ; goto Edit_Default_Processing ; case 23: wm_name = "EM_UNDO" ; goto Edit_Default_Processing ; case 24: wm_name = "EM_FMTLINES" ; goto Edit_Default_Processing ; case 25: wm_name = "EM_LINEFROMCHAR" ; goto Edit_Default_Processing ; case 26: /* ** lParam is a FARPROC */ wm_name = "EM_SETWORDBREAK" ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteFARPROC((FARPROC)lParam ) ; break ; case 27: wm_name = "EM_SETTABSTOPS" ; /* lParam points to an array of ints */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPINT( (LPINT)lParam, wParam ) ; break ; case 28: wm_name = "EM_SETPASSWORDCHAR" ; goto Edit_Default_Processing ; case 29: wm_name = "EM_EMPTYUNDOBUFFER" ; goto Edit_Default_Processing ; case 30: wm_name = "EM_MSGMAX" ; goto Edit_Default_Processing ; default: wm_name = "UNKNOWN"; Edit_Default_Processing: wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %lX ", wMsg, (LPSTR)wm_name, wParam, lParam ); WriteBuff( (LPSTR)chTemp ); break ; } } void PrtListMessageW( UINT wMsg, WPARAM wParam, LPARAM lParam, BOOL fCall, LONG lRet ) { char chTemp[80] ; LPSTR wm_name ; switch( (WORD)(wMsg - WM_USER) ) { /* NO 0 */ case 1: wm_name = "LB_ADDSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPWSTR( (LPWSTR)lParam, 0 ) ; break ; case 2: wm_name = "LB_INSERTSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPWSTR( (LPWSTR)lParam, 0 ) ; break ; case 3: wm_name = "LB_DELETESTRING" ; goto List_Default_Processing ; /* NO 4 */ case 5: wm_name = "LB_RESETCONTENT" ; goto List_Default_Processing ; case 6: wm_name = "LB_SETSEL" ; goto List_Default_Processing ; case 7: wm_name = "LB_SETCURSEL" ; goto List_Default_Processing ; case 8: wm_name = "LB_GETSEL" ; goto List_Default_Processing ; case 9: wm_name = "LB_GETCURSEL" ; goto List_Default_Processing ; case 10: wm_name = "LB_GETTEXT" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPWSTR( (LPWSTR)lParam, 0 ) ; break ; case 11: wm_name = "LB_GETTEXTLEN" ; goto List_Default_Processing ; case 12: wm_name = "LB_GETCOUNT" ; goto List_Default_Processing ; case 13: wm_name = "LB_SELECTSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPWSTR( (LPWSTR)lParam, 0 ) ; break ; case 14: wm_name = "LB_DIR" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPWSTR( (LPWSTR)lParam, 0 ) ; break ; case 15: wm_name = "LB_GETTOPINDEX" ; goto List_Default_Processing ; case 16: wm_name = "LB_FINDSTRING" ; /* lParam points to NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPWSTR( (LPWSTR)lParam, 0 ) ; break ; case 17: wm_name = "LB_GETSELCOUNT" ; goto List_Default_Processing ; case 18: wm_name = "LB_GETSELITEMS" ; /* lParam points to array of int */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPINT( (LPINT)lParam, wParam ) ; break ; case 19: wm_name = "LB_SETTABSTOPS" ; /* lParam points to array of int */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPINT( (LPINT)lParam, wParam ) ; break ; case 20: wm_name = "LB_GETHORIZONTALEXTENT" ; goto List_Default_Processing ; case 21: wm_name = "LB_SETHORIZONTALEXTENT" ; goto List_Default_Processing ; case 22: wm_name = "LB_SETCOLUMNWIDTH" ; goto List_Default_Processing ; /* NO 23 */ case 24: wm_name = "LB_SETTOPINDEX" ; goto List_Default_Processing ; case 25: wm_name = "LB_GETITEMRECT" ; /* lParam points to a RECT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPRECT( (LPRECT)lParam ) ; break ; case 26: wm_name = "LB_GETITEMDATA" ; goto List_Default_Processing ; case 27: wm_name = "LB_SETITEMDATA" ; goto List_Default_Processing ; case 28: wm_name = "LB_SETITEMRANGE" ; goto List_Default_Processing ; /* NO 29, 30, 31, 32 */ case 33: wm_name = "LB_MSGMAX" ; goto List_Default_Processing ; default: wm_name = "UNKNOWN"; List_Default_Processing: wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %lX ", wMsg, (LPSTR)wm_name, wParam, lParam ); WriteBuff( (LPSTR)chTemp ); break ; } } void PrtButtonMessageW( UINT wMsg, WPARAM wParam, LPARAM lParam, BOOL fCall, LONG lRet ) { char chTemp[80] ; LPSTR wm_name = "BM_?????" ; switch( (WORD)(wMsg - WM_USER) ) { case 0: wm_name = "BM_GETCHECK" ; break ; case 1: wm_name = "BM_SETCHECK" ; break ; case 2: wm_name = "BM_GETSTATE"; break ; case 3: wm_name = "BM_SETSTATE"; break ; case 4: wm_name = "BM_SETSTYLE"; break ; } wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %lX ", wMsg, (LPSTR)wm_name, wParam, lParam ); WriteBuff( (LPSTR)chTemp ); } void PrtScrollMessageW( UINT wMsg, WPARAM wParam, LPARAM lParam, BOOL fCall, LONG lRet ) { char chTemp[80] ; LPSTR wm_name = "SBM_?????" ; switch( (WORD)(wMsg - WM_USER) ) { case 0: wm_name = "SBM_SETPOS" ; break ; case 1: wm_name = "SBM_GETPOS" ; break ; case 2: wm_name = "SBM_SETRANGE"; break ; case 3: wm_name = "SBM_GETRANGE"; break ; case 4: wm_name = "SBM_ENABLE_ARROWS"; break ; } wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %lX ", wMsg, (LPSTR)wm_name, wParam, lParam ); WriteBuff( (LPSTR)chTemp ); } void PrtUserMessageW( HWND hwnd, UINT wMsg, WPARAM wParam, LPARAM lParam, BOOL fCall, LONG lRet ) { char chTemp[80] ; char chClass[25] ; GetClassName( hwnd, chClass, sizeof(chClass) ) ; if( !lstrcmpi( chClass, "COMBOBOX" ) ) PrtComboMessageW( wMsg, wParam, lParam, fCall, lRet ) ; else if( !lstrcmpi( chClass, "EDIT" ) ) PrtEditMessageW( wMsg, wParam, lParam, fCall, lRet ) ; else if( !lstrcmpi( chClass, "LISTBOX" ) ) PrtListMessageW( wMsg, wParam, lParam, fCall, lRet ) ; else if ( !lstrcmpi( chClass, "SCROLLBAR") ) PrtScrollMessageW( wMsg, wParam, lParam, fCall, lRet ) ; else if ( !lstrcmpi( chClass, "BUTTON") ) PrtButtonMessageW( wMsg, wParam, lParam, fCall, lRet ) ; else { wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %lX ", wMsg, (LPSTR)"UNKNOWN", wParam, lParam ); WriteBuff( (LPSTR)chTemp ); } } /* This routine handles the dumping of all messages. If a message is >= WM_USER then PrtUserMessage() is called. Non-Aliased messages - DDE Messages WM_DROPFILES WM_[H,V]SCROLLCLIPBOARD WM_PAINTCLIPBOARD WM_SIZECLIPBOARD WM_PALETTECHANGED WM_PALETTEISCHANGING */ void PrtMessageW( HWND hwnd, UINT wMsg, WPARAM wParam, LPARAM lParam, BOOL fCall, LONG lRet ) { char chTemp[80] ; LPSTR wm_name ; if( wMsg >= WM_USER ) PrtUserMessageW( hwnd, wMsg, wParam, lParam, fCall, lRet ) ; else switch( wMsg ) { case 0x0000: wm_name = "WM_NULL "; goto Default_Processing ; case 0x0001: /* lParam points to CREATESTRUCTW */ wm_name = "WM_CREATE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPCREATESTRUCTW( (LPCREATESTRUCTW)lParam ) ; break ; case 0x0002: wm_name = "WM_DESTROY"; goto Default_Processing ; case 0x0003: wm_name = "WM_MOVE"; goto Default_Processing ; case 0x0004: wm_name = "WM_SIZEWAIT"; goto Default_Processing ; case 0x0005: wm_name = "WM_SIZE"; goto Default_Processing ; case 0x0006: /* ** LOWORD(lParam) is a HWND */ wm_name = "WM_ACTIVATE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %X ", wMsg, (LPSTR)wm_name, wParam, HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)LOWORD(lParam) ) ; break ; case 0x0007: wm_name = "WM_SETFOCUS"; /* ** wParam is HWND */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0008: /* ** lParam is HWND */ wm_name = "WM_KILLFOCUS"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)lParam ) ; break ; case 0x0009: wm_name = "WM_SETVISIBLE"; goto Default_Processing ; case 0x000A: wm_name = "WM_ENABLE"; goto Default_Processing ; case 0x000B: wm_name = "WM_SETREDRAW"; goto Default_Processing ; case 0x000C: wm_name = "WM_SETTEXT"; /* lParam points to a STR */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPWSTR( (LPWSTR)lParam, 0 ) ; break ; case 0x000D: /* wParam is length of a buffer pointed to by lParam */ wm_name = "WM_GETTEXT"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); if ( fCall ) { WriteLPWSTR( (LPWSTR)lParam, (DWORD)-1 ); } else { WriteLPWSTR( (LPWSTR)lParam, (DWORD)lRet ); } break ; case 0x000E: wm_name = "WM_GETTEXTLENGTH"; goto Default_Processing ; case 0x000F: wm_name = "WM_PAINT"; goto Default_Processing ; case 0x0010: wm_name = "WM_CLOSE"; goto Default_Processing ; case 0x0011: wm_name = "WM_QUERYENDSESSION"; goto Default_Processing ; case 0x0012: wm_name = "WM_QUIT"; goto Default_Processing ; case 0x0013: wm_name = "WM_QUERYOPEN"; goto Default_Processing ; case 0x0014: /* ** wParam is HDC */ wm_name = "WM_ERASEBKGND"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHDC( (HDC)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0015: wm_name = "WM_SYSCOLORCHANGE"; goto Default_Processing ; case 0x0016: wm_name = "WM_ENDSESSION"; goto Default_Processing ; case 0x0017: wm_name = "WM_SYSTEMERROR"; goto Default_Processing ; case 0x0018: wm_name = "WM_SHOWWINDOW"; goto Default_Processing ; case 0x0019: /* ** LOWORD(lParam) is HWND */ wm_name = "WM_CTLCOLOR"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name ) ; WriteBuff( (LPSTR)chTemp ); WriteHDC( (HDC)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)LOWORD(lParam) ) ; break ; case 0x001A: wm_name = "WM_WININICHANGE"; /* lParam is NULL terminated string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPWSTR( (LPWSTR)lParam, 0 ) ; break ; case 0x001B: wm_name = "WM_DEVMODECHANGE"; /* lParam points to string */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPWSTR( (LPWSTR)lParam, 0 ) ; break ; case 0x001C: /* ** LOWORD(lParam) is HTASK */ wm_name = "WM_ACTIVATEAPP"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %X ", wMsg, (LPSTR)wm_name, wParam, HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHTASK( (HTASK)LOWORD(lParam) ) ; break ; case 0x001D: wm_name = "WM_FONTCHANGE"; goto Default_Processing ; case 0x001E: wm_name = "WM_TIMECHANGE"; goto Default_Processing ; case 0x001F: wm_name = "WM_CANCELMODE"; goto Default_Processing ; case 0x0020: /* ** wParam is HWND */ wm_name = "WM_SETCURSOR"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0021: /* ** wParam is HWND */ wm_name = "WM_MOUSEACTIVATE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; goto Default_Processing ; case 0x0022: wm_name = "WM_CHILDACTIVATE"; goto Default_Processing ; case 0x0023: wm_name = "WM_QUEUESYNC"; goto Default_Processing ; case 0x0024: wm_name = "WM_GETMINMAXINFO"; /* lParam points to array of 5 POINTS */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPPOINT( (LPPOINT)lParam, 5 ) ; break ; case 0x0026: wm_name = "WM_PAINTICON"; goto Default_Processing ; case 0x0027: /* ** wParam is HDC */ wm_name = "WM_ICONERASEBKGND"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHDC( (HDC)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0028: wm_name = "WM_NEXTDLGCTL"; goto Default_Processing ; case 0x0029: wm_name = "WM_ALTTABACTIVE"; goto Default_Processing ; case 0x002A: wm_name = "WM_SPOOLERSTATUS"; goto Default_Processing ; case 0x002B: wm_name = "WM_DRAWITEM"; /* lParam points to DRAWITEMSTRUCT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteDRAWITEMSTRUCT( (LPDRAWITEMSTRUCT)lParam ) ; break ; case 0x002C: wm_name = "WM_MEASUREITEM"; /* lParam points to MEASUREITEMSTRUCT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteMEASUREITEMSTRUCT( (LPMEASUREITEMSTRUCT)lParam ); break; case 0x002D: wm_name = "WM_DELETEITEM"; /* lParam points to DELETEITEMSTRUCT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteDELETEITEMSTRUCT( (LPDELETEITEMSTRUCT)lParam ) ; break ; case 0x002E: wm_name = "WM_VKEYTOITEM"; /* ** LOWORD(lParam) is HWND */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %X ", wMsg, (LPSTR)wm_name, wParam, HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)LOWORD(lParam) ) ; break ; goto Default_Processing ; case 0x002F: /* ** LOWORD(lParam) is HWND */ wm_name = "WM_CHARTOITEM"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %X ", wMsg, (LPSTR)wm_name, wParam, HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)LOWORD(lParam) ) ; break ; case 0x0030: wm_name = "WM_SETFONT"; /* ** wParam is a HFONT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHFONT( (HFONT)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0031: wm_name = "WM_GETFONT"; goto Default_Processing ; case 0x0032: wm_name = "WM_SETHOTKEY"; goto Default_Processing ; case 0x0033: wm_name = "WM_GETHOTKEY"; goto Default_Processing ; case 0x0034: wm_name = "WM_FILESYSCHANGE"; goto Default_Processing ; case 0x0035: wm_name = "WM_ISACTIVEICON"; goto Default_Processing ; case 0x0036: wm_name = "WM_QUERYPARKICON"; goto Default_Processing ; case 0x0037: wm_name = "WM_QUERYDRAGICON"; goto Default_Processing ; case 0x0039: wm_name = "WM_COMPAREITEM"; /* lParam points to a COMPAREITEMSTRUCT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteCOMPAREITEMSTRUCT( (LPCOMPAREITEMSTRUCT)lParam ) ; break ; case 0x0040: wm_name = "WM_TESTING"; goto Default_Processing ; case 0x0041: wm_name = "WM_COMPACTING"; goto Default_Processing ; case 0x0042: wm_name = "WM_OTHERWINDOWCREATED"; goto Default_Processing; case 0x0043: wm_name = "WM_OTHERWINDOWDESTROYED"; goto Default_Processing; case 0x0044: wm_name = "WM_COMMNOTIFY"; goto Default_Processing; case 0x0046: wm_name = "WM_WINDOWPOSCHANGING"; /* ** lParam points to a WINDOWSPOS structure */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteWINDOWPOS( (LPWINDOWPOS)lParam ); break; case 0x0047: wm_name = "WM_WINDOWPOSCHANGED"; /* ** lParam points to a WINDOWSPOS structure */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteWINDOWPOS( (LPWINDOWPOS)lParam ); break; case 0x0048: wm_name = "WM_POWER"; goto Default_Processing; case 0x0081: wm_name = "WM_NCCREATE"; /* lParam points to CREATESTRUCTW */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPCREATESTRUCTW( (LPCREATESTRUCTW)lParam ); if ( CreateWindowLevel <= CreateWindowLevel ) { GetWindowRect( hwnd, &CreateWindowRects[CreateWindowLevel-1] ); } break ; case 0x0082: wm_name = "WM_NCDESTROY"; goto Default_Processing ; case 0x0083: /* lParam points to a RECT */ wm_name = "WM_NCCALCSIZE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); if ( wParam == 0 ) { WriteLPRECT( (LPRECT)lParam ); } else { WriteNCCALCSIZE_PARAMS( (LPNCCALCSIZE_PARAMS)lParam ); } break ; case 0x0084: wm_name = "WM_NCHITTEST"; goto Default_Processing ; case 0x0085: wm_name = "WM_NCPAINT"; goto Default_Processing ; case 0x0086: wm_name = "WM_NCACTIVATE"; goto Default_Processing ; case 0x0087: wm_name = "WM_GETDLGCODE"; goto Default_Processing ; case 0x0088: wm_name = "WM_ENDDIALOG/WM_SYNCPAINT"; goto Default_Processing ; case 0x0089: wm_name = "WM_SYNCTASK"; goto Default_Processing ; case 0x00A0: wm_name = "WM_NCMOUSEMOVE"; goto Default_Processing ; case 0x00A1: wm_name = "WM_NCLBUTTONDOWN"; goto Default_Processing ; case 0x00A2: wm_name = "WM_NCLBUTTONUP"; goto Default_Processing ; case 0x00A3: wm_name = "WM_NCLBUTTONDBLCLK"; goto Default_Processing ; case 0x00A4: wm_name = "WM_NCRBUTTONDOWN"; goto Default_Processing ; case 0x00A5: wm_name = "WM_NCRBUTTONUP"; goto Default_Processing ; case 0x00A6: wm_name = "WM_NCRBUTTONDBLCLK"; goto Default_Processing ; case 0x00A7: wm_name = "WM_NCMBUTTONDOWN"; goto Default_Processing ; case 0x00A8: wm_name = "WM_NCMBUTTONUP"; goto Default_Processing ; case 0x00A9: wm_name = "WM_NCMBUTTONDBLCLK"; goto Default_Processing ; case 0x0100: wm_name = "WM_KEYDOWN/WM_KEYFIRST"; goto Default_Processing ; case 0x0101: wm_name = "WM_KEYUP"; goto Default_Processing ; case 0x0102: wm_name = "WM_CHAR"; goto Default_Processing ; case 0x0103: wm_name = "WM_DEADCHAR"; goto Default_Processing ; case 0x0104: wm_name = "WM_SYSKEYDOWN"; goto Default_Processing ; case 0x0105: wm_name = "WM_SYSKEYUP"; goto Default_Processing ; case 0x0106: wm_name = "WM_SYSCHAR"; goto Default_Processing ; case 0x0107: wm_name = "WM_SYSDEADCHAR"; goto Default_Processing ; case 0x0108: wm_name = "WM_KEYLAST"; goto Default_Processing ; case 0x010A: wm_name = "WM_CONVERTREQUEST"; goto Default_Processing ; case 0x010B: wm_name = "WM_CONVERTRESULT"; goto Default_Processing ; case 0x0110: /* ** wParam is HWND */ wm_name = "WM_INITDIALOG"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HANDLE)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; goto Default_Processing ; case 0x0111: /* ** LOWORD(lParam) is HWND */ wm_name = "WM_COMMAND"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %X ", wMsg, (LPSTR)wm_name, wParam, HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)LOWORD(lParam) ) ; break ; case 0x0112: wm_name = "WM_SYSCOMMAND"; goto Default_Processing ; case 0x0113: wm_name = "WM_TIMER"; goto Default_Processing ; case 0x0114: /* ** HIWORD(lParam) is HWND */ wm_name = "WM_HSCROLL"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)HIWORD(lParam) ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", LOWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0115: /* ** HIWORD(lParam) is HWND */ wm_name = "WM_VSCROLL"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)HIWORD(lParam) ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", LOWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0116: /* ** wParam is a HMENU */ wm_name = "WM_INITMENU"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHMENU( (HANDLE)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0117: /* ** wParam is a HMENU */ wm_name = "WM_INITMENUPOPUP"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHMENU( (HANDLE)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0118: wm_name = "WM_SYSTIMER"; goto Default_Processing ; case 0x011F: wm_name = "WM_MENUSELECT"; /* ** HIWORD(lParam) is HMENU */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteHMENU( (HMENU)HIWORD(lParam) ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", LOWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0120: /* ** HIWORD(lParam) is HMENU */ wm_name = "WM_MENUCHAR"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteHMENU( (HMENU)HIWORD(lParam) ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", LOWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0121: /* ** LOWORD(lParam) is HWND */ wm_name = "WM_ENTERIDLE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %X ", wMsg, (LPSTR)wm_name, wParam, HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)LOWORD(lParam) ) ; break ; case 0x0131: wm_name = "WM_LBTRACKPOINT"; goto Default_Processing ; case 0x0200: wm_name = "WM_MOUSEMOVE/WM_MOUSEFIRST"; goto Default_Processing ; case 0x0201: wm_name = "WM_LBUTTONDOWN"; goto Default_Processing ; case 0x0202: wm_name = "WM_LBUTTONUP"; goto Default_Processing ; case 0x0203: wm_name = "WM_LBUTTONDBLCLK"; goto Default_Processing ; case 0x0204: wm_name = "WM_RBUTTONDOWN"; goto Default_Processing ; case 0x0205: wm_name = "WM_RBUTTONUP"; goto Default_Processing ; case 0x0206: wm_name = "WM_RBUTTONDBLCLK"; goto Default_Processing ; case 0x0207: wm_name = "WM_MBUTTONDOWN"; goto Default_Processing ; case 0x0208: wm_name = "WM_MBUTTONUP"; goto Default_Processing ; case 0x0209: wm_name = "WM_MBUTTONDBLCLK/WM_MOUSELAST"; goto Default_Processing ; case 0x0210: /* ** if wParam == (WM_CREATE || WM_DESTROY) ** LOWORD(lParam) is HWND */ wm_name = "WM_PARENTNOTIFY"; if( (wParam != WM_CREATE) && (wParam != WM_DESTROY) ) goto Default_Processing ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %X ", wMsg, (LPSTR)wm_name, wParam, HIWORD(lParam) ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)LOWORD(lParam) ) ; break ; case 0x0211: wm_name = "WM_ENTERMENULOOP"; goto Default_Processing ; case 0x0212: wm_name = "WM_EXITMENULOOP"; goto Default_Processing ; case 0x0213: wm_name = "WM_NEXTMENU"; goto Default_Processing ; case 0x0220: /* lParam points to MDICREATESTRUCTW */ wm_name = "WM_MDICREATE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPMDICREATESTRUCTW( (LPMDICREATESTRUCTW)lParam ) ; break ; case 0x0221: /* ** wParam is a HWND */ wm_name = "WM_MDIDESTROY"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HANDLE)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0222: /* ** Now this one is interesting as it occurs in two flavors ** Sent and MDI sent. ** ** Sent: lParam == 0L and wParam is HWND ** MDI-Sent: lParam == (HWND,HWND) and wParam is ... */ wm_name = "WM_MDIACTIVATE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name ); WriteBuff( (LPSTR)chTemp ); if( lParam == 0L ) { WriteHWND( (HWND)wParam ) ; WriteBuff( (LPSTR)"0 " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", wParam ); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HWND)HIWORD(lParam) ) ; WriteHWND( (HWND)LOWORD(lParam) ) ; } break ; case 0x0223: wm_name = "WM_MDIRESTORE"; goto Default_Processing ; case 0x0224: wm_name = "WM_MDINEXT"; /* ** wParam is a HWND */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HANDLE)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0225: /* ** wParam is a HWND */ wm_name = "WM_MDIMAXIMIZE"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s ", wMsg, (LPSTR)wm_name); WriteBuff( (LPSTR)chTemp ); WriteHWND( (HANDLE)wParam ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%lX ", lParam ); WriteBuff( (LPSTR)chTemp ); break ; case 0x0226: wm_name = "WM_MDITILE"; goto Default_Processing ; case 0x0227: wm_name = "WM_MDICASCADE"; goto Default_Processing ; case 0x0228: wm_name = "WM_MDIICONARRANGE"; goto Default_Processing ; case 0x0229: wm_name = "WM_MDIGETACTIVE"; goto Default_Processing ; case 0x022A: wm_name = "WM_DROPOBJECT"; goto Default_Processing ; case 0x022B: wm_name = "WM_QUERYDROPOBJECT"; goto Default_Processing ; case 0x022C: wm_name = "WM_BEGINDRAG"; goto Default_Processing ; case 0x022D: wm_name = "WM_DRAGLOOP"; goto Default_Processing ; case 0x022E: wm_name = "WM_DRAGSELECT"; goto Default_Processing ; case 0x022F: wm_name = "WM_DRAGMOVE"; goto Default_Processing ; case 0x0230: /* ** lParam is (HMENU, HMENU) */ wm_name = "WM_MDISETMENU"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteHMENU( (HMENU)HIWORD(lParam) ) ; WriteHMENU( (HMENU)LOWORD(lParam) ) ; break ; case 0x0231: wm_name = "WM_ENTERSIZEMOVE"; goto Default_Processing ; case 0x0232: wm_name = "WM_EXITSIZEMOVE"; goto Default_Processing ; case 0x0233: wm_name = "WM_DROPFILES"; goto Default_Processing ; case 0x0280: wm_name = "WM_KANJIFIRST"; goto Default_Processing ; case 0x029F: wm_name = "WM_KANJILAST"; goto Default_Processing ; case 0x0300: wm_name = "WM_CUT"; goto Default_Processing ; case 0x0301: wm_name = "WM_COPY"; goto Default_Processing ; case 0x0302: wm_name = "WM_PASTE"; goto Default_Processing ; case 0x0303: wm_name = "WM_CLEAR"; goto Default_Processing ; case 0x0304: wm_name = "WM_UNDO"; goto Default_Processing ; case 0x0305: wm_name = "WM_RENDERFORMAT"; goto Default_Processing ; case 0x0306: wm_name = "WM_RENDERALLFORMATS"; goto Default_Processing ; case 0x0307: wm_name = "WM_DESTROYCLIPBOARD"; goto Default_Processing ; case 0x0308: wm_name = "WM_DRAWCLIPBOARD"; goto Default_Processing ; case 0x0309: wm_name = "WM_PAINTCLIPBOARD"; /* lParam points to a PAINTSTRUCT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPPAINTSTRUCT( (LPPAINTSTRUCT)lParam ) ; break ; case 0x030A: wm_name = "WM_VSCROLLCLIPBOARD"; goto Default_Processing ; case 0x030B: wm_name = "WM_SIZECLIPBOARD"; /* lParam points to a RECT */ wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPRECT( (LPRECT)lParam ) ; break ; case 0x030C: /* wParam is length of a buffer pointed to by lParam */ wm_name = "WM_ASKEMFORMATNAME"; wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X ", wMsg, (LPSTR)wm_name, wParam ); WriteBuff( (LPSTR)chTemp ); WriteLPWSTR( (LPWSTR)lParam, (DWORD)wParam ) ; break ; case 0x030D: wm_name = "WM_CHANGEEMCHAIN"; goto Default_Processing ; case 0x030E: wm_name = "WM_HSCROLLCLIPBOARD"; goto Default_Processing ; case 0x030F: wm_name = "WM_QUERYNEWPALETTE"; goto Default_Processing ; case 0x0310: wm_name = "WM_PALETTEISCHANGING"; goto Default_Processing ; case 0x0311: wm_name = "WM_PALETTECHANGED"; goto Default_Processing ; case 0x0380: wm_name = "WM_PENWINFIRST"; goto Default_Processing ; case 0x038F: wm_name = "WM_PENWINLAST"; goto Default_Processing ; case 0x0390: wm_name = "WM_INTERNAL_COALESCE_FIRST/WM_COALESCE_FIRST"; goto Default_Processing ; case 0x039F: wm_name = "WM_COALESCE_LAST"; goto Default_Processing ; case 0x03A0: wm_name = "WM_MM_RESERVED_FIRST"; goto Default_Processing ; case 0x03DF: wm_name = "WM_MM_RESERVED_LAST"; goto Default_Processing ; case 0x03E0: wm_name = "WM_DDE_INITIATE"; goto Default_Processing ; case 0x03E1: wm_name = "WM_DDE_TERMINATE"; goto Default_Processing ; case 0x03E2: wm_name = "WM_DDE_ADVISE"; goto Default_Processing ; case 0x03E3: wm_name = "WM_DDE_UNADVISE"; goto Default_Processing ; case 0x03E4: wm_name = "WM_DDE_ACK"; goto Default_Processing ; case 0x03E5: wm_name = "WM_DDE_DATA"; goto Default_Processing ; case 0x03E6: wm_name = "WM_DDE_REQUEST"; goto Default_Processing ; case 0x03E7: wm_name = "WM_DDE_POKE"; goto Default_Processing ; case 0x03E8: wm_name = "WM_DDE_EXECUTE"; goto Default_Processing ; case 0x03F0: wm_name = "WM_CBT_RESERVED_FIRST"; goto Default_Processing ; case 0x03FF: wm_name = "WM_CBT_RESERVED_LAST"; goto Default_Processing ; default: wm_name = "UNKNOWN"; Default_Processing: wsprintf( (LPSTR)chTemp, (LPSTR)"%X-%s %X %lX ", wMsg, (LPSTR)wm_name, wParam, lParam ); WriteBuff( (LPSTR)chTemp ); break ; } } void WriteThatPHandle( HANDLE *phandle, CORR_TABLE corr, LPSTR prefix ) { char chTemp[20]; if ( fAlias ) { if ( phandle == (HANDLE*)NULL ) { wsprintf( (LPSTR)chTemp, (LPSTR)"{%s_NULL} ", prefix ); } else { /* ** Handles that differ by only that last bit are really the same ** handle and should be output to the logfile as such so this ** routine will be smart and check to see if either "handle" exists ** before trying to make a correspondence. This will prevent problems ** with XL4 where they alloc memory but don't use the handle they ** were returned in later memory callse (esp Frees!) - MarkRi */ // First see if the value passed to us exists. if ( !SpecialFindNewCorrespondence( corr, phandle ) ) { // NOPE!!! MakeCorrespondence( corr, phandle ); } wsprintf( (LPSTR)chTemp, "{%s_%d} ", prefix, ((int)(*phandle))+1 ); } } else { wsprintf( (LPSTR)chTemp, "{%X} ", (int)(*phandle) ); } WriteBuff( (LPSTR)chTemp ); } void WriteHEVENT( HANDLE handle ) { WriteThatHandle( handle, HEVENT_TABLE, "HEVENT" ); } va_list PrtHEVENT( LPSTR lpstr, va_list marker ) { HANDLE handle; handle = va_arg( marker, HANDLE ); WriteHEVENT( handle ); return( marker ); } void WriteHKEY( HANDLE handle ) { WriteThatHandle( handle, HKEY_TABLE, "HKEY" ); } va_list PrtHKEY( LPSTR lpstr, va_list marker ) { HANDLE handle; handle = va_arg( marker, HKEY ); WriteHKEY( handle ); return( marker ); } void WritePHKEY( HANDLE *phandle ) { WriteThatPHandle( phandle, HKEY_TABLE, "HKEY" ); } va_list PrtPHKEY( LPSTR lpstr, va_list marker ) { HANDLE *phandle; phandle = va_arg( marker, PHKEY ); WritePHKEY( phandle ); return( marker ); } void WriteHTHREAD( HANDLE handle ) { WriteThatHandle( handle, HTHREAD_TABLE, "HTHREAD" ); } void WriteHSEMAPHORE( HANDLE handle ) { WriteThatHandle( handle, HSEMAPHORE_TABLE, "HSEMAPHORE" ); } va_list PrtLPSTARTUPINFOA( LPSTR lpstr, va_list marker ) { LPSTARTUPINFOA lpsi; char chTemp[200]; lpsi = va_arg( marker, LPSTARTUPINFOA ); if ( lpsi == (LPSTARTUPINFOA)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X ",lpsi->cb ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( lpsi->lpReserved, 0 ); WriteLPSTR( lpsi->lpDesktop, 0 ); WriteLPSTR( lpsi->lpTitle, 0 ); wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X %X %X %X %X %X %X %X %X ", lpsi->dwX, lpsi->dwY, lpsi->dwXSize, lpsi->dwYSize, lpsi->dwXCountChars, lpsi->dwYCountChars, lpsi->dwFillAttribute, lpsi->dwFlags, lpsi->wShowWindow, lpsi->cbReserved2 ); WriteBuff( chTemp ); WriteLPSTR( lpsi->lpReserved2, lpsi->cbReserved2 ); wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X %X} ", lpsi->hStdInput, lpsi->hStdOutput, lpsi->hStdError ); WriteBuff( chTemp ); } return( marker ); } va_list PrtLPSTARTUPINFOW( LPSTR lpstr, va_list marker ) { LPSTARTUPINFOW lpsi; char chTemp[200]; lpsi = va_arg( marker, LPSTARTUPINFOW ); if ( lpsi == (LPSTARTUPINFOW)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X ",lpsi->cb ); WriteBuff( (LPSTR)chTemp ); WriteLPWSTR( lpsi->lpReserved, 0 ); WriteLPWSTR( lpsi->lpDesktop, 0 ); WriteLPWSTR( lpsi->lpTitle, 0 ); wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X %X %X %X %X %X %X %X %X ", lpsi->dwX, lpsi->dwY, lpsi->dwXSize, lpsi->dwYSize, lpsi->dwXCountChars, lpsi->dwYCountChars, lpsi->dwFillAttribute, lpsi->dwFlags, lpsi->wShowWindow, lpsi->cbReserved2 ); WriteBuff( chTemp ); WriteLPWSTR( (LPWSTR)lpsi->lpReserved2, lpsi->cbReserved2 ); wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X %X} ", lpsi->hStdInput, lpsi->hStdOutput, lpsi->hStdError ); WriteBuff( chTemp ); } return( marker ); } va_list PrtLPOVERLAPPED( LPSTR lpstr, va_list marker ) { LPOVERLAPPED lpo; char chTemp[80]; lpo = va_arg( marker, LPOVERLAPPED ); if ( lpo == (LPOVERLAPPED)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X ", lpo->Internal, lpo->InternalHigh, lpo->Offset, lpo->OffsetHigh ); WriteBuff( (LPSTR)chTemp ); WriteHEVENT( lpo->hEvent ); WriteBuff( "} " ); } return( marker ); } va_list PrtLPSECURITY_ATTRIBUTES( LPSTR lpstr, va_list marker ) { LPSECURITY_ATTRIBUTES lpsa; char chTemp[80]; lpsa = va_arg( marker, LPSECURITY_ATTRIBUTES ); if ( lpsa == (LPSECURITY_ATTRIBUTES)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X ", lpsa->nLength, lpsa->lpSecurityDescriptor ); WriteBuff( (LPSTR)chTemp ); WriteBOOL( lpsa->bInheritHandle ); WriteBuff( "} " ); } return( marker ); } va_list PrtLPCRITICAL_SECTION( LPSTR lpstr, va_list marker ) { LPCRITICAL_SECTION lpcs; char chTemp[200]; lpcs = va_arg( marker, LPCRITICAL_SECTION ); if ( lpcs == NULL ) { WriteBuff( "NULL " ); } else { wsprintf( chTemp, "{ [DEBUGSTUFF] %X %X ", lpcs->LockCount, lpcs->RecursionCount ); WriteBuff( chTemp ); WriteHTHREAD( lpcs->OwningThread ); WriteHSEMAPHORE( lpcs->LockSemaphore ); wsprintf( chTemp, "%X} ", lpcs->Reserved ); WriteBuff( chTemp ); } return( marker ); } va_list PrtPMEMORY_BASIC_INFORMATION( LPSTR lpstr, va_list marker ) { PMEMORY_BASIC_INFORMATION pmem; char chTemp[200]; pmem = va_arg( marker, PMEMORY_BASIC_INFORMATION ); if ( pmem == (PMEMORY_BASIC_INFORMATION)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X %X %X %X} ", pmem->BaseAddress, pmem->AllocationBase, pmem->AllocationProtect, pmem->RegionSize, pmem->State, pmem->Protect, pmem->Type ); WriteBuff( (LPSTR)chTemp ); } return( marker ); } void WriteLPFILETIME (LPFILETIME lpFileTime) { char chTemp[200]; if ( lpFileTime == (LPFILETIME)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X} ", lpFileTime->dwLowDateTime, lpFileTime->dwHighDateTime ); WriteBuff( (LPSTR)chTemp ); } } va_list PrtLPFILETIME( LPSTR lpstr, va_list marker ) { LPFILETIME lpFileTime; lpFileTime = va_arg( marker, LPFILETIME ); WriteLPFILETIME( lpFileTime ); return( marker ); } void WriteLPSYSTEMTIME (LPSYSTEMTIME lpSystemTime) { char chTemp[200]; if ( lpSystemTime == (LPSYSTEMTIME)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X %X %X %X %X} ", (DWORD)(lpSystemTime->wYear), (DWORD)(lpSystemTime->wMonth), (DWORD)(lpSystemTime->wDayOfWeek), (DWORD)(lpSystemTime->wDay), (DWORD)(lpSystemTime->wHour), (DWORD)(lpSystemTime->wMinute), (DWORD)(lpSystemTime->wSecond), (DWORD)(lpSystemTime->wMilliseconds) ); WriteBuff( (LPSTR)chTemp ); } } va_list PrtLPSYSTEMTIME( LPSTR lpstr, va_list marker ) { LPSYSTEMTIME lpSystemTime; lpSystemTime = va_arg( marker, LPSYSTEMTIME ); WriteLPSYSTEMTIME( lpSystemTime ); return( marker ); } va_list PrtLPWIN32_FIND_DATAA( LPSTR lpstr, va_list marker ) { LPWIN32_FIND_DATAA lpData; char chTemp[200]; lpData = va_arg( marker, LPWIN32_FIND_DATAA ); if ( lpData == (LPWIN32_FIND_DATAA)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X ", lpData->dwFileAttributes); WriteBuff( (LPSTR)chTemp ); WriteLPFILETIME (&(lpData->ftCreationTime)); WriteLPFILETIME (&(lpData->ftLastAccessTime)); WriteLPFILETIME (&(lpData->ftLastWriteTime)); wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X %X %X ", lpData->nFileSizeHigh, lpData->nFileSizeLow, lpData->dwReserved0, lpData->dwReserved1 ); WriteBuff( (LPSTR)chTemp ); WriteLPSTR( lpData->cFileName, 0 ); WriteLPSTR( lpData->cAlternateFileName, 0 ); } return( marker ); } va_list PrtLPWIN32_FIND_DATAW( LPSTR lpstr, va_list marker ) { LPWIN32_FIND_DATAW lpData; char chTemp[200]; lpData = va_arg( marker, LPWIN32_FIND_DATAW ); if ( lpData == (LPWIN32_FIND_DATAW)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X ", lpData->dwFileAttributes); WriteBuff( (LPSTR)chTemp ); WriteLPFILETIME (&(lpData->ftCreationTime)); WriteLPFILETIME (&(lpData->ftLastAccessTime)); WriteLPFILETIME (&(lpData->ftLastWriteTime)); wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X %X %X ", lpData->nFileSizeHigh, lpData->nFileSizeLow, lpData->dwReserved0, lpData->dwReserved1 ); WriteBuff( (LPSTR)chTemp ); WriteLPWSTR( lpData->cFileName, 0 ); WriteLPWSTR( lpData->cAlternateFileName, 0 ); } return( marker ); } va_list PrtLPDLGTEMPLATEA( LPSTR lpstr, va_list marker ) { LPDLGTEMPLATEA lpData; LPWORD lpNext; char chTemp[200]; lpData = va_arg( marker, LPDLGTEMPLATEA ); if ( lpData == (LPDLGTEMPLATEA)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X %X %X %X ", lpData->style, lpData->dwExtendedStyle, (DWORD)(lpData->cdit), (DWORD)(lpData->x), (DWORD)(lpData->y), (DWORD)(lpData->cx), (DWORD)(lpData->cy) ); WriteBuff( (LPSTR)chTemp ); lpNext = (LPWORD)((PBYTE)lpData + sizeof(DLGTEMPLATE)); // // Menu // if (*lpNext == 0x0000) { wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", 0x0); WriteBuff( (LPSTR)chTemp ); lpNext++; } else if (*lpNext == 0xFFFF) { lpNext++; wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X", 0xFFFF, (DWORD)(*lpNext)); WriteBuff( (LPSTR)chTemp ); lpNext++; } else { WriteLPSTR( (LPSTR)lpNext, 0 ); while (*((LPSTR)(lpNext))++); ((LPSTR)(lpNext))++; } // // Class // if (*lpNext == 0x0000) { wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", 0x0); WriteBuff( (LPSTR)chTemp ); lpNext++; } else if (*lpNext == 0xFFFF) { lpNext++; wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X", 0xFFFF, (DWORD)(*lpNext)); WriteBuff( (LPSTR)chTemp ); lpNext++; } else { WriteLPSTR( (LPSTR)lpNext, 0 ); while (*((LPSTR)(lpNext))++); ((LPSTR)(lpNext))++; } // // Title // if (*lpNext == 0x0000) { wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", 0x0); WriteBuff( (LPSTR)chTemp ); lpNext++; } else { WriteLPSTR( (LPSTR)lpNext, 0 ); while (*((LPSTR)(lpNext))++); ((LPSTR)(lpNext))++; } // // Font // if (lpData->style == DS_SETFONT) { wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", *lpNext); WriteBuff( (LPSTR)chTemp ); lpNext++; WriteLPSTR( (LPSTR)lpNext, 0 ); } WriteBuff( (LPSTR)"} "); } return( marker ); } va_list PrtLPDLGTEMPLATEW( LPSTR lpstr, va_list marker ) { LPDLGTEMPLATEW lpData; LPWORD lpNext; char chTemp[200]; lpData = va_arg( marker, LPDLGTEMPLATEW ); if ( lpData == (LPDLGTEMPLATEW)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X %X %X %X ", lpData->style, lpData->dwExtendedStyle, (DWORD)(lpData->cdit), (DWORD)(lpData->x), (DWORD)(lpData->y), (DWORD)(lpData->cx), (DWORD)(lpData->cy) ); WriteBuff( (LPSTR)chTemp ); lpNext = (LPWORD)((PBYTE)lpData + sizeof(DLGTEMPLATE)); // // Menu // if (*lpNext == 0x0000) { wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", 0x0); WriteBuff( (LPSTR)chTemp ); lpNext++; } else if (*lpNext == 0xFFFF) { lpNext++; wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X", 0xFFFF, (DWORD)(*lpNext)); WriteBuff( (LPSTR)chTemp ); lpNext++; } else { WriteLPWSTR( (LPWSTR)lpNext, 0 ); while (*((LPWSTR)(lpNext))++); ((LPWSTR)(lpNext))++; } // // Class // if (*lpNext == 0x0000) { wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", 0x0); WriteBuff( (LPSTR)chTemp ); lpNext++; } else if (*lpNext == 0xFFFF) { lpNext++; wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X", 0xFFFF, (DWORD)(*lpNext)); WriteBuff( (LPSTR)chTemp ); lpNext++; } else { WriteLPWSTR( (LPWSTR)lpNext, 0 ); while (*((LPWSTR)(lpNext))++); ((LPWSTR)(lpNext))++; } // // Title // if (*lpNext == 0x0000) { wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", 0x0); WriteBuff( (LPSTR)chTemp ); lpNext++; } else { WriteLPWSTR( (LPWSTR)lpNext, 0 ); while (*((LPWSTR)(lpNext))++); ((LPWSTR)(lpNext))++; } // // Font // if (lpData->style == DS_SETFONT) { wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", *lpNext); WriteBuff( (LPSTR)chTemp ); lpNext++; WriteLPWSTR( (LPWSTR)lpNext, 0 ); } WriteBuff( (LPSTR)"} "); } return( marker ); } va_list PrtLPDLGITEMTEMPLATEA( LPSTR lpstr, va_list marker ) { LPDLGITEMTEMPLATEA lpData; LPWORD lpNext; char chTemp[200]; lpData = va_arg( marker, LPDLGITEMTEMPLATEA ); if ( lpData == (LPDLGITEMTEMPLATEA)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X %X %X %X ", lpData->style, lpData->dwExtendedStyle, (DWORD)(lpData->x), (DWORD)(lpData->y), (DWORD)(lpData->cx), (DWORD)(lpData->cy), (DWORD)(lpData->id) ); WriteBuff( (LPSTR)chTemp ); lpNext = (LPWORD)((PBYTE)lpData + sizeof(DLGITEMTEMPLATE)); // // Class // if (*lpNext == 0xFFFF) { lpNext++; wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X", 0xFFFF, (DWORD)(*lpNext)); WriteBuff( (LPSTR)chTemp ); lpNext++; } else { WriteLPSTR( (LPSTR)lpNext, 0 ); while (*((LPSTR)(lpNext))++); ((LPSTR)(lpNext))++; } // // Title // if (*lpNext == 0xFFFF) { lpNext++; wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X", 0xFFFF, (DWORD)(*lpNext)); WriteBuff( (LPSTR)chTemp ); lpNext++; } else { WriteLPSTR( (LPSTR)lpNext, 0 ); while (*((LPSTR)(lpNext))++); ((LPSTR)(lpNext))++; } wsprintf( (LPSTR)chTemp, (LPSTR)"%08lX} ", lpNext); WriteBuff( (LPSTR)chTemp ); } return( marker ); } va_list PrtLPDLGITEMTEMPLATEW( LPSTR lpstr, va_list marker ) { LPDLGITEMTEMPLATEW lpData; LPWORD lpNext; char chTemp[200]; lpData = va_arg( marker, LPDLGITEMTEMPLATEW ); if ( lpData == (LPDLGITEMTEMPLATEW)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X %X %X %X} ", lpData->style, lpData->dwExtendedStyle, (DWORD)(lpData->x), (DWORD)(lpData->y), (DWORD)(lpData->cx), (DWORD)(lpData->cy), (DWORD)(lpData->id) ); WriteBuff( (LPSTR)chTemp ); lpNext = (LPWORD)(+ sizeof(DLGITEMTEMPLATE)); // // Class // if (*lpNext == 0xFFFF) { lpNext++; wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X", 0xFFFF, (DWORD)(*lpNext)); WriteBuff( (LPSTR)chTemp ); lpNext++; } else { WriteLPWSTR( (LPWSTR)lpNext, 0 ); while (*((LPWSTR)(lpNext))++); ((LPWSTR)(lpNext))++; } // // Title // if (*lpNext == 0xFFFF) { lpNext++; wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X", 0xFFFF, (DWORD)(*lpNext)); WriteBuff( (LPSTR)chTemp ); lpNext++; } else { WriteLPWSTR( (LPWSTR)lpNext, 0 ); while (*((LPWSTR)(lpNext))++); ((LPWSTR)(lpNext))++; } wsprintf( (LPSTR)chTemp, (LPSTR)"%08lX} ", lpNext); WriteBuff( (LPSTR)chTemp ); } return( marker ); } va_list PrtLPWINDOWPLACEMENT( LPSTR lpstr, va_list marker ) { LPWINDOWPLACEMENT lpData; char chTemp[200]; lpData = va_arg( marker, LPWINDOWPLACEMENT ); if ( lpData == (LPWINDOWPLACEMENT)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X", lpData->length, lpData->flags, lpData->showCmd); WriteBuff( (LPSTR)chTemp ); WriteLPPOINT( &(lpData->ptMinPosition), 1 ); WriteLPPOINT( &(lpData->ptMaxPosition), 1 ); WriteLPRECT( &(lpData->rcNormalPosition) ); WriteBuff( (LPSTR)"} "); } return( marker ); } va_list PrtLPCONVCONTEXT( LPSTR lpstr, va_list marker ) { PCONVCONTEXT lpData; char chTemp[200]; lpData = va_arg( marker, PCONVCONTEXT ); if ( lpData == (PCONVCONTEXT)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X %X %X %X} ", lpData->cb, lpData->wFlags, lpData->wCountryID, lpData->iCodePage, lpData->dwLangID, lpData->dwSecurity, lpData->qos); WriteBuff( (LPSTR)chTemp ); } return( marker ); } // DDI types void WritePRECTL( PRECTL lprect ) { char chTemp[40]; if ( lprect == (PRECTL)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X} ", lprect->left, lprect->top, lprect->right, lprect->bottom ); WriteBuff( (LPSTR)chTemp ); } } void WriteHSURF( HSURF hSurf ) { char chTemp[12]; if ( hSurf == (HSURF)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", hSurf ) ; WriteBuff( (LPSTR)chTemp ); } } void WritePHSURF( HSURF *phSurf ) { char chTemp[12]; if ( phSurf == (HSURF*)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", *phSurf ) ; WriteBuff( (LPSTR)chTemp ); } } void WriteDHSURF( DHSURF dhSurf ) { char chTemp[12]; if ( dhSurf == (DHSURF)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", dhSurf ) ; WriteBuff( (LPSTR)chTemp ); } } void WriteDHPDEV( DHPDEV dhPDEV ) { char chTemp[12]; if ( dhPDEV == (DHPDEV)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", dhPDEV ) ; WriteBuff( (LPSTR)chTemp ); } } void WriteHDEV( HDEV hdev ) { char chTemp[12]; if ( hdev == (HDEV)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", hdev ) ; WriteBuff( (LPSTR)chTemp ); } } void WritePPOINTL( PPOINTL lppoint, int npoint ) { char chTemp[30]; int i; int len; if ( lppoint == (PPOINTL)NULL || npoint == 0 ) { WriteBuff( (LPSTR)"NULL " ); nLineLen += 5; return; } if (npoint > 25) { DWORD dwWhere; dwWhere = StoreData( (LPCSTR)lppoint, (DWORD) (npoint) * (DWORD) sizeof(POINT)); WriteBuff( "DATAFILE "); wsprintf(chTemp, "%lX", dwWhere); WriteBuff(chTemp); return; } for( i=0; i 200 ) { EndLineBuff(); WriteBuff( "**|DATA:x "); nLineLen = 10; } WriteBuff( chTemp ); nLineLen += len; } } void WritePPOINTS( PPOINTS lppoint, int npoint ) { char chTemp[30]; int i; int len; if ( lppoint == (PPOINTS)NULL || npoint == 0 ) { WriteBuff( (LPSTR)"NULL " ); nLineLen += 5; return; } if (npoint > 25) { DWORD dwWhere; dwWhere = StoreData( (LPCSTR)lppoint, (DWORD) (npoint) * (DWORD) sizeof(POINT)); WriteBuff( "DATAFILE "); wsprintf(chTemp, "%lX", dwWhere); WriteBuff(chTemp); return; } for( i=0; i 200 ) { EndLineBuff(); WriteBuff( "**|DATA:x "); nLineLen = 10; } WriteBuff( chTemp ); nLineLen += len; } } void WriteSIZE( LPSIZE lps ) { char chTemp[22]; if ( lps == (LPSIZE)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X} ", lps->cx, lps->cy ); WriteBuff( (LPSTR)chTemp ); } } va_list PrtSIZE( LPSTR lpstr, va_list marker ) { SIZE lpData; lpData = va_arg( marker, SIZE ); WriteSIZE( &lpData ) ; return( marker ); } va_list PrtHSURF( LPSTR lpstr, va_list marker ) { HSURF lpData; lpData = va_arg( marker, HSURF ); WriteHSURF( lpData ) ; return( marker ); } va_list PrtPSURFOBJ( LPSTR lpstr, va_list marker ) { SURFOBJ *lpData; char chTemp[200]; lpData = va_arg( marker, SURFOBJ* ); if ( lpData == (SURFOBJ *)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { WriteDHSURF( lpData->dhsurf ) ; WriteHSURF( lpData->hsurf ) ; WriteDHPDEV( lpData->dhpdev ) ; WriteHDEV( lpData->hdev ) ; WriteSIZE( &(lpData->sizlBitmap) ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X %X %X %X %X} ", lpData->cjBits, lpData->pvBits, lpData->pvScan0, lpData->lDelta, lpData->iUniq, lpData->iBitmapFormat, lpData->iType, lpData->fjBitmap ) ; WriteBuff( (LPSTR)chTemp ); } return( marker ); } va_list PrtPCLIPOBJ( LPSTR lpstr, va_list marker ) { CLIPOBJ *lpData; char chTemp[200]; lpData = va_arg( marker, CLIPOBJ* ); if ( lpData == (CLIPOBJ*)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X ", lpData->iUniq ); WriteBuff( (LPSTR)chTemp ); WritePRECTL( &(lpData->rclBounds) ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"{%X ", lpData->iDComplexity, lpData->iFComplexity, lpData->iMode, lpData->fjOptions ); WriteBuff( (LPSTR)chTemp ); } return( marker ); } va_list PrtPXLATEOBJ( LPSTR lpstr, va_list marker ) { XLATEOBJ *lpData; char chTemp[200]; lpData = va_arg( marker, XLATEOBJ* ); if ( lpData == (XLATEOBJ*)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X %X %X} ", lpData->iUniq, lpData->flXlate, lpData->iSrcType, lpData->iDstType, lpData->cEntries, lpData->pulXlate ); WriteBuff( (LPSTR)chTemp ); } return( marker ); } va_list PrtPRECTL( LPSTR lpstr, va_list marker ) { PRECTL lpData; lpData = va_arg( marker, PRECTL ); WritePRECTL( lpData ) ; return( marker ); } va_list PrtPPOINTL( LPSTR lpstr, va_list marker ) { PPOINTL lpData; lpData = va_arg( marker, PPOINTL ); WritePPOINTL( lpData, 1 ) ; return( marker ); } va_list PrtPOINTS( LPSTR lpstr, va_list marker ) { POINTS Data; Data = va_arg( marker, POINTS ); WritePPOINTS( &Data, 1 ) ; return( marker ); } va_list PrtPBRUSHOBJ( LPSTR lpstr, va_list marker ) { BRUSHOBJ *lpData; char chTemp[200]; lpData = va_arg( marker, BRUSHOBJ* ); if ( lpData == (BRUSHOBJ*)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X} ", lpData->iSolidColor, lpData->pvRbrush ); WriteBuff( (LPSTR)chTemp ); } return( marker ); } va_list PrtROP4( LPSTR lpstr, va_list marker ) { ROP4 lpData; char chTemp[15]; lpData = va_arg( marker, ROP4 ); wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", lpData); WriteBuff( (LPSTR)chTemp ); return( marker ); } va_list PrtPHSURF( LPSTR lpstr, va_list marker ) { PHSURF lpData; lpData = va_arg( marker, PHSURF ); WritePHSURF( lpData ) ; return( marker ); } va_list PrtPIFIMETRICS( LPSTR lpstr, va_list marker ) { PIFIMETRICS lpData; char chTemp[120]; int i ; lpData = va_arg( marker, PIFIMETRICS ); if ( lpData == (PIFIMETRICS)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%X %X %X %X %X %X %X ", lpData->cjThis, lpData->ulVersion, lpData->dpwszFamilyName, lpData->dpwszStyleName, lpData->dpwszFaceName, lpData->dpwszUniqueName, lpData->dpFontSim ) ; WriteBuff( (LPSTR)chTemp ); #ifdef OLD for( i=0; i < IFI_RESERVED; i++ ) { wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", lpData->alReserved[i] ) ; WriteBuff( (LPSTR)chTemp ); } #else wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", lpData->dpCharSets ); WriteBuff( (LPSTR)chTemp ); #endif wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X %X %X %X %X %X %X %X %X %X %X %X ", lpData->jWinCharSet, lpData->jWinPitchAndFamily, lpData->usWinWeight, lpData->flInfo, lpData->fsSelection, lpData->fsType, lpData->fwdUnitsPerEm, lpData->fwdLowestPPEm, lpData->fwdWinAscender, lpData->fwdWinDescender, lpData->fwdMacAscender, lpData->fwdMacDescender, lpData->fwdMacLineGap ) ; WriteBuff( (LPSTR)chTemp ); wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X %X %X %X %X %X %X %X %X %X %X %X ", lpData->fwdTypoAscender, lpData->fwdTypoDescender, lpData->fwdTypoLineGap, lpData->fwdAveCharWidth, lpData->fwdMaxCharInc, lpData->fwdCapHeight, lpData->fwdXHeight, lpData->fwdSubscriptXSize, lpData->fwdSubscriptYSize, lpData->fwdSubscriptXOffset, lpData->fwdSubscriptYOffset, lpData->fwdSuperscriptXSize, lpData->fwdSuperscriptYSize ) ; WriteBuff( (LPSTR)chTemp ); wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X %X %X %X %X %c %c %c %c %X %X %X %X ", lpData->fwdSuperscriptXOffset, lpData->fwdSuperscriptYOffset, lpData->fwdUnderscoreSize, lpData->fwdUnderscorePosition, lpData->fwdStrikeoutSize, lpData->fwdStrikeoutPosition, lpData->chFirstChar, lpData->chLastChar, lpData->chDefaultChar, lpData->chBreakChar, lpData->wcFirstChar, lpData->wcLastChar, lpData->wcDefaultChar, lpData->wcBreakChar ) ; WriteBuff( (LPSTR)chTemp ); WritePPOINTL( &(lpData->ptlBaseline), 1 ) ; WritePPOINTL( &(lpData->ptlAspect), 1 ) ; WritePPOINTL( &(lpData->ptlCaret), 1 ) ; WritePRECTL( &(lpData->rclFontBox) ) ; for( i=0; i < 4; i++ ) { wsprintf( (LPSTR)chTemp, (LPSTR)"%c ", lpData->achVendId[i] ) ; WriteBuff( (LPSTR)chTemp ); } wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X ", lpData->cKerningPairs, lpData->ulPanoseCulture ) ; WriteBuff( (LPSTR)chTemp ); WriteLPPANOSE( &(lpData->panose) ) ; } return( marker ); } va_list PrtPDEVMODEW( LPSTR lpstr, va_list marker ) { PDEVMODEW lpData; char chTemp[120]; lpData = va_arg( marker, PDEVMODEW ); if ( lpData == (PDEVMODEW)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { WriteBuff( (LPSTR)"{" ) ; WriteLPWSTR( lpData->dmDeviceName, CCHDEVICENAME ) ; wsprintf( chTemp, "%X %X %X %X %X %X %X %X %X " , lpData->dmSpecVersion, lpData->dmDriverVersion, lpData->dmSize, lpData->dmDriverExtra, lpData->dmFields, lpData->dmOrientation, lpData->dmPaperSize, lpData->dmPaperLength, lpData->dmPaperWidth ) ; WriteBuff( (LPSTR)chTemp ) ; wsprintf( chTemp, "%X %X %X %X %X %X %X %X %X " , lpData->dmScale, lpData->dmCopies, lpData->dmDefaultSource, lpData->dmPrintQuality, lpData->dmColor, lpData->dmDuplex, lpData->dmYResolution, lpData->dmTTOption, lpData->dmCollate ) ; WriteBuff( (LPSTR)chTemp ) ; WriteLPWSTR( lpData->dmFormName, CCHFORMNAME ); wsprintf( chTemp, "%X %X %X %X %X %X } " , lpData->dmLogPixels, lpData->dmBitsPerPel, lpData->dmPelsWidth, lpData->dmPelsHeight, lpData->dmDisplayFlags, lpData->dmDisplayFrequency) ; WriteBuff( (LPSTR)chTemp ) ; } return marker ; } va_list PrtPDRVENABLEDATA( LPSTR lpstr, va_list marker ) { DRVENABLEDATA *lpData; char chTemp[30]; lpData = va_arg( marker, DRVENABLEDATA* ); if ( lpData == (DRVENABLEDATA*)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( chTemp, "{%X %X ", lpData->iDriverVersion, lpData->c ) ; WriteBuff( (LPSTR)chTemp ) ; if( lpData->pdrvfn == NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { } WriteBuff( (LPSTR)"} " ) ; } return marker; } va_list PrtPDEVINFO( LPSTR lpstr, va_list marker ) { DEVINFO *lpData; char chTemp[30]; lpData = va_arg( marker, DEVINFO* ); if ( lpData == (DEVINFO*)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( (LPSTR)chTemp, (LPSTR)"{%lX ", lpData->flGraphicsCaps ); WriteBuff( (LPSTR)chTemp ); WriteLPLOGFONTW( &(lpData->lfDefaultFont) ) ; WriteLPLOGFONTW( &(lpData->lfAnsiVarFont) ) ; WriteLPLOGFONTW( &(lpData->lfAnsiFixFont) ) ; wsprintf( (LPSTR)chTemp, (LPSTR)"%X %X %X %X ", lpData->cFonts, lpData->iDitherFormat, lpData->cxDither, lpData->cyDither ) ; WriteBuff( (LPSTR)chTemp ); WriteHPALETTE(lpData->hpalDefault ) ; WriteBuff( (LPSTR)"} " ) ; } return marker ; ; } va_list PrtDHPDEV( LPSTR lpstr, va_list marker ) { DHPDEV dhData; dhData = va_arg( marker, DHPDEV ); WriteDHPDEV( dhData ) ; return marker ; } va_list PrtHDEV( LPSTR lpstr, va_list marker ) { HDEV hData; hData = va_arg( marker, HDEV ); WriteHDEV( hData ) ; return marker ; } void WritePPATHOBJ( PATHOBJ *ppo ) { char chTemp[15] ; wsprintf( chTemp, "{%X %X} ", ppo->fl, ppo->cCurves ) ; WriteBuff( (LPSTR)chTemp ) ; } void WritePGLYPHBITS( GLYPHBITS *pgb ) { WriteBuff( (LPSTR)"{" ); WritePPOINTL( &(pgb->ptlOrigin), 1 ) ; WriteSIZE( &(pgb->sizlBitmap) ) ; WriteBuff( (LPSTR)"BYTE aj[] (Bits) NOT written! " ) ; WriteBuff( (LPSTR)"} " ) ; } void WritePGLYPHDEF( GLYPHDEF *pgdf ) { WriteBuff( (LPSTR)"{" ); WritePGLYPHBITS( pgdf->pgb ) ; WritePPATHOBJ( pgdf->ppo ) ; WriteBuff( (LPSTR)"} " ) ; } void WritePGLYPHPOS( GLYPHPOS *pgp ) { char chTemp[15] ; wsprintf( chTemp, "{%X ", (DWORD)pgp->hg ) ; WriteBuff( (LPSTR) chTemp ) ; WritePGLYPHDEF( pgp->pgdf ) ; WritePPOINTL( &(pgp->ptl), 1 ) ; WriteBuff( (LPSTR)"} " ) ; } va_list PrtPSTROBJ( LPSTR lpstr, va_list marker ) { STROBJ *lpData; char chTemp[40]; lpData = va_arg( marker, STROBJ* ); if ( lpData == (STROBJ*)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf( chTemp, "{%X %X %X ", lpData->cGlyphs, lpData->flAccel, lpData->ulCharInc ) ; WriteBuff( (LPSTR)chTemp ) ; if( lpData->pgp == NULL ) { WriteBuff( (LPSTR)"NULL " ) ; } else { WritePGLYPHPOS( lpData->pgp ) ; } WriteLPWSTR( lpData->pwszOrg, 0 ) ; WriteBuff( (LPSTR)"} " ); } return marker ; } va_list PrtPFONTOBJ( LPSTR lpstr, va_list marker ) { FONTOBJ *lpData; char chTemp[120]; lpData = va_arg( marker, FONTOBJ* ); if ( lpData == (FONTOBJ*)NULL ) { WriteBuff( (LPSTR)"NULL " ); } else { wsprintf(chTemp, "{%X %X %X %X %X %X ", lpData->iUniq, lpData->iFace, lpData->cxMax, lpData->flFontType, lpData->iTTUniq, lpData->iFile ) ; WriteBuff( (LPSTR)chTemp ) ; WriteSIZE( &(lpData->sizLogResPpi) ) ; wsprintf(chTemp, "%X %X %X } ", lpData->ulStyleSize, (DWORD)lpData->pvConsumer, (DWORD)lpData->pvProducer ) ; WriteBuff( (LPSTR)chTemp ) ; } return marker ; ; } va_list PrtMIX( LPSTR lpstr, va_list marker ) { MIX mix ; char chTemp[15]; mix = va_arg( marker, MIX ); wsprintf( (LPSTR)chTemp, (LPSTR)"%X ", mix); WriteBuff( (LPSTR)chTemp ); return( marker ); } #endif /* WIN32 */