home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / winui / cmddlg / cdtest / title.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-06-17  |  3.0 KB  |  135 lines

  1. /************************************************************************
  2.  
  3.   File: title.c
  4.  
  5.   Purpose:
  6.  
  7.      Contains the functions that control CDTEST's GetFileTitle()
  8.      dialog box.
  9.  
  10.  
  11.   Functions:
  12.  
  13.     - DoTitleDialog()    -- Creates CDTEST's GetFileTitle() dialog.
  14.  
  15.     - TitleProc()        -- The callback function for CDTEST's
  16.                             GetFileTitle() dialog box.
  17.  
  18. ************************************************************************/
  19.  
  20.  
  21. #include <windows.h>
  22. #include <commdlg.h>
  23. #include "cdtest.h"
  24. #include "title.h"
  25.  
  26. extern UINT uMode ;                               //see cdtest.c
  27. extern LONG MyAtol(LPTSTR, BOOL, LPBOOL) ;
  28.  
  29.  
  30. #define MAXTITLE 256
  31.  
  32. TCHAR szTitle[MAXTITLE] ;
  33. TCHAR szPath[MAXTITLE] ;
  34. short nReturn ;
  35. WORD wBufSize ;
  36.  
  37.  
  38.  
  39.  
  40. /************************************************************************
  41.  
  42.   Function: DoTitleDialog(HWND)
  43.  
  44.   Purpose: Creates CDTEST's GetFileTitle() dialog box.
  45.  
  46.   Returns: Nothing.
  47.  
  48.   Comments:
  49.  
  50. ************************************************************************/
  51.  
  52. void DoTitleDialog(HWND hwnd)
  53. {
  54.   DialogBox(hInst, MAKEINTRESOURCE(ID_TITLEDIALOG), hwnd, TitleProc) ;
  55.  
  56. }
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63. /************************************************************************
  64.  
  65.   Function: TitleProc(HWND, UINT, UINT, LONG)
  66.  
  67.   Purpose: Is the callback function for CDTEST's GetFileTitle() dialog.
  68.  
  69.   Returns: TRUE or FALSE depending on the situation.
  70.  
  71.   Comments:
  72.  
  73. ************************************************************************/
  74.  
  75.  
  76. BOOL APIENTRY TitleProc(HWND hwnd, UINT msg, UINT wParam, LONG lParam)
  77. {
  78.   TCHAR szNum[30] ;
  79.   BOOL b ;
  80.  
  81.   switch (msg)
  82.   {
  83.     case WM_INITDIALOG:
  84.       SetDlgItemText(hwnd, ID_BUFFSIZETI, TEXT("256")) ;
  85.       break ;
  86.  
  87.     case WM_COMMAND:
  88.     {
  89.         switch (LOWORD(wParam))
  90.         {
  91.           case IDOK:
  92.             GetDlgItemText(hwnd, ID_PATHTI, szPath, MAXTITLE) ;
  93.             GetDlgItemText(hwnd, ID_BUFFSIZETI, szNum, 30) ;
  94.  
  95.             wBufSize =  (WORD) MyAtol(szNum, uMode==IDM_HEXMODE, &b) ;
  96.  
  97.             if (wBufSize > 256)
  98.             {
  99.                 wBufSize = 256 ;
  100.                 SetDlgItemText(hwnd, ID_BUFFSIZETI, TEXT("256")) ;
  101.             }
  102.  
  103.             nReturn = GetFileTitle(szPath, szTitle, wBufSize) ;
  104.             wsprintf(szTemp, szShortFilter, nReturn) ;
  105.             SetDlgItemText(hwnd, ID_RETURNTI, szTemp) ;
  106.             SetDlgItemText(hwnd, ID_TITLETI, szTitle) ;
  107.  
  108.             break ;
  109.  
  110.           case IDCANCEL:
  111.             EndDialog(hwnd, FALSE) ;
  112.             break ;
  113.  
  114.           case ID_RESETTITLE:
  115.             szPath[0] = 0 ;
  116.             szNum[0] = 0 ;
  117.             szTemp[0] = 0 ;
  118.             szTitle[0] = 0 ;
  119.             SetDlgItemText(hwnd, ID_PATHTI, szPath) ;
  120.             SetDlgItemText(hwnd, ID_RETURNTI, szTemp) ;
  121.             SetDlgItemText(hwnd, ID_TITLETI, szTitle) ;
  122.             SetDlgItemText(hwnd, ID_BUFFSIZETI, TEXT("256")) ;
  123.             break ;
  124.  
  125.  
  126.           default: break ;
  127.         }
  128.     }
  129.  
  130.     default: break ;
  131.   }
  132.  
  133.   return FALSE ;
  134. }
  135.