home *** CD-ROM | disk | FTP | other *** search
/ WarCraft 2000 - Nuclear Epidemic / W2000.nrg / SOURCE.War2000 / Video.cpp < prev    next >
C/C++ Source or Header  |  1998-11-24  |  2KB  |  105 lines

  1. #include "ddini.h"
  2. #include <mmsystem.h>
  3. #include <windef.h>
  4. #include <string.h>
  5. #include <io.h>
  6. MCIDEVICEID wAVIDeviceID;
  7. MCIDEVICEID wMIDDeviceID;
  8.  
  9.  
  10. void PlayAVI  (HWND hwnd,LPCSTR mfile);  
  11. void PlayMIDI (HWND hwnd,LPCSTR mfile);
  12. void CloseAVI (HWND hwnd);
  13. void CloseMIDI(HWND hwnd);
  14.  
  15. LPSTR GetCDROMWithFile(LPSTR FN);
  16.  
  17. void PlayAVI(HWND hwnd,LPCSTR mfile)
  18. {
  19.  MCI_OPEN_PARMS             OpenParams;
  20.  MCI_PLAY_PARMS             PlayParams;
  21.  MCI_ANIM_WINDOW_PARMS   WindowParams;
  22.  MCIERROR                 ME;
  23.  
  24.  OpenParams.lpstrDeviceType="AVIVideo";
  25.  OpenParams.lpstrElementName=mfile;
  26.  OpenParams.dwCallback=UINT(hwnd);
  27.  
  28.  ME=mciSendCommand(wAVIDeviceID,MCI_OPEN,MCI_OPEN_TYPE | MCI_OPEN_ELEMENT,
  29.                   (DWORD)(LPVOID)&OpenParams);
  30.  
  31.  wAVIDeviceID=OpenParams.wDeviceID;
  32.  
  33.  WindowParams.hWnd=hwnd;
  34.  ME=mciSendCommand(wAVIDeviceID,MCI_WINDOW,
  35.                    MCI_ANIM_WINDOW_HWND,
  36.                    (DWORD)(LPMCI_ANIM_WINDOW_PARMS)&WindowParams);
  37.  
  38.  PlayParams.dwCallback=UINT(hwnd);
  39.  
  40.  ME=mciSendCommand(wAVIDeviceID,MCI_PLAY,MCI_NOTIFY,
  41.                    (DWORD)(LPVOID)&PlayParams);
  42. }
  43.  
  44. void PlayMIDI(HWND hwnd,LPCSTR mfile)
  45. {
  46.  MCI_OPEN_PARMS        OpenParams;
  47.  MCI_PLAY_PARMS        PlayParams;
  48.  MCIERROR            ME;
  49.  
  50.  OpenParams.lpstrDeviceType="sequencer";
  51.  OpenParams.lpstrElementName=mfile;
  52.  OpenParams.dwCallback=UINT(hwnd);
  53.  
  54.  ME=mciSendCommand(wMIDDeviceID,MCI_OPEN,MCI_OPEN_TYPE | MCI_OPEN_ELEMENT,
  55.                    (DWORD)(LPVOID)&OpenParams);
  56.  
  57.  wMIDDeviceID=OpenParams.wDeviceID;
  58.  
  59.  PlayParams.dwCallback=UINT(hwnd);
  60.  
  61.  ME=mciSendCommand(wMIDDeviceID,MCI_PLAY,MCI_NOTIFY,
  62.                    (DWORD)(LPVOID)&PlayParams);
  63. }
  64.  
  65. void CloseAVI(HWND hwnd)
  66. {
  67.   mciSendCommand(wAVIDeviceID,MCI_CLOSE,0,0);
  68.   RedrawWindow(hwnd,NULL,NULL,RDW_INVALIDATE);
  69. }
  70.  
  71. void CloseMIDI(HWND hwnd)
  72. {
  73.   mciSendCommand(wMIDDeviceID,MCI_CLOSE,0,0);
  74. }
  75. char lpBuffer[256];
  76. LPSTR GetCDROMWithFile(LPSTR FN)
  77. {
  78.   //char* lpBuffer=new char[256];
  79.   int n=-1;
  80.   struct _finddata_t  FDATA;
  81.   char FullName[256]="";
  82.   long FH; 
  83.     
  84.   int Length=GetLogicalDriveStrings(256,lpBuffer);
  85.   for(int x=0;x<=(Length/4)-1;x++)
  86.       if(GetDriveType(&lpBuffer[x*4])==DRIVE_CDROM)
  87.       {
  88.        FullName[0]=0;
  89.        strcat(FullName,&lpBuffer[x*4]);
  90.        strcat(FullName,FN);
  91.        
  92.        FH=_findfirst((LPSTR)FullName,&FDATA);
  93.        if(FH!=-1)
  94.        {
  95.            _findclose(FH);
  96.            n=x;
  97.        };
  98.       };
  99.  
  100.   if(n!=-1)
  101.       return &lpBuffer[n*4];
  102.   else
  103.       return "none";
  104. }
  105.