La Web del Programador: Comunidad de Programadores
 
    Pregunta:  26567 - ACERCA DE PUNTEROS DE ESTRUCTURAS
Autor:  Leonardo Laguna Ruiz
Estoy intentando obtener las capacidades de un puerto midi utilizando la libreria mmsystem.h con la función "midiOutGetDevCaps" la cual segun esta definida asi:

MMRESULT midiOutGetDevCaps(
UINT_PTR uDeviceID,
LPMIDIOUTCAPS lpMidiOutCaps,
UINT cbMidiOutCaps
);
donde el segundo parametro me esa dando lata pues es una direccion de una estructura.

Yo lo estoy hacien de esta manera:

MIDIOUTCAPS midicaps;
error = midiOutGetDevCaps(MIDIMAPPER,midicaps,52);

y obtengo este error de compilacion
"error C2664: 'midiOutGetDevCapsA' : cannot convert parameter 2 from 'struct tagMIDIOUTCAPSA' to 'struct tagMIDIOUTCAPSA *'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called"
Quiero saber si alguien me puede ayudar pues no tengo mucha experiencia con estructuras.

  Respuesta:  Daniel Azkona Coya
Creo que tu problema no tiene que ver con desconocer las estructuras, sino en desconocer los punteros, ya que la solución a tu problema es pasarle la estructura a la función por referencia, con &:

error = midiOutGetDevCaps(MIDIMAPPER,&midicaps,52);

de esta forma, la función llamada recibe un puntero a la variable declarada en local.