comment.c
上传用户:jlteech
上传日期:2007-01-06
资源大小:349k
文件大小:3k
源码类别:

压缩解压

开发平台:

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 <stdio.h>
  9. #include <string.h>
  10. #include <stdlib.h>
  11. #include "wiz.h"
  12. #include "helpids.h"
  13. /****************************************************************************
  14.     FUNCTION: EditBoxProc(HWND, unsigned, WPARAM, LPARAM)
  15.     PURPOSE:  Processes messages for "Comment Edit Box" dialog box
  16.     MESSAGES:
  17.     WM_INITDIALOG - initialize dialog box
  18.     WM_COMMAND    - Input received
  19. ****************************************************************************/
  20. LPSTR szAppCommentBuf;
  21. HANDLE hStr;
  22. #ifdef __BORLANDC__
  23. #pragma warn -par
  24. #pragma warn -aus
  25. #endif
  26. BOOL WINAPI
  27. CommentBoxProc(HWND hwndDlg, WORD wMessage, WPARAM wParam, LPARAM lParam)
  28. {
  29.    switch (wMessage) {
  30.    case WM_INITDIALOG:
  31.       {
  32.       if (szAppCommentBuf[0] != '')
  33.          {
  34.          SendMessage(GetDlgItem(hwndDlg, IDM_EDIT_BOX), WM_SETTEXT, 0, (LPARAM)szAppCommentBuf);
  35.          }
  36.       CenterDialog(GetParent(hwndDlg), hwndDlg); /* center on parent */
  37.       SetFocus(GetDlgItem(hwndDlg, IDM_EDIT_BOX));
  38.       }
  39.       break;
  40.    case WM_COMMAND:
  41.       switch (LOWORD(wParam)) {
  42.          case IDCANCEL:
  43.             szAppCommentBuf[0] = '';
  44.             EndDialog(hwndDlg, wParam);
  45.             break;
  46.          case ID_HELP:
  47.             WinHelp(hwndDlg,szHelpFileName,HELP_CONTEXT, (DWORD)(HELPID_ADD_COMMENT));
  48.             break;
  49.          case IDOK:
  50.             {
  51.             DWORD iEBItems;
  52.             /* Get multi-line comment for the zip file */
  53.             SendMessage(GetDlgItem(hwndDlg, IDM_EDIT_BOX), EM_FMTLINES, TRUE, 0L);
  54.             iEBItems = (DWORD) SendMessage(GetDlgItem(hwndDlg, IDM_EDIT_BOX),
  55.                WM_GETTEXTLENGTH, 0, 0L) + 1;
  56.             if (iEBItems)
  57.                {
  58.                if (iEBItems > 65534L)
  59.                   iEBItems = (DWORD) 65534L;
  60.                SendMessage(GetDlgItem(hwndDlg, IDM_EDIT_BOX),
  61.                   WM_GETTEXT, (WPARAM)iEBItems, (LPARAM)szAppCommentBuf);
  62.                }
  63.             else
  64.                szAppCommentBuf[0] = '';
  65.             EndDialog(hwndDlg, wParam);
  66.             break;
  67.             }
  68.          }
  69.       default:
  70.          break;
  71.    }
  72.    return FALSE;
  73. }
  74. #ifdef __BORLANDC__
  75. #pragma warn .par
  76. #pragma warn .aus
  77. #endif
  78. LPSTR WINAPI comment(LPSTR szBuf)
  79. {
  80. #ifndef WIN32
  81. FARPROC lpfnComment;
  82. #endif
  83. hStr = GlobalAlloc( GPTR, (DWORD)32768L);
  84. if ( !hStr )
  85.    {
  86.    szBuf[0] = '';
  87.    return szBuf;
  88.    }
  89. szAppCommentBuf = GlobalLock(hStr);
  90. if (lstrlen(szBuf) != 0)
  91.    {
  92.    lstrcpy(szAppCommentBuf, szBuf);
  93.    }
  94. else
  95.    {
  96.    szAppCommentBuf[0] = '';
  97.    }
  98. #ifndef WIN32
  99. lpfnComment = MakeProcInstance(CommentBoxProc, hInst);
  100. DialogBox(hInst, "COMMENTBOX", hWndMain, lpfnComment);
  101. FreeProcInstance(lpfnComment);
  102. #else
  103. DialogBox(hInst, "COMMENTBOX", hWndMain, CommentBoxProc);
  104. #endif
  105. if (szAppCommentBuf[0] != '')
  106.    {
  107.    lstrcpy(szBuf, szAppCommentBuf);
  108.    }
  109. else
  110.    {
  111.    szBuf[0] = '';
  112.    }
  113. GlobalUnlock(hStr);
  114. GlobalFree(hStr);
  115. return szBuf;
  116. }