container_wnd_proc (pstruct -w reply, p_program_state -&w state, p_msg msg)
                if (msg->message == WM_DRAG_OVER)
{
  draw_rectangle (msg->window);

  dg = (hdraginfo) msg->mp1;

  dragover->ret_code = accept_items (dg, &target), {
                                                     target = {
                                                                ...
                                                              }
                                                   },
  {
    dragover = (p_dragover) reply
  };
}

container_wnd_proc (pstruct -w reply, p_program_state -&w state, p_msg msg)
                if (msg->message == WM_DRAG_LEAVE)
{
  hide_rectangle (msg->window);
}

container_wnd_proc (pstruct -w reply, p_program_state -&w state, p_msg msg)
                if (msg->message == WM_DROP)
{
  hide_rectangle (msg->window);

  dg = (hdraginfo) msg->mp1;

  accept_items (dg, &target, WM_DROP), {
                                         target = {
                                                    ...
                                                  }
                                       };
}
