/*-----------------------------------------------------------------------------+ | MCI.H | | | | Routines for dealing with MCI devices. | | These routines only support *one* open MCI device/file at a time. | | | | (C) Copyright Microsoft Corporation 1992. All rights reserved. | | | | Revision History | | Oct-1992 MikeTri Ported to WIN32 / WIN16 common code | | | +-----------------------------------------------------------------------------*/ #define MCI_WINDOW_CLASS TEXT("MCIWindow") BOOL FAR PASCAL InitMCI(HANDLE hPrev, HANDLE hInst); BOOL FAR PASCAL OpenMCI(LPCTSTR szFile, LPCTSTR szDevice); void LoadStatusStrings(void); LPTSTR MapModeToStatusString( WORD Mode ); void FAR PASCAL UpdateMCI(void); void FAR PASCAL CloseMCI(BOOL fUpdateDisplay); BOOL FAR PASCAL PlayMCI(DWORD_PTR dwFrom, DWORD_PTR dwTo); BOOL FAR PASCAL PauseMCI(void); BOOL FAR PASCAL StopMCI(void); BOOL FAR PASCAL EjectMCI(BOOL fOpen); UINT FAR PASCAL StatusMCI(DWORD_PTR FAR *pdwPosition); BOOL FAR PASCAL SeekMCI(DWORD_PTR dwPosition); BOOL FAR PASCAL SeekToStartMCI(void); void FAR PASCAL SkipTrackMCI(int iSkip); BOOL FAR PASCAL SetWindowMCI(HWND hwnd); HWND FAR PASCAL GetWindowMCI(void); BOOL FAR PASCAL SetPaletteMCI(HPALETTE hpal); BOOL FAR PASCAL SetTimeFormatMCI(UINT wTimeFormat); BOOL FAR PASCAL SeekExactMCI(BOOL fExact); void FAR PASCAL CreateWindowMCI(void); void FAR PASCAL FindDeviceMCI(void); void FAR PASCAL GetDeviceNameMCI(LPTSTR szDevice, UINT wLen); void FAR PASCAL QueryDevicesMCI(LPTSTR szDevices, UINT wLen); BOOL FAR PASCAL GetDestRectMCI(LPRECT lprc); BOOL FAR PASCAL GetSourceRectMCI(LPRECT lprc); BOOL FAR PASCAL SetDestRectMCI(LPRECT lprc); BOOL FAR PASCAL SetSourceRectMCI(LPRECT lprc); BOOL FAR PASCAL ShowWindowMCI(BOOL fShow); BOOL FAR PASCAL PutWindowMCI(LPRECT prc); #define MCI_STRING_LENGTH 128 DWORD PASCAL SendStringMCI(PTSTR szCmd, PTSTR szReturn, UINT wLen); BOOL FAR PASCAL ConfigMCI(HWND hwnd); HPALETTE FAR PASCAL PaletteMCI(void); HBITMAP FAR PASCAL BitmapMCI(void); void FAR PASCAL CopyMCI(HWND hwnd); #define WM_MCI_POSITION_CHANGE (WM_USER+10) // wParam = DeviceID, lParam = position #define WM_MCI_MODE_CHANGE (WM_USER+11) // wParam = DeviceID, lParam = mode #define WM_MCI_MEDIA_CHANGE (WM_USER+12) // wParam = DeviceID, lParam = 0 // // the following flags are returned by DeviceTypeMCI, and QueryDeviceMCI // UINT FAR PASCAL DeviceTypeMCI(LPTSTR szDevice, LPTSTR szDeviceName, int nBuf); UINT FAR PASCAL QueryDeviceTypeMCI(UINT wDeviceID); extern UINT gwDeviceType; #define DTMCI_ERROR 0x0000 #define DTMCI_IGNOREDEVICE 0xFFFF #define DTMCI_SIMPLEDEV 0x0001 // simple (not compound) device #define DTMCI_FILEDEV 0x0002 // device does files #define DTMCI_COMPOUNDDEV 0x0004 // compound (not simple) device #define DTMCI_CANSEEKEXACT 0x0008 // can seek exactly #define DTMCI_CANPLAY 0x0010 // device supports play #define DTMCI_CANEJECT 0x0020 // device supports eject #define DTMCI_CANCONFIG 0x0040 // device supports config #define DTMCI_CANMUTE 0x0080 // device supports set audio #define DTMCI_CANPAUSE 0x0100 // device supports config #define DTMCI_CANWINDOW 0x0200 // device supports windows #define DTMCI_TIMEFRAMES 0x0400 // device does frames #define DTMCI_TIMEMS 0x0800 // device does milliseconds // Known devices: #define DTMCI_DEVICE 0xF000 // The following are mutually exclusive #define DTMCI_AVIVIDEO 0x1000 // device is MCIAVI #define DTMCI_CDAUDIO 0x2000 // device is CDAUDIO #define DTMCI_SEQUENCER 0x3000 // device is MIDI sequencer #define DTMCI_WAVEAUDIO 0x4000 // device is Wave audio #define DTMCI_VIDEODISC 0x5000 // device is Video disc #define DTMCI_VCR 0x6000 // device is Video cassette