home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1999 November / PCONLINE_11_99.ISO / filesbbs / OS2 / ACDCR032.ZIP / source / cdtoolsdlgproc.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1999-06-13  |  5.0 KB  |  147 lines

  1. #include "audiofolder.hh"
  2. #include <stdio.h>
  3.  
  4. extern char chrCDRecord[CCHMAXPATH];/* Path to cdrecord */
  5. extern char chrCDROptions[CCHMAXPATH];
  6.  
  7.  
  8. /*********************************************************************/
  9. /*                                                                   */
  10. /* This procedure handles the CDRTools dialog                        */
  11. /*                                                                   */
  12. /*********************************************************************/
  13. MRESULT EXPENTRY CDToolsDlgProc( HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2 )
  14. {
  15.   HAB hab;
  16.   char chrLoadError[CCHMAXPATH];
  17.   STARTDATA startData={0};
  18.   PSZ pszTitle="CDRecord/2";
  19.   APIRET rc;
  20.   PID pid;
  21.   ULONG ulSessionID=0;
  22.   char chrParams[CCHMAXPATH];
  23.   char chrParams2[20];
  24.   
  25.   switch( msg )
  26.     {
  27.     case WM_INITDLG:
  28.       {
  29.     WinCheckButton(hwnd,RBID_FAST,TRUE);
  30.     WinCheckButton(hwnd,RBID_LOADDISK,TRUE);
  31.     WinCheckButton(hwnd,CBID_DUMMY,TRUE);
  32.     WinCheckButton(hwnd,CBID_FIXDUMMY,TRUE);
  33.       }
  34.       return (MRESULT) TRUE;
  35.     case WM_DESTROY:
  36.       
  37.       break;
  38.     case WM_CLOSE:
  39.       if(WinMessageBox(  HWND_DESKTOP,
  40.                hwnd,
  41.                "Do you really want to quit?",
  42.                "Question",
  43.                0UL,
  44.                MB_YESNO | MB_ICONQUESTION )==MBID_YES)
  45.     WinPostMsg(hwnd,WM_QUIT,(MPARAM)0,(MPARAM)0);
  46.       return 0;
  47.     case WM_COMMAND:
  48.       {
  49.     memset(&startData,0,sizeof(startData));
  50.     startData.Length=sizeof(startData);
  51.     startData.Related=SSF_RELATED_INDEPENDENT;
  52.     startData.FgBg=SSF_FGBG_FORE;
  53.     startData.TraceOpt=SSF_TRACEOPT_NONE;
  54.     startData.PgmTitle=pszTitle;
  55.     startData.PgmName=chrCDRecord;
  56.     startData.InheritOpt=SSF_INHERTOPT_SHELL;
  57.     startData.SessionType=SSF_TYPE_WINDOWABLEVIO;
  58.     startData.PgmControl=SSF_CONTROL_VISIBLE|SSF_CONTROL_MAXIMIZE|SSF_CONTROL_NOAUTOCLOSE;
  59.     startData.InitXPos=30;
  60.     startData.InitYPos=30;
  61.     startData.InitXSize=500;
  62.     startData.InitYSize=400;
  63.     startData.ObjectBuffer=chrLoadError;
  64.     startData.ObjectBuffLen=(ULONG)sizeof(chrLoadError);
  65.     switch( SHORT1FROMMP( mp1 ) )
  66.       {
  67.       case PBID_BLANK:
  68.         if(!WinQueryButtonCheckstate(hwnd,CBID_DUMMY)) {
  69.           if(WinMessageBox(  HWND_DESKTOP,
  70.                    hwnd,
  71.                    "Do you really want to perform a real write?",
  72.                    "Dummy is unchecked!",
  73.                    0UL,
  74.                    MB_OKCANCEL | MB_ICONEXCLAMATION )==MBID_CANCEL)break;
  75.           sprintf(chrParams2,"%s","");
  76.         }
  77.         else
  78.           sprintf(chrParams2,"%s","-dummy");
  79.         if(WinQueryButtonCheckstate(hwnd,RBID_FAST))
  80.           sprintf(chrParams,"%s %s %s",chrCDROptions,chrParams2,"-blank=fast");
  81.         if(WinQueryButtonCheckstate(hwnd,RBID_ALL))
  82.           sprintf(chrParams,"%s %s %s",chrCDROptions,chrParams2,"-blank=all");
  83.         if(WinQueryButtonCheckstate(hwnd,RBID_LASTSESSION))
  84.           sprintf(chrParams,"%s %s %s",chrCDROptions,chrParams2,"-blank=session");
  85.         if(WinQueryButtonCheckstate(hwnd,RBID_UNCLOSE))
  86.           sprintf(chrParams,"%s %s %s",chrCDROptions,chrParams2,"-blank=unclose");
  87.         startData.PgmInputs=chrParams;
  88.         rc=DosStartSession(&startData,&ulSessionID,&pid);                    
  89.         break;
  90.       case PBID_FIX:
  91.         if(!WinQueryButtonCheckstate(hwnd,CBID_FIXDUMMY)) {
  92.           if(WinMessageBox(  HWND_DESKTOP,
  93.                    hwnd,
  94.                    "Do you really want to perform a real write?",
  95.                    "Dummy is unchecked!",
  96.                    0UL,
  97.                    MB_OKCANCEL | MB_ICONEXCLAMATION )==MBID_CANCEL)break;
  98.           sprintf(chrParams,"%s %s",chrCDROptions," -fix");
  99.         }
  100.         else
  101.           sprintf(chrParams,"%s %s",chrCDROptions,"-dummy -fix");            
  102.         startData.PgmInputs=chrParams;
  103.         rc=DosStartSession(&startData,&ulSessionID,&pid);
  104.         break;
  105.       case PBID_MISC:
  106.         if(WinQueryButtonCheckstate(hwnd,RBID_UNLOADDISK))
  107.           sprintf(chrParams,"%s %s",chrCDROptions,"-eject");
  108.         if(WinQueryButtonCheckstate(hwnd,RBID_LOADDISK))
  109.           sprintf(chrParams,"%s %s",chrCDROptions,"-load");
  110.         if(WinQueryButtonCheckstate(hwnd,RBID_RESETDEVICE))
  111.           sprintf(chrParams,"%s %s",chrCDROptions,"-reset");
  112.         if(WinQueryButtonCheckstate(hwnd,RBID_SHOWTOC))
  113.           sprintf(chrParams,"%s %s",chrCDROptions,"-toc");
  114.         startData.PgmInputs=chrParams;
  115.         rc=DosStartSession(&startData,&ulSessionID,&pid);
  116.         break;
  117.       case PBID_EXIT:
  118. /*        if(WinMessageBox(  HWND_DESKTOP,
  119.                  hwnd,
  120.                  "Do you really want to quit?",
  121.                  "Question",
  122.                  0UL,
  123.                  MB_OKCANCEL | MB_ICONQUESTION )==MBID_OK)*/
  124.           WinPostMsg(hwnd,WM_CLOSE,(MPARAM)0,(MPARAM)0);
  125.         break;
  126.       case PBID_SETTINGS:
  127.         /* if( WinDlgBox( HWND_DESKTOP, hwnd, CDSettingsDlgProc, NULLHANDLE,DLGID_SETUP, 0 ) == DID_ERROR )
  128.            {
  129.            WinMessageBox(  HWND_DESKTOP,
  130.            HWND_DESKTOP,
  131.            "Warning! Cannot open Settings dialog!",
  132.            "",
  133.            0UL,
  134.            MB_OK | MB_ICONEXCLAMATION );
  135.            }*/
  136.         DosBeep(100,100);
  137.         break;
  138.       default:
  139.         break;
  140.       }
  141.       }
  142.       return (MRESULT) TRUE;
  143.       break;
  144.     }    
  145.   return( WinDefDlgProc( hwnd, msg, mp1, mp2 ) );    
  146. }
  147.