Annotation of os232sdk/toolkt20/c/samples/spy/options.c, revision 1.1.1.1

1.1       root        1: /****************************** Module Header ******************************\
                      2: * Module Name:  options.c - Spy code for several options type dialogs.
                      3: *
                      4: * Created: Microsoft, IBM Corporation 1990
                      5: *
                      6: \***************************************************************************/
                      7: 
                      8: #define INCL_WIN
                      9: #define INCL_WINSYS
                     10: #define INCL_DOSPROCESS
                     11: #include <os2.h>
                     12: #include <stdio.h>
                     13: #include <string.h>
                     14: #include "spy.h"
                     15: #include "spyhk32.h"
                     16: #include <time.h>
                     17: #include <stdlib.h>
                     18: 
                     19: 
                     20: 
                     21: 
                     22: /**************************** Public Function ******************************\
                     23: * MRESULT EXPENTRY SpyOutputsDlgProc (hwnd, msg, mp1, mp2)
                     24: *
                     25: * Effects: Output Options dialog procedure
                     26: *
                     27: *
                     28: * Return value:
                     29: \***************************************************************************/
                     30: MRESULT EXPENTRY SpyOutputsDlgProc(hwnd, msg, mp1, mp2)
                     31: HWND            hwnd;
                     32: USHORT          msg;
                     33: MPARAM          mp1;
                     34: MPARAM          mp2;
                     35: {
                     36:     ULONG       ulAction;
                     37: 
                     38:     switch (msg) {
                     39: 
                     40:     case WM_INITDLG:
                     41:         /*
                     42:          * Now initialize the output options in the dialog
                     43:          */
                     44:         WinSendDlgItemMsg(hwnd, DID_WINDOW, BM_SETCHECK,
                     45:             (MPARAM)spyopt.fWindow, 0L);
                     46:         WinSendDlgItemMsg(hwnd, DID_DEBUG, BM_SETCHECK,
                     47:             (MPARAM)spyopt.fDebugOutput, 0L);
                     48:         WinSendDlgItemMsg(hwnd, DID_FILE, BM_SETCHECK,
                     49:             (MPARAM)spyopt.fFile, 0L);
                     50: 
                     51:         WinSetDlgItemShort(hwnd, DID_WINDOWLINES, spyopt.cWindowLines, FALSE);
                     52:         WinSetDlgItemText(hwnd, DID_FILENAME, spystr.szFileName);
                     53: 
                     54: 
                     55:         break;
                     56: 
                     57:     case WM_COMMAND:
                     58:         switch (SHORT1FROMMP(mp1)) {
                     59:         case DID_OK:
                     60: 
                     61:             /*
                     62:              * Now retrieve the output options from the
                     63:              * dialog
                     64:              */
                     65:             spyopt.fWindow = (BOOL)WinSendDlgItemMsg(hwnd,
                     66:                 DID_WINDOW, BM_QUERYCHECK, 0L, 0L);
                     67:             spyopt.fDebugOutput = (BOOL)WinSendDlgItemMsg(hwnd,
                     68:                 DID_DEBUG, BM_QUERYCHECK, 0L, 0L);
                     69:             spyopt.fFile = (BOOL)WinSendDlgItemMsg(hwnd,
                     70:                 DID_FILE, BM_QUERYCHECK, 0L, 0L);
                     71: 
                     72:             WinQueryDlgItemShort(hwnd, DID_WINDOWLINES, &spyopt.cWindowLines, FALSE);
                     73:             WinQueryDlgItemText(hwnd, DID_FILENAME,
                     74:                 sizeof(spystr.szFileName), spystr.szFileName);
                     75: 
                     76:             /*
                     77:              * Now take care of file operations
                     78:              * If a file is already active, we will continue to use it, and
                     79:              * ignore the case where the user may have changed file names
                     80:              * Will truncate any file.
                     81:              */
                     82:             if (spyopt.fFile) {
                     83:                  if (spyopt.hfileSpy == NULL)
                     84:                     if (DosOpen((PSZ)spystr.szFileName, &spyopt.hfileSpy,
                     85:                             &ulAction, 0L, 0,
                     86:                             0x0012, 0x00C1, 0L) != 0)
                     87:                         spyopt.hfileSpy = NULL; /* Failed on open */
                     88:             } else {
                     89:                 if (spyopt.hfileSpy != NULL) {
                     90:                     /* file open, not outputing, close it now */
                     91:                     DosClose (spyopt.hfileSpy);
                     92:                     spyopt.hfileSpy = NULL;
                     93:                 }
                     94:             }
                     95:             /* Fall through to DID_CANCEL */
                     96:         case DID_CANCEL:
                     97:             /* Now dismiss the dialog */
                     98:             WinDismissDlg(hwnd, SHORT1FROMMP(mp1));
                     99:             break;
                    100:         }
                    101:         break;
                    102: 
                    103:     default:
                    104:         return(WinDefDlgProc(hwnd, msg, mp1, mp2));
                    105:         break;
                    106:     }
                    107:     return 0L;
                    108: }
                    109: 
                    110: 
                    111: 
                    112: 
                    113: /**************************** Public Function ******************************\
                    114: * MRESULT EXPENTRY SpySaveListDlgProc(hwnd, msg, mp1, mp2)
                    115: *
                    116: * Effects: The Spy Windows Dialog procedure
                    117: *
                    118: * Return value: none
                    119: \***************************************************************************/
                    120: MRESULT EXPENTRY SpySaveListDlgProc(hwnd, msg, mp1, mp2)
                    121: HWND hwnd;
                    122: USHORT msg;
                    123: MPARAM mp1;
                    124: MPARAM mp2;
                    125: {
                    126:     HFILE   hfileOut;
                    127:     char    szTemp[100];
                    128:     char    szTime[10];
                    129:     char    szDate[10];
                    130:     SHORT   cItems;
                    131:     SHORT   iItem;
                    132:     ULONG   cch;
                    133:     ULONG   cchWritten;
                    134:     ULONG   ulAction;
                    135:     ULONG   lTemp;
                    136: 
                    137:     switch (msg) {
                    138: 
                    139:     case WM_INITDLG:
                    140:         WinSendDlgItemMsg(hwnd, DID_APPEND, BM_SETCHECK,
                    141:             (MPARAM)spyopt.fAppend, 0L);
                    142:         /* Initialize the dialog items */
                    143:         WinSetDlgItemText(hwnd, DID_FILENAME, spystr.szSaveFileName);
                    144:         break;
                    145: 
                    146:     case WM_COMMAND:
                    147:         switch (SHORT1FROMMP(mp1)) {
                    148:         case DID_OK:
                    149:             /*
                    150:              * Get the file name, and try to open the file,
                    151:              * Then loop through and dump the listbox contents to the
                    152:              * file.
                    153:              */
                    154:             spyopt.fAppend = (BOOL)WinSendDlgItemMsg(hwnd,
                    155:                 DID_APPEND, BM_QUERYCHECK, 0L, 0L);
                    156: 
                    157:             WinQueryDlgItemText(hwnd, DID_FILENAME,
                    158:                 sizeof(spystr.szSaveFileName), spystr.szSaveFileName);
                    159: 
                    160:             if (DosOpen((PSZ)spystr.szSaveFileName, &hfileOut,
                    161:                     &ulAction, 0L, 0,
                    162:                     spyopt.fAppend? 0x0011 : 0x0012, 0x00C1, 0L) == 0) {
                    163: 
                    164:                 /* If append, get to the end of the file */
                    165:                 if (spyopt.fAppend)
                    166:                     DosChgFilePtr(hfileOut, 0L, 2, (PULONG)&lTemp);
                    167: 
                    168:                 /* Get count of items */
                    169:                 cItems = (SHORT)WinSendMsg(hwndSpyList, LM_QUERYITEMCOUNT,
                    170:                             0L, 0L);
                    171: 
                    172:                 /* Write out a title block to the file */
                    173:                 _strdate(szDate);
                    174:                 _strtime(szTime);
                    175:                 DosWrite(hfileOut,
                    176:                         (PSZ)"***************************************\r\n",
                    177:                                 41L, &cchWritten);
                    178:                 cch = sprintf(szTemp, "* Spy: %-10s %-10s          *\r\n",
                    179:                     szDate, szTime);
                    180:                 DosWrite(hfileOut, (PSZ)szTemp, cch, &cchWritten);
                    181: 
                    182:                 DosWrite(hfileOut,
                    183:                         (PSZ)"***************************************\r\n",
                    184:                                 41L, &cchWritten);
                    185: 
                    186: 
                    187:                         /* Now output the list to the file */
                    188:                 for (iItem = 0; iItem < cItems; iItem++) {
                    189:                     cch = (SHORT)WinSendMsg(hwndSpyList, LM_QUERYITEMTEXT,
                    190:                             MPFROM2SHORT(iItem, sizeof(szTemp)),
                    191:                             (MPARAM)(PSZ)szTemp);
                    192:                     /* Add Newline at end of string */
                    193:                     szTemp[cch++] = '\r';
                    194:                     szTemp[cch++] = '\n';
                    195:                     szTemp[cch] = '\0';
                    196:                     DosWrite(hfileOut, (PSZ)szTemp, cch,
                    197:                             &cchWritten);
                    198:                 }
                    199:                 DosClose(hfileOut);
                    200:             }
                    201: 
                    202:         case DID_CANCEL:
                    203:             /* Now dismiss the dialog */
                    204:             WinDismissDlg(hwnd, SHORT1FROMMP(mp1));
                    205:             break;
                    206:         break;
                    207:     }
                    208: 
                    209:     default:
                    210:         return(WinDefDlgProc(hwnd, msg, mp1, mp2));
                    211:     }
                    212:     return 0L;
                    213: }
                    214: 
                    215: 
                    216: 
                    217: 
                    218: /**************************** Public Function *****************************\
                    219: * AboutWndProc(HWND hwnd, USHORT message, MPARAM mp1, MPARAM mp2)
                    220: *
                    221: * Effects: About Spy Dialog procedure
                    222: *
                    223: *
                    224: * Return value:
                    225: \***************************************************************************/
                    226: MRESULT EXPENTRY AboutWndProc(hwnd, message, mp1, mp2)
                    227: HWND    hwnd;
                    228: USHORT  message;
                    229: MPARAM   mp1;
                    230: MPARAM   mp2;
                    231: {
                    232:     HPOINTER    hptrO;
                    233:     HPOINTER    hptrN;
                    234:     extern BOOL fV11;
                    235: 
                    236:     switch (message) {
                    237:         case WM_COMMAND:
                    238:             WinDismissDlg(hwnd, TRUE);
                    239:             break;
                    240: 
                    241:         default:
                    242:             return(WinDefDlgProc(hwnd, message, mp1, mp2));
                    243:             break;
                    244:     }
                    245:     return 0L;
                    246: 
                    247: } /* end aboutwndproc */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.