PDA

Ver la Versión Completa : Usando funciones MCI


dabas
21-06-2003, 23:14:46
Hola a todos.

Agradeceria a alguien que me dijera como se usan las función

MCIERROR mciSendCommand(

MCIDEVICEID IDDevice,
UINT uMsg,
DWORD fdwCommand,
DWORD dwParam
);

o la funcion

MCIERROR mciSendString(

LPCTSTR lpszCommand,
LPTSTR lpszReturnString,
UINT cchReturn,
HANDLE hwndCallback
);


Por lo que sé, sirven para reproducir archivos multimedia usando los dispositivos disponibles en el PC, pertenecen a la unidad "mmsystem". Y me interesaría usarlos.


Gracias por leer esto.

marcoszorrilla
22-06-2003, 11:08:34
Esta es la definición de una de las funciones que citas:

{$EXTERNALSYM mciSendString}
function mciSendString(lpstrCommand, lpstrReturnString: PChar;
uReturnLength: UINT; hWndCallback: HWND): MCIERROR; stdcall;

la otra:

function mciSendCommand(mciId: MCIDEVICEID; uMessage: UINT;
dwParam1, dwParam2: DWORD): MCIERROR; stdcall;

Errores que devuelve:


{ general error return values }
const
{$EXTERNALSYM MMSYSERR_NOERROR}
MMSYSERR_NOERROR = 0; { no error }
{$EXTERNALSYM MMSYSERR_ERROR}
MMSYSERR_ERROR = MMSYSERR_BASE + 1; { unspecified error }
{$EXTERNALSYM MMSYSERR_BADDEVICEID}
MMSYSERR_BADDEVICEID = MMSYSERR_BASE + 2; { device ID out of range }
{$EXTERNALSYM MMSYSERR_NOTENABLED}
MMSYSERR_NOTENABLED = MMSYSERR_BASE + 3; { driver failed enable }
{$EXTERNALSYM MMSYSERR_ALLOCATED}
MMSYSERR_ALLOCATED = MMSYSERR_BASE + 4; { device already allocated }
{$EXTERNALSYM MMSYSERR_INVALHANDLE}
MMSYSERR_INVALHANDLE = MMSYSERR_BASE + 5; { device handle is invalid }
{$EXTERNALSYM MMSYSERR_NODRIVER}
MMSYSERR_NODRIVER = MMSYSERR_BASE + 6; { no device driver present }
{$EXTERNALSYM MMSYSERR_NOMEM}
MMSYSERR_NOMEM = MMSYSERR_BASE + 7; { memory allocation error }
{$EXTERNALSYM MMSYSERR_NOTSUPPORTED}
MMSYSERR_NOTSUPPORTED = MMSYSERR_BASE + 8; { function isn't supported }
{$EXTERNALSYM MMSYSERR_BADERRNUM}
MMSYSERR_BADERRNUM = MMSYSERR_BASE + 9; { error value out of range }
{$EXTERNALSYM MMSYSERR_INVALFLAG}
MMSYSERR_INVALFLAG = MMSYSERR_BASE + 10; { invalid flag passed }
{$EXTERNALSYM MMSYSERR_INVALPARAM}
MMSYSERR_INVALPARAM = MMSYSERR_BASE + 11; { invalid parameter passed }
{$EXTERNALSYM MMSYSERR_HANDLEBUSY}
MMSYSERR_HANDLEBUSY = MMSYSERR_BASE + 12; { handle being used
simultaneously on another
thread (eg callback) }
{$EXTERNALSYM MMSYSERR_INVALIDALIAS}
MMSYSERR_INVALIDALIAS = MMSYSERR_BASE + 13; { specified alias not found }
{$EXTERNALSYM MMSYSERR_BADDB}
MMSYSERR_BADDB = MMSYSERR_BASE + 14; { bad registry database }
{$EXTERNALSYM MMSYSERR_KEYNOTFOUND}
MMSYSERR_KEYNOTFOUND = MMSYSERR_BASE + 15; { registry key not found }
{$EXTERNALSYM MMSYSERR_READERROR}
MMSYSERR_READERROR = MMSYSERR_BASE + 16; { registry read error }
{$EXTERNALSYM MMSYSERR_WRITEERROR}
MMSYSERR_WRITEERROR = MMSYSERR_BASE + 17; { registry write error }
{$EXTERNALSYM MMSYSERR_DELETEERROR}
MMSYSERR_DELETEERROR = MMSYSERR_BASE + 18; { registry delete error }
{$EXTERNALSYM MMSYSERR_VALNOTFOUND}
MMSYSERR_VALNOTFOUND = MMSYSERR_BASE + 19; { registry value not found }
{$EXTERNALSYM MMSYSERR_NODRIVERCB}
MMSYSERR_NODRIVERCB = MMSYSERR_BASE + 20; { driver does not call DriverCallback }
{$EXTERNALSYM MMSYSERR_LASTERROR}
MMSYSERR_LASTERROR = MMSYSERR_BASE + 20; { last error in range }


Espero te sirva la información.

Un Saludo.

dabas
30-06-2003, 00:27:00
Pues no me ha servido de mucho, no domino los mensajes ni las funciones API en general.

Pero he encontrado un buen ejemplo para reproducir mp3, y he descubierto que la calidad es muy mala.

Lo que voy a hacer es usar alguna libreria shareware para experimentar, ademas se pueden usar los plugins de winamp 2.

Hasta otra