Ok, voy a intentar aclarar esto:
Hace tiempo estuve trabajando en un componente de control de cd (que hay algunos comentarios por el foro). Finalmente conseguí hacer trabajar el AllocateHWND y el DeallocateHWND para captar mensajes de las unidades del sistema y pude hacer trabajar mi componente. Pero hay un problemita con todo esto: Cuando hago algún movimiento sobre las unidades (abrir, cerrar, obtener el ID etc..) la aplicación se queda "colgada" esperando el mensaje del lector hasta que este llega. La solución a esto es usar un thread que envie y reciba el mensaje en lugar del componente. Ejemplo:
Código Delphi
[-]
Type
TCDThread = Class(TThread)
Private
fresult: PAnsiChar; procedure PostMCIString(Handle: HWND;Mensaje: String); procedure GetBack; Public
end;
TCDControl = Class(TComponent)
private
procedure ProcessResult(P: PAnsiChar);
public
property OpResult: PAnsiChar write ProcessResult;
...
...
procedure TCDThread.GetBack
begin
TCDControl.OpResult := fResult;
end;
Cuando pongo TCDControl. no aparece ni OpResult ni ninguna de las variables, procesos o propiedades que tiene el componente... No se si me he explicado bien del todo... Si hay alguna duda sobre algo pliz ruego me lo pregunteis. Gracias por vuestro tiempo
NOTA: Gybda, ese link puede que solucione mi problema, lo aplico y ya comento el resultado. Gracias