password.c
Upload User: jlteech
Upload Date: 2007-01-06
Package Size: 349k
Code Size: 3k
Development Platform:

Visual C++

  1. /*
  2.  Copyright (C) 1996 Mike White
  3.  Permission is granted to any individual or institution to use, copy, or
  4.  redistribute this software so long as all of the original files are included,
  5.  that it is not sold for profit, and that this copyright notice is retained.
  6. */
  7. #include <windows.h>
  8. #include "wiz.h"
  9. #include "unzipzip.h"
  10. #include "password.h"
  11. #include "helpids.h"
  12. int pwflag;
  13. char *prompt;
  14. char *szPassword;
  15. LPSTR lpPasswordStr;
  16. /****************************************************************************
  17.     FUNCTION: PasswordProc(HWND, WORD, WPARAM, LPARAM)
  18.     PURPOSE:  Processes messages for "Password" dialog box
  19.     MESSAGES:
  20.     WM_INITDIALOG - initialize dialog box
  21.     WM_COMMAND    - Input received
  22. ****************************************************************************/
  23. BOOL WINAPI PasswordProc(HWND hDlg, WORD wMessage, WPARAM wParam, LPARAM lParam)
  24. {
  25.     switch (wMessage)
  26.     {
  27.     case WM_INITDIALOG:
  28.         SetDlgItemText(hDlg, IDM_PASSWORD_INCORRECT, prompt);
  29.         if ((LPSTR)lParam != NULL)
  30.            {
  31.            SetDlgItemText(hDlg, IDM_PASSWORD_TEXT, (LPSTR)lParam);
  32.            }
  33.         SetDlgItemText(hDlg, IDM_NEW_PASSWORD_NAME_TEXT, "");
  34.         CenterDialog(GetParent(hDlg), hDlg); /* center on parent */
  35.         return TRUE;
  36.     case WM_SETFOCUS:
  37.         SetFocus(GetDlgItem(hDlg, IDM_NEW_PASSWORD_NAME_TEXT));
  38.         return TRUE;
  39.     case WM_COMMAND:
  40.         switch (LOWORD(wParam))
  41.         {
  42.         case IDM_PASSWORD_RENAME:
  43.             GetDlgItemText(hDlg, IDM_NEW_PASSWORD_NAME_TEXT, lpPasswordStr, 80);
  44.             pwflag = IZ_PW_ENTERED;
  45.             EndDialog(hDlg, wParam);
  46.             break;
  47.         case IDM_PASSWORD_CANCEL:
  48.             szPassword[0] = '';
  49.             pwflag = IZ_PW_CANCELALL;
  50.             EndDialog(hDlg, wParam);
  51.             break;
  52.         case IDM_PASSWORD_HELP:
  53.             WinHelp(hDlg,szHelpFileName,HELP_CONTEXT, (DWORD)(HELPID_PASSWORD));
  54.             break;
  55.         }
  56.         return TRUE;
  57.     }
  58.     return FALSE;
  59. }
  60. int WINAPI password(LPSTR p, int n, const LPSTR m, const LPSTR name)
  61. {
  62. FARPROC lpProcPassword;
  63.     prompt = (char *)malloc(strlen(m) + 1);
  64.     szPassword = (char *)malloc(n);
  65.     if ((prompt == (char *)NULL) || (szPassword == (char *)NULL)) {
  66.         return IZ_PW_ERROR;
  67.     }
  68.     lpPasswordStr = szPassword;
  69.     pwflag = IZ_PW_ERROR;
  70.     lpProcPassword = MakeProcInstance(PasswordProc, hInst);
  71.     lstrcpy(prompt, m);
  72.     DialogBoxParam(hInst, "Password", hWndMain, lpProcPassword,
  73.        (DWORD)(LPSTR)name);
  74. #ifndef WIN32
  75.     FreeProcInstance(lpProcPassword);
  76. #endif
  77.     lstrcpy(p, szPassword);
  78.     free(szPassword);
  79.     free(prompt);
  80.     return pwflag;
  81. }