home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
messrec.c
< prev
next >
Wrap
Text File
|
1996-07-16
|
10KB
|
211 lines
/*
Martin Vieregg 100661.626@COMPUSERVE.COM
Public Domain software
15.4.1996
Recording messages of a OS/2 PM application into the file MESSAGES.TXT
Usage:
------
* include this C file to your main C source file:
#include "messrec.c"
* insert MessRecStart() e.g. under WM_INITDLG
* insert MessRecEnd() e.g. under WM_CLOSE
* insert MessRec(msg) at the beginning of your window message main function:
MRESULT EXPENTRY MyProgDialog(HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) {
MessRec(msg);
Result:
-------
After running your program, the file MESSAGES.TXT will look like:
1 WM_SETWINDOWPARAMS
2 WM_QUERYFRAMEINFO
3 WM_SETHELPINFO
4 WM_CONTROL.........
14 WM_QUERYFOCUSCHAIN..
17 WM_FOCUSCHANGE
18 WM_ADJUSTWINDOWPOS
If a message appears more than one time, it is shown as a dot.
I have tested this code with Borland C 1.5.
*/
int MessCount = 0, LastMsg = 0, MessOpen = 0;
FILE *MessFile;
void MessRecStart () {
MessFile = fopen ("MESSAGES.TXT", "wt");
MessOpen = 1;
}
void MessRecEnd () {
fclose (MessFile); MessOpen = 0;
}
void MessRec (ULONG msg) {
if (MessOpen) {
MessCount++;
char stmsg[150];
switch (msg) {
case 0x0000 : strcpy (stmsg, "WM_NULL"); break;
case 0x0001 : strcpy (stmsg, "WM_CREATE"); break;
case 0x0002 : strcpy (stmsg, "WM_DESTROY"); break;
case 0x0004 : strcpy (stmsg, "WM_ENABLE"); break;
case 0x0005 : strcpy (stmsg, "WM_SHOW"); break;
case 0x0006 : strcpy (stmsg, "WM_MOVE"); break;
case 0x0007 : strcpy (stmsg, "WM_SIZE"); break;
case 0x0008 : strcpy (stmsg, "WM_ADJUSTWINDOWPOS"); break;
case 0x0009 : strcpy (stmsg, "WM_CALCVALIDRECTS"); break;
case 0x000a : strcpy (stmsg, "WM_SETWINDOWPARAMS"); break;
case 0x000b : strcpy (stmsg, "WM_QUERYWINDOWPARAMS"); break;
case 0x000c : strcpy (stmsg, "WM_HITTEST"); break;
case 0x000d : strcpy (stmsg, "WM_ACTIVATE"); break;
case 0x000f : strcpy (stmsg, "WM_SETFOCUS"); break;
case 0x0010 : strcpy (stmsg, "WM_SETSELECTION"); break;
case 0x0011 : strcpy (stmsg, "WM_PPAINT"); break;
case 0x0012 : strcpy (stmsg, "WM_PSETFOCUS"); break;
case 0x0013 : strcpy (stmsg, "WM_PSYSCOLORCHANGE"); break;
case 0x0014 : strcpy (stmsg, "WM_PSIZE"); break;
case 0x0015 : strcpy (stmsg, "WM_PACTIVATE"); break;
case 0x0016 : strcpy (stmsg, "WM_PCONTROL"); break;
case 0x0020 : strcpy (stmsg, "WM_COMMAND"); break;
case 0x0021 : strcpy (stmsg, "WM_SYSCOMMAND"); break;
case 0x0022 : strcpy (stmsg, "WM_HELP"); break;
case 0x0023 : strcpy (stmsg, "WM_PAINT"); break;
case 0x0024 : strcpy (stmsg, "WM_TIMER"); break;
case 0x0025 : strcpy (stmsg, "WM_SEM1"); break;
case 0x0026 : strcpy (stmsg, "WM_SEM2"); break;
case 0x0027 : strcpy (stmsg, "WM_SEM3"); break;
case 0x0028 : strcpy (stmsg, "WM_SEM4"); break;
case 0x0029 : strcpy (stmsg, "WM_CLOSE"); break;
case 0x002a : strcpy (stmsg, "WM_QUIT"); break;
case 0x002b : strcpy (stmsg, "WM_SYSCOLORCHANGE"); break;
case 0x002d : strcpy (stmsg, "WM_SYSVALUECHANGED"); break;
case 0x002e : strcpy (stmsg, "WM_APPTERMINATENOTIFY"); break;
case 0x002f : strcpy (stmsg, "WM_PRESPARAMCHANGED"); break;
case 0x0030 : strcpy (stmsg, "WM_CONTROL"); break;
case 0x0031 : strcpy (stmsg, "WM_VSCROLL"); break;
case 0x0032 : strcpy (stmsg, "WM_HSCROLL"); break;
case 0x0033 : strcpy (stmsg, "WM_INITMENU"); break;
case 0x0034 : strcpy (stmsg, "WM_MENUSELECT"); break;
case 0x0035 : strcpy (stmsg, "WM_MENUEND"); break;
case 0x0036 : strcpy (stmsg, "WM_DRAWITEM"); break;
case 0x0037 : strcpy (stmsg, "WM_MEASUREITEM"); break;
case 0x0038 : strcpy (stmsg, "WM_CONTROLPOINTER"); break;
case 0x003a : strcpy (stmsg, "WM_QUERYDLGCODE"); break;
case 0x003b : strcpy (stmsg, "WM_INITDLG"); break;
case 0x003c : strcpy (stmsg, "WM_SUBSTITUTESTRING"); break;
case 0x003d : strcpy (stmsg, "WM_MATCHMNEMONIC"); break;
case 0x003e : strcpy (stmsg, "WM_SAVEAPPLICATION"); break;
case 0x0070 : strcpy (stmsg, "WM_MOUSEFIRST or WM_MOUSEMOVE"); break;
case 0x0071 : strcpy (stmsg, "WM_BUTTONCLICKFIRST or WM_BUTTON1DOWN"); break;
case 0x0072 : strcpy (stmsg, "WM_BUTTON1UP"); break;
case 0x0073 : strcpy (stmsg, "WM_BUTTON1DBLCLK"); break;
case 0x0074 : strcpy (stmsg, "WM_BUTTON2DOWN"); break;
case 0x0075 : strcpy (stmsg, "WM_BUTTON2UP"); break;
case 0x0076 : strcpy (stmsg, "WM_BUTTON2DBLCLK"); break;
case 0x0077 : strcpy (stmsg, "WM_BUTTON3DOWN"); break;
case 0x0078 : strcpy (stmsg, "WM_BUTTON3UP"); break;
case 0x0079 : strcpy (stmsg, "WM_BUTTONCLICKLAST or WM_BUTTON3DBLCLK or WM_MOUSELAST"); break;
case 0x007D : strcpy (stmsg, "WM_MOUSEMAP"); break;
case 0x0410 : strcpy (stmsg, "WM_EXTMOUSEFIRST or WM_CHORD"); break;
case 0x0411 : strcpy (stmsg, "WM_BUTTON1MOTIONSTART"); break;
case 0x0412 : strcpy (stmsg, "WM_BUTTON1MOTIONEND"); break;
case 0x0413 : strcpy (stmsg, "WM_BUTTON1CLICK"); break;
case 0x0414 : strcpy (stmsg, "WM_BUTTON2MOTIONSTART"); break;
case 0x0415 : strcpy (stmsg, "WM_BUTTON2MOTIONEND"); break;
case 0x0416 : strcpy (stmsg, "WM_BUTTON2CLICK"); break;
case 0x0417 : strcpy (stmsg, "WM_BUTTON3MOTIONSTART or WM_BUTTON3MOTIONSTART"); break;
case 0x0418 : strcpy (stmsg, "WM_BUTTON3MOTIONEND"); break;
case 0x0419 : strcpy (stmsg, "WM_BUTTON3CLICK or WM_EXTMOUSELAST"); break;
case 0x0420 : strcpy (stmsg, "WM_MOUSETRANSLATEFIRST or WM_BEGINDRAG"); break;
case 0x0421 : strcpy (stmsg, "WM_ENDDRAG"); break;
case 0x0422 : strcpy (stmsg, "WM_SINGLESELECT"); break;
case 0x0423 : strcpy (stmsg, "WM_OPEN"); break;
case 0x0424 : strcpy (stmsg, "WM_CONTEXTMENU"); break;
case 0x0425 : strcpy (stmsg, "WM_CONTEXTHELP"); break;
case 0x0426 : strcpy (stmsg, "WM_TEXTEDIT"); break;
case 0x0427 : strcpy (stmsg, "WM_BEGINSELECT"); break;
case 0x0428 : strcpy (stmsg, "WM_ENDSELECT or WM_MOUSETRANSLATELAST"); break;
case 0x04C0 : strcpy (stmsg, "WM_PENFIRST"); break;
case 0x04FF : strcpy (stmsg, "WM_PENLAST"); break;
case 0x0500 : strcpy (stmsg, "WM_MMPMFIRST"); break;
case 0x05FF : strcpy (stmsg, "WM_MMPMLAST"); break;
case 0x007a : strcpy (stmsg, "WM_CHAR"); break;
case 0x007b : strcpy (stmsg, "WM_VIOCHAR"); break;
case 0x0040 : strcpy (stmsg, "WM_FLASHWINDOW"); break;
case 0x0041 : strcpy (stmsg, "WM_FORMATFRAME"); break;
case 0x0042 : strcpy (stmsg, "WM_UPDATEFRAME"); break;
case 0x0043 : strcpy (stmsg, "WM_FOCUSCHANGE"); break;
case 0x0044 : strcpy (stmsg, "WM_SETBORDERSIZE"); break;
case 0x0045 : strcpy (stmsg, "WM_TRACKFRAME"); break;
case 0x0046 : strcpy (stmsg, "WM_MINMAXFRAME"); break;
case 0x0047 : strcpy (stmsg, "WM_SETICON"); break;
case 0x0048 : strcpy (stmsg, "WM_QUERYICON"); break;
case 0x0049 : strcpy (stmsg, "WM_SETACCELTABLE"); break;
case 0x004a : strcpy (stmsg, "WM_QUERYACCELTABLE"); break;
case 0x004b : strcpy (stmsg, "WM_TRANSLATEACCEL"); break;
case 0x004c : strcpy (stmsg, "WM_QUERYTRACKINFO"); break;
case 0x004d : strcpy (stmsg, "WM_QUERYBORDERSIZE"); break;
case 0x004e : strcpy (stmsg, "WM_NEXTMENU"); break;
case 0x004f : strcpy (stmsg, "WM_ERASEBACKGROUND"); break;
case 0x0050 : strcpy (stmsg, "WM_QUERYFRAMEINFO"); break;
case 0x0051 : strcpy (stmsg, "WM_QUERYFOCUSCHAIN"); break;
case 0x0052 : strcpy (stmsg, "WM_OWNERPOSCHANGE"); break;
case 0x0053 : strcpy (stmsg, "WM_CALCFRAMERECT"); break;
case 0x0055 : strcpy (stmsg, "WM_WINDOWPOSCHANGED"); break;
case 0x0056 : strcpy (stmsg, "WM_ADJUSTFRAMEPOS"); break;
case 0x0059 : strcpy (stmsg, "WM_QUERYFRAMECTLCOUNT"); break;
case 0x005B : strcpy (stmsg, "WM_QUERYHELPINFO"); break;
case 0x005C : strcpy (stmsg, "WM_SETHELPINFO"); break;
case 0x005D : strcpy (stmsg, "WM_ERROR"); break;
case 0x005E : strcpy (stmsg, "WM_REALIZEPALETTE"); break;
case 0x0060 : strcpy (stmsg, "WM_RENDERFMT"); break;
case 0x0061 : strcpy (stmsg, "WM_RENDERALLFMTS"); break;
case 0x0062 : strcpy (stmsg, "WM_DESTROYCLIPBOARD"); break;
case 0x0063 : strcpy (stmsg, "WM_PAINTCLIPBOARD"); break;
case 0x0064 : strcpy (stmsg, "WM_SIZECLIPBOARD"); break;
case 0x0065 : strcpy (stmsg, "WM_HSCROLLCLIPBOARD"); break;
case 0x0066 : strcpy (stmsg, "WM_VSCROLLCLIPBOARD"); break;
case 0x0067 : strcpy (stmsg, "WM_DRAWCLIPBOARD"); break;
case 0x00A0 : strcpy (stmsg, "WM_DDE_FIRST or WM_DDE_INITIATE"); break;
case 0x00A1 : strcpy (stmsg, "WM_DDE_REQUEST"); break;
case 0x00A2 : strcpy (stmsg, "WM_DDE_ACK"); break;
case 0x00A3 : strcpy (stmsg, "WM_DDE_DATA"); break;
case 0x00A4 : strcpy (stmsg, "WM_DDE_ADVISE"); break;
case 0x00A5 : strcpy (stmsg, "WM_DDE_UNADVISE"); break;
case 0x00A6 : strcpy (stmsg, "WM_DDE_POKE"); break;
case 0x00A7 : strcpy (stmsg, "WM_DDE_EXECUTE"); break;
case 0x00A8 : strcpy (stmsg, "WM_DDE_TERMINATE"); break;
case 0x00A9 : strcpy (stmsg, "WM_DDE_INITIATEACK"); break;
case 0x00AF : strcpy (stmsg, "WM_DDE_LAST"); break;
case 0x00b0 : strcpy (stmsg, "WM_QUERYCONVERTPOS or WM_DBCSFIRST"); break;
case 0x00b6 : strcpy (stmsg, "WM_DBE_SETAPPLSTAT"); break;
case 0x00bc : strcpy (stmsg, "WM_DBE_KKCPARAMS"); break;
case 0x00cf : strcpy (stmsg, "WM_DBCSLAST"); break;
case 0x0310 : strcpy (stmsg, "WM_DRAGFIRST"); break;
case 0x032f : strcpy (stmsg, "WM_DRAGLAST"); break;
default : sprintf (stmsg, "0x%04x", msg); break;
}
if (LastMsg == msg) fprintf (MessFile, ".");
else fprintf (MessFile, "\n%5d %s", MessCount, stmsg);
LastMsg = msg;
}
}