home *** CD-ROM | disk | FTP | other *** search
- /*static char *SCCSID = "@(#)dlapi_dg.c 6.13 92/03/18";*/
- /*==============================================================*\
- * DLL_DLG.C - window procedures for the dialog boxes as well *
- * as utility procedures used by them *
- * (C) Copyright IBM Corporation 1992. *
- *--------------------------------------------------------------*
- * *
- * This module contains the Dialog Procedures for the user *
- * defined dialogs as well as any support code they need *
- * *
- *--------------------------------------------------------------*
- * *
- * This source file contains the following functions: *
- * *
- * GetPatternDlgProc(hwnd, msg, mp1, mp2) *
- * DispFileDlgProc (hwnd, msg, mp1, mp2) *
- * DisplayFile (hwnd, rect, pFile) *
- * OpenDlgProc (hwnd, msg, mp1, mp2) *
- * DisplayDlgProc (hwnd, msg, mp1, mp2) *
- * MathDlgProc (hwnd, msg, mp1, mp2) *
- * ResultDlgProc (hwnd, msg, mp1, mp2) *
- * *
- \*==============================================================*/
-
- /*--------------------------------------------------------------*\
- * Include files, macros, defined constants, and externs *
- \*--------------------------------------------------------------*/
- #include "dllapi.h"
-
- /****************************************************************\
- * Dialog procedure for the Path/Pattern dialog *
- *--------------------------------------------------------------*
- * *
- * Name: GetPatternDlgProc(hwnd, msg, mp1, mp2) *
- * *
- * Purpose: Processes all messages sent to the Pattern dialog *
- * *
- * Usage: Called for each message sent to the dialog box. *
- * *
- * Method: a switch statement branches to the routines to be *
- * performed for each message processed. Any messages *
- * not specifically processed are passed to the *
- * default window procedure WinDefDlgProc() *
- * *
- * Returns: Dependent upon message sent *
- * *
- \****************************************************************/
- MRESULT EXPENTRY GetPatternDlgProc(HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
- {
- static POBJSTRUCT pObj=NULL;
- static CHAR szBuffer[CCHMAXPATH];
- ULONG ulDriveMap, ulDriveNum=0L, ulDirLen = CCHMAXPATH;
- SHORT sIndex;
- MRESULT sRC;
-
- switch (msg)
- {
- case WM_INITDLG:
-
- pObj = PVOIDFROMMP(mp2);
- FixSysMenu(hwnd);
- /* Get current drive */
- DosQueryCurrentDisk(&ulDriveNum, &ulDriveMap);
- memset(szBuffer, 0, sizeof(szBuffer));
- szBuffer[0] = (CHAR)(ulDriveNum + '@');
- strcpy(pObj->szCurDriver, szBuffer);
- *(pObj->szCurDriver+1) = ':';
- /* Get current dir & attach disk num. */
- DosQueryCurrentDir(0L, pObj->szCurPath, &ulDirLen);
- if(*(pObj->szCurPath+strlen(pObj->szCurPath)-1) != '\\')
- strcat(pObj->szCurPath, "\\"); /* Add '\' at the tail */
-
- memset(szBuffer, 0, sizeof(szBuffer));
- strcpy(szBuffer, pObj->szCurDriver);
- if(*(pObj->szCurPath) != '\\')
- strcat(szBuffer,"\\");
- strcat(szBuffer, pObj->szCurPath);/*Default path is current diver*/
- WinSendDlgItemMsg(hwnd, IDD_PATH, EM_SETTEXTLIMIT,
- MPFROM2SHORT(CCHMAXPATH, 0), NULL);
- WinSetDlgItemText(hwnd, IDD_PATH, szBuffer);
-
- if(*(pObj->szCurPattern) == '\000')
- strcpy(pObj->szCurPattern, "*.*"); /* Inition Pattern */
- WinSetDlgItemText(hwnd, IDD_PATTERN, pObj->szCurPattern);
-
- return((MRESULT)FALSE);
- /* Let the focus go to where the system puts it */
- case WM_COMMAND:
- switch (SHORT1FROMMP(mp1)) {
- case DID_OK:
- /* Get new pattern */
- memset(szBuffer,0,sizeof(szBuffer));
- WinQueryDlgItemText(hwnd, IDD_PATTERN, MAX_EDIT_BUFF,
- szBuffer);
- for (sIndex=0; szBuffer[sIndex]!='\000' &&
- sIndex<MAX_EDIT_BUFF; sIndex++)
- {
- if (szBuffer[sIndex]>='a' && szBuffer[sIndex]<='z')
- {
- szBuffer[sIndex] = szBuffer[sIndex] - (CHAR)' ';
- } /* endif */
- } /* endfor */
- memset(pObj->szNewPattern,0,sizeof(pObj->szNewPattern));
- if (*szBuffer == '\000') /* No input new path */
- strcpy(pObj->szNewPattern,pObj->szCurPattern);
- else /* Store user pattern */
- strcpy(pObj->szNewPattern,szBuffer);
-
- /* Get new path */
- memset(szBuffer,0,sizeof(szBuffer));
- WinQueryDlgItemText(hwnd, IDD_PATH, CCHMAXPATH,
- szBuffer);
- for (sIndex=0; szBuffer[sIndex]!='\000' &&
- sIndex<CCHMAXPATH; sIndex++)
- {
- if (szBuffer[sIndex]>='a' && szBuffer[sIndex]<='z')
- {
- szBuffer[sIndex] = szBuffer[sIndex] - (CHAR)' ';
- } /* endif */
- } /* endfor */
-
- memset(pObj->szNewDriver,0,sizeof(pObj->szNewDriver));
- memset(pObj->szNewPath,0,sizeof(pObj->szNewPath));
-
- if(*(szBuffer+strlen(szBuffer)-1) != '\\')
- strcat(szBuffer, "\\"); /* Add '\' at the tail */
- if (*szBuffer == '\000') /* No input new path */
- {
- strcpy(pObj->szNewDriver,pObj->szCurDriver);
- strcpy(pObj->szNewPath,pObj->szCurPath);
- }
- else if(*(szBuffer+1) == ':') /* they specified a drive */
- {
- *(pObj->szNewDriver) = *szBuffer;/*Store disk number */
- *((pObj->szNewDriver)+1) = *(szBuffer+1);
- if(*(szBuffer+2) != '\\') /* If Path= c: */
- {
- *(pObj->szNewPath) = '\\'; /* Set path= \ */
- }
- /*Store user path*/
- strcat(pObj->szNewPath,(szBuffer+2));
- }
- else
- {
- strcpy(pObj->szNewDriver,pObj->szCurDriver);
- strcpy(pObj->szNewPath,szBuffer); /* Store user path */
- }
- WinDismissDlg(hwnd, TRUE);
- return((MRESULT)TRUE);
-
- case DID_CANCEL:
- WinDismissDlg(hwnd, FALSE);
- return((MRESULT)TRUE);
- }
- break;
-
- case WM_CLOSE:
- WinDismissDlg(hwnd, FALSE);
- return((MRESULT)TRUE);
-
- default:
- sRC = WinDefDlgProc(hwnd, msg, mp1, mp2);
- return sRC;
- }
- return((MRESULT)TRUE);
- }
-
- /****************************************************************\
- * Dialog procedure for the Display file dialog *
- *--------------------------------------------------------------*
- * *
- * Name: DispFileDlgProc(hwnd, msg, mp1, mp2) *
- * *
- * Purpose: Processes all messages sent to the display dialog *
- * *
- * Usage: Called for each message sent to the dialog box. *
- * *
- * Method: a switch statement branches to the routines to be *
- * performed for each message processed. Any messages *
- * not specifically processed are passed to the *
- * default window procedure WinDefDlgProc() *
- * *
- * Returns: Dependent upon message sent *
- * *
- \****************************************************************/
- MRESULT EXPENTRY DispFileDlgProc(HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
- {
- SHORT Ret=-1;
- PVOID pvAddress=0;
- PFILELIST pTail=NULL, pNext=NULL; /* The last file of list */
- MRESULT sRC;
-
- switch (msg)
- {
- case WM_INITDLG:
- FixSysMenu(hwnd);
- pBackup=NULL;
- /* Default click the buttom of backup */
- WinSendDlgItemMsg(hwnd, IDD_ACCESSBACKUP,
- BM_CLICK, (MPARAM)0L, (MPARAM)0L);
- return((MRESULT)FALSE);
- /* Let the focus go to where the system puts it */
- case WM_COMMAND:
- switch (SHORT1FROMMP(mp1)) {
- case DID_OK:
- pNext = pFindFile;
- DosSetMem(pNext, sizeof(PFILELIST),
- PAG_READ|PAG_WRITE|PAG_EXECUTE);
- while (pNext != NULL)
- {
- if(!DosAllocMem(&pvAddress,sizeof(PFILELIST),fALLOC))
- { /* Store file list to backup structure */
- if (pBackup == NULL)
- { /* Back up 1'st file */
- pBackup = (PFILELIST)pvAddress;
- strcpy(pBackup->szFileName,pNext->szFileName);
- pBackup->pNextFile = NULL;
- pTail = pBackup;
- }
- else
- {
- pTail->pNextFile = (PFILELIST)pvAddress;
- pTail = pTail->pNextFile;
- strcpy(pTail->szFileName, pNext->szFileName);
- pTail->pNextFile = NULL;
- }
- pNext = pNext->pNextFile;
- }
- } /* while loop */
- pNext = pFindFile; /* Protect the memory of file list */
- if(pNext != NULL)
- {
- DosSetMem(pNext,sizeof(PFILELIST),
- PAG_GUARD|PAG_READ|PAG_WRITE);
- }
- Ret = (SHORT)WinSendDlgItemMsg(hwnd, (ULONG)IDD_ACCESSBACKUP,
- BM_QUERYCHECKINDEX, (MPARAM)0L, (MPARAM)0L);
- if(Ret == 0)
- {
- pFlList = pBackup;
- }
- else
- {
- pFlList = pFindFile;
- }
- WinDismissDlg(hwnd, TRUE);
- return((MRESULT)TRUE);
-
- case DID_CANCEL:
- WinDismissDlg(hwnd, FALSE);
- return((MRESULT)TRUE);
- }
- break;
-
- case WM_CLOSE:
- WinDismissDlg(hwnd, FALSE);
- return((MRESULT)TRUE);
-
- default:
- sRC = WinDefDlgProc(hwnd, msg, mp1, mp2);
- return sRC;
- }
- return((MRESULT)TRUE);
- }
-
- /****************************************************************\
- * *
- * Name: DisplayFile(hwnd, rect, pFile) *
- * *
- * Purpose: This routine searches and display files which are *
- * matching the pattern. *
- * *
- * Usage: After files searching, this module will create a *
- * child window to display the matched files. *
- * *
- * Returns: VOID *
- * *
- \****************************************************************/
- VOID DisplayFile (HWND hwnd, RECTL rect, PPFILELIST pFile)
- {
- CHAR szBuf[CCHMAXPATH];
- APIRET sCount=0;
- PFILELIST pTail=NULL; /* The last file of list */
-
- if(hwndChild)
- WinDestroyWindow(hwndChild);
- hwndChild = WinCreateWindow (hwnd,
- WC_LISTBOX,
- "File List...",
- WS_VISIBLE | FCF_MINMAX,
- rect.xLeft,
- rect.yBottom,
- rect.xRight-rect.xLeft,
- rect.yTop-rect.yBottom-5,
- hwnd,
- HWND_TOP,
- ID_CHILDWIN,
- NULL,
- (PVOID)NULL);
- pTail = *pFile;
- if(*pFile != NULL)
- {
- strcpy(szBuf, "The found file list ....");
- WinSendDlgItemMsg(hwnd, ID_CHILDWIN, LM_INSERTITEM,
- MPFROM2SHORT(LIT_END, 0),
- MPFROMP(szBuf));
- }
- while (pTail != NULL)
- {
- strcpy(szBuf, pTail->szFileName);
- WinSendDlgItemMsg(hwnd, ID_CHILDWIN, LM_INSERTITEM,
- MPFROM2SHORT(LIT_END, 0),
- MPFROMP(pTail->szFileName));
- sCount++;
- pTail = pTail->pNextFile;
- } /* endwhile */
- memset(szBuf, 0, sizeof(szBuf));
- sprintf(szBuf, "There are %d files found.", sCount);
- WinSendDlgItemMsg(hwnd, ID_CHILDWIN, LM_INSERTITEM,
- MPFROM2SHORT(LIT_END, 0),
- MPFROMP(szBuf));
- while(*pFile != NULL) /* Free the File list structure */
- {
- pTail = *pFile;
- *pFile = (*pFile)->pNextFile;
- DosFreeMem(pTail);
- }
- return;
- }
-
- /****************************************************************\
- * Dialog procedure for the Open file dialog *
- *--------------------------------------------------------------*
- * *
- * Name: OpenDlgProc(hwnd, msg, mp1, mp2) *
- * *
- * Purpose: Processes all messages sent to the Open file dialog*
- * *
- * Usage: Called for each message sent to the dialog box. *
- * *
- * Method: a switch statement branches to the routines to be *
- * performed for each message processed. Any messages *
- * not specifically processed are passed to the *
- * default window procedure WinDefDlgProc() *
- * *
- * Returns: Dependent upon message sent *
- * *
- \****************************************************************/
- MRESULT EXPENTRY OpenDlgProc(HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
- {
- static PFILEINFO pFile;
- static CHAR szBuffer[CCHMAXPATH];
- ULONG ulDriveMap, ulDriveNum=0L, ulDirLen = CCHMAXPATH;
- SHORT sIndex=0;
- MRESULT sRC;
-
- switch (msg)
- {
- case WM_INITDLG:
-
- pFile = PVOIDFROMMP(mp2);
- FixSysMenu(hwnd);
- memset(pFile, 0, sizeof(pFile));
- /* Get current drive */
- DosQueryCurrentDisk(&ulDriveNum, &ulDriveMap);
- *(pFile->szFileName) = (CHAR)(ulDriveNum + '@');
- *(pFile->szFileName+1) = ':';
- /* Get current dir & attach disk num. */
- memset(szBuffer, 0, sizeof(szBuffer));
- DosQueryCurrentDir(0L, szBuffer, &ulDirLen);
-
- if(*(szBuffer+strlen(szBuffer)-1) != '\\')
- strcat(szBuffer, "\\"); /* Add '\' at the tail */
- if(*(szBuffer) != '\\') /* Add '\' at begining of path */
- strcat(pFile->szFileName,"\\");
-
- strcat(pFile->szFileName,szBuffer); /* Display current path */
- WinSendDlgItemMsg(hwnd, IDD_PATH, EM_SETTEXTLIMIT,
- MPFROM2SHORT(CCHMAXPATH, 0), NULL);
- WinSetDlgItemText(hwnd, IDD_PATH, pFile->szFileName );
-
- return((MRESULT)FALSE);
- /* Let the focus go to where the system puts it */
- case WM_COMMAND:
- switch (SHORT1FROMMP(mp1)) {
- case DID_OK:
- memset(szBuffer,0,sizeof(szBuffer));
- WinQueryDlgItemText(hwnd, IDD_PATH, CCHMAXPATH,
- szBuffer);
- memset(pFile->szFileName,0,sizeof(pFile->szFileName));
- for (sIndex=0; szBuffer[sIndex]!='\000' &&
- sIndex<CCHMAXPATH; sIndex++)
- {
- if (szBuffer[sIndex]>='a' && szBuffer[sIndex]<='z')
- {
- szBuffer[sIndex] = szBuffer[sIndex] - (CHAR)' ';
- } /* Changed lowercase to uppercase */
- }
- strcpy(pFile->szFileName, szBuffer);
- WinDismissDlg(hwnd, TRUE);
- break;
-
- case DID_CANCEL:
- WinDismissDlg(hwnd, FALSE);
- break;
- }
- break;
-
- case WM_CLOSE:
- WinDismissDlg(hwnd, FALSE);
- return((MRESULT)TRUE);
-
- default:
- sRC = WinDefDlgProc(hwnd, msg, mp1, mp2);
- return sRC;
- }
- return (MRESULT)RETURN_SUCCESS;
- }
-
- /****************************************************************\
- * Dialog procedure for the Display text dialog *
- *--------------------------------------------------------------*
- * *
- * Name: DisplayDlgProc(hwnd, msg, mp1, mp2) *
- * *
- * Purpose: Processes all messages sent to the Display text *
- * dialog window. *
- * *
- * Usage: Called for each message sent to the dialog box. *
- * *
- * Method: a switch statement branches to the routines to be *
- * performed for each message processed. Any messages *
- * not specifically processed are passed to the *
- * default window procedure WinDefDlgProc() *
- * *
- * Returns: Dependent upon message sent *
- * *
- \****************************************************************/
- MRESULT EXPENTRY DisplayDlgProc(HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
- {
- CHAR szBuf[CCHMAXPATH];
- static PFILEINFO pFile;
- MRESULT sRC;
-
- switch (msg)
- {
- case WM_INITDLG:
-
- pFile = PVOIDFROMMP(mp2);
- FixSysMenu(hwnd);
- strcpy(szBuf,"File: "); /* Display file path & name */
- strcat(szBuf,pFile->szFileName);
- WinSendDlgItemMsg(hwnd, IDD_PATH, EM_SETTEXTLIMIT,
- MPFROM2SHORT(CCHMAXPATH, 0), NULL);
- WinSetDlgItemText(hwnd, IDD_PATH, szBuf);
- /* Display file content */
- WinSendDlgItemMsg(hwnd, IDD_TEXT, EM_SETTEXTLIMIT,
- MPFROM2SHORT(BUFF_SIZE, 0), NULL);
- WinSetDlgItemText(hwnd, IDD_TEXT, pFile->szBuffer);
-
- return((MRESULT)FALSE);
- /* Let the focus go to where the system puts it */
- case WM_COMMAND:
- switch (SHORT1FROMMP(mp1)) {
- case DID_OK:
- WinDismissDlg(hwnd, TRUE);
- break;
- }
- break;
-
- default:
- sRC = WinDefDlgProc(hwnd, msg, mp1, mp2);
- return sRC;
- }
- return (MRESULT)RETURN_SUCCESS;
- }
-
- /****************************************************************\
- * Dialog procedure for the Calculator Entry dialog *
- *--------------------------------------------------------------*
- * *
- * Name: MathDlgProc(hwnd, msg, mp1, mp2) *
- * *
- * Purpose: Processes all messages sent to the Calculator input*
- * dialog window. *
- * *
- * Usage: Called for each message sent to the dialog box. *
- * *
- * Method: a switch statement branches to the routines to be *
- * performed for each message processed. Any messages *
- * not specifically processed are passed to the *
- * default window procedure WinDefDlgProc() *
- * *
- * Returns: Dependent upon message sent *
- * *
- \****************************************************************/
- MRESULT EXPENTRY MathDlgProc(HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
- {
- static PMATHELEMENT pMath;
- static CHAR szBuffer[OP_SIZE];
- SHORT sIndex;
- MRESULT sRC;
-
- switch (msg)
- {
- case WM_INITDLG:
- pMath = PVOIDFROMMP(mp2);
- FixSysMenu(hwnd);
- pMath->fOperand1 = 0;
- pMath->fOperand2 = 0;
- *pMath->pszOperation = '\000';
- memset(pMath->szResult, 0, sizeof(pMath->szResult) );
- WinSendDlgItemMsg(hwnd, IDD_OPERAND1, EM_SETTEXTLIMIT,
- MPFROM2SHORT(OP_SIZE, 0), NULL);
- WinSendDlgItemMsg(hwnd, IDD_OPERAND2, EM_SETTEXTLIMIT,
- MPFROM2SHORT(OP_SIZE, 0), NULL);
- WinSendDlgItemMsg(hwnd, IDD_OPERATION, EM_SETTEXTLIMIT,
- MPFROM2SHORT(1L, 0), NULL);
- return((MRESULT)FALSE);
- /* Let the focus go to where the system puts it */
- case WM_COMMAND:
- switch (SHORT1FROMMP(mp1))
- {
- case DID_OK:
- memset(szBuffer,0,sizeof(szBuffer));
- WinQueryDlgItemText(hwnd, IDD_OPERAND1, OP_SIZE+1,
- szBuffer);
- for (sIndex=0; sIndex<OP_SIZE && szBuffer[sIndex]!='\000';
- sIndex++)
- {
- if( (szBuffer[sIndex]<'0' || szBuffer[sIndex]>'9')
- && (szBuffer[sIndex] != '.') )
- {
- MessageBox(hwnd, IDMSG_ERROROPERAND, "Error !",
- MB_OK | MB_ERROR | MB_MOVEABLE, TRUE);
- return((MRESULT)FALSE); /* Illegal input */
- }
- } /* endfor */
- pMath->fOperand1 = atol(szBuffer);
-
- memset(szBuffer,0,sizeof(szBuffer));
- WinQueryDlgItemText(hwnd, IDD_OPERAND2, OP_SIZE+1,
- szBuffer);
- for (sIndex=0; sIndex<OP_SIZE && szBuffer[sIndex]!='\000';
- sIndex++)
- {
- if( (szBuffer[sIndex]<'0' || szBuffer[sIndex]>'9')
- && (szBuffer[sIndex] != '.') )
- {
- MessageBox(hwnd, IDMSG_ERROROPERAND, "Error !",
- MB_OK | MB_ERROR | MB_MOVEABLE, TRUE);
-
- *pMath->pszOperation = '\000';
- return((MRESULT)FALSE); /* Illegal input */
- }
- } /* endfor */
- pMath->fOperand2 = atol(szBuffer);
-
- memset(szBuffer,0,sizeof(szBuffer));
- WinQueryDlgItemText(hwnd, IDD_OPERATION, OP_SIZE,
- pMath->pszOperation);
- if(*pMath->pszOperation!='+' && *pMath->pszOperation!='-' &&
- *pMath->pszOperation!='*' && *pMath->pszOperation!='/')
- {
- MessageBox(hwnd, IDMSG_ERROROPERAND, "Error !",
- MB_OK | MB_ERROR | MB_MOVEABLE, TRUE);
-
- *pMath->pszOperation = '\000';
- return((MRESULT)FALSE); /* Illegal input */
- }
- memset(pMath->szResult, 0, sizeof(pMath->szResult) );
- WinDismissDlg(hwnd, TRUE);
- break;
-
- case DID_CANCEL:
- WinDismissDlg(hwnd, FALSE);
- break;
- }
- break;
-
- case WM_CLOSE:
- WinDismissDlg(hwnd, FALSE);
- return((MRESULT)TRUE);
-
- default:
- sRC = WinDefDlgProc(hwnd, msg, mp1, mp2);
- return sRC;
- }
- return (MRESULT)RETURN_SUCCESS;
- }
-
- /****************************************************************\
- * *
- * Name: ResultDlgProc(hwnd, msg, mp1, mp2) *
- * *
- * Purpose: Processes all messages sent to the result display *
- * dialog window. *
- * *
- * Usage: Called for each message sent to the dialog box. *
- * *
- * Method: a switch statement branches to the routines to be *
- * performed for each message processed. Any messages *
- * not specifically processed are passed to the *
- * default window procedure WinDefDlgProc() *
- * *
- * Returns: Dependent upon message sent *
- * *
- \****************************************************************/
- MRESULT EXPENTRY ResultDlgProc(HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
- {
- static PMATHELEMENT pResult;
- CHAR szBuf[BUFF_SIZE];
- CHAR szTemp[BUFF_SIZE];
- SHORT i;
- MRESULT sRC;
-
- switch (msg)
- {
- case WM_INITDLG:
-
- pResult = PVOIDFROMMP(mp2);
- FixSysMenu(hwnd);
- memset(szBuf, 0, sizeof(szBuf));
- sprintf(szBuf,"%ld", pResult->fOperand1); /* szBuf= 'OP1' */
- memset(szTemp, 0, sizeof(szTemp));
- sprintf(szTemp,"%ld", pResult->fOperand2);
- strcat(szBuf," "); /* szBuf= 'OP1 ' */
- strcat(szBuf,pResult->pszOperation); /* szBuf= 'OP1 +' */
- strcat(szBuf," "); /* szBuf= 'OP1 + ' */
- strcat(szBuf, szTemp); /* szBuf= 'OP1 + OP2' */
- strcat(szBuf, " "); /* szBuf= 'OP1 + OP2 ' */
- strcat(szBuf, "="); /* szBuf= 'OP1 + OP2 =' */
- /* Display the formula */
- WinSetDlgItemText(hwnd, IDD_TEXT, szBuf);
- for (i=BUFF_SIZE-1; i && pResult->szResult[i]!='.'; i--)
- {
- if (pResult->szResult[i] == '0')
- pResult->szResult[i] = '\000'; /* Erase tail's zero */
- } /* Display the result */
- WinSetDlgItemText(hwnd, IDD_VALUE, pResult->szResult);
-
- return((MRESULT)FALSE);
- /* Let the focus go to where the system puts it */
- case WM_COMMAND:
- switch (SHORT1FROMMP(mp1))
- {
- case DID_OK:
- WinDismissDlg(hwnd, TRUE);
- break;
- }
- break;
-
- default:
- sRC = WinDefDlgProc(hwnd, msg, mp1, mp2);
- return sRC;
- }
- return (MRESULT)RETURN_SUCCESS;
- }
-