home *** CD-ROM | disk | FTP | other *** search
/ kermit.columbia.edu / kermit.columbia.edu.tar / kermit.columbia.edu / win100 / winkpn.c < prev    next >
C/C++ Source or Header  |  1991-10-19  |  3KB  |  103 lines

  1. /*
  2.  * Windows Kermit
  3.  * 
  4.  * Written by William S. Hall
  5.  *          3665 Benton Street, #66
  6.  *          Santa Clara, CA 95051
  7.  *
  8.  * Kermit specific initialization
  9.  */
  10.  
  11. #define NOCOMM
  12. #define NOKANJI
  13. #define NOATOM
  14. #define NOMINMAX
  15. #include <windows.h>
  16. #include <stdlib.h>
  17.  
  18. #include "winkpr.h"
  19. #include "winkpf.h"
  20. #define INITKEYSIZE    1024
  21.  
  22. /* read win.ini for protocol settings */
  23. BOOL krmInit(HWND hWnd, HANDLE hInstance)
  24. {
  25.  
  26.     char szAppStr[40];
  27.     char szKeyStr[80];
  28.     char szMessageStr[80];
  29.     char szDefStr[80];
  30.     char *szInitKeyStr;
  31.     HANDLE hInitKeyStr;
  32.     int Initlen;
  33.     register BOOL WinIniModified = FALSE;
  34.     register int i;
  35.     int reply;
  36.     int *ptr;
  37.  
  38.     Kermit.maxsenddatalen = 80;
  39.     Kermit.chksumtype = 1;
  40.     Kermit.mstimeout = 5000;
  41.     Kermit.maxtry = KRM_DEFMAXTRY;
  42.     Kermit.timer = TRUE;
  43.     Kermit.filewarning = TRUE;
  44.     Kermit.filediscard = TRUE;
  45.     Kermit.bell = TRUE;
  46.  
  47.     sndpkt.mark = rcvpkt.mark = KRM_DEFMARK;
  48.     
  49.     remote.maxpacketsize = KRM_DEFPACKETSIZE;
  50.     remote.timeout = KRM_DEFTIMEOUT;
  51.     remote.padcount = KRM_DEFPADCOUNT;
  52.     remote.padchar = KRM_DEFPADCHAR;
  53.     remote.eol = KRM_DEFEOL;
  54.     remote.quote = KRM_DEFQUOTE;
  55.     remote.binquote = KRM_DEFBINQUOTE;
  56.     remote.chksumtype = KRM_DEFCHKSUM;
  57.     remote.rptprefix = KRM_DEFRPTCHAR;
  58.  
  59.     local.maxpacketsize = KRM_MAXPACKETSIZE;
  60.     local.timeout = 10;
  61.     local.padcount = KRM_DEFPADCOUNT;
  62.     local.padchar = KRM_DEFPADCHAR;
  63.     local.eol = KRM_DEFEOL;
  64.     local.quote = KRM_DEFQUOTE;
  65.     local.binquote = 'Y';
  66.     local.chksumtype = KRM_DEFCHKSUM;
  67.     local.rptprefix = KRM_DEFRPTCHAR;
  68.  
  69.     hInitKeyStr = LocalAlloc(LPTR, INITKEYSIZE);
  70.     if ((szInitKeyStr = LocalLock(hInitKeyStr)) == NULL)
  71.     return FALSE;
  72.  
  73.     LoadString(hInstance,IDS_KRM_KERMIT,(LPSTR)szAppStr,sizeof(szAppStr));
  74.     Initlen = GetProfileString(szAppStr, (LPSTR)NULL, (LPSTR)"",
  75.                    szInitKeyStr, INITKEYSIZE);
  76.     if (Initlen == 0) {
  77.         LoadString(hInstance,IDS_KRM_ADDDEFAULTS, 
  78.             (LPSTR)szMessageStr, sizeof(szMessageStr));
  79.         reply = MessageBox(hWnd,(LPSTR)szMessageStr,
  80.            (LPSTR)szAppStr, MB_ICONQUESTION | MB_YESNO);
  81.     if (reply == IDNO)
  82.         return FALSE;
  83.     }
  84.  
  85.     ptr = &Kermit.timer;
  86.     for (i = 0; i < 4; i++) {
  87.         LoadString(hInstance,IDS_KRM_TIMER+i,(LPSTR)szKeyStr,sizeof(szKeyStr));
  88.     if (!SearchKey(szInitKeyStr, szKeyStr, Initlen)) {
  89.             itoa(*ptr,szDefStr,10);
  90.         WriteProfileString(szAppStr,szKeyStr,szDefStr);
  91.         WinIniModified = TRUE;
  92.     }
  93.         *ptr++ = GetProfileInt((LPSTR)szAppStr, (LPSTR)szKeyStr, *ptr);
  94.     }        
  95.     LocalUnlock(hInitKeyStr);
  96.     LocalFree(hInitKeyStr);
  97.  
  98.     if (WinIniModified)
  99.     BroadcastWinIniChange();
  100.  
  101.     return TRUE;
  102. }
  103.