void file_list_wnd_proc (pstruct -w reply, p_program_state -&w state, p_msg msg)
                     if (msg->message == WM_BEGIN_DRAG)
{
  mouse_action = (ulong) msg->mp1;
  ...
  drag_items (&items, mouse_action), {
                                       items = ...
                                     };
}

void file_list_wnd_proc (pstruct -w reply, p_program_state -&w state, p_msg msg)
                     if (msg->message == WM_DRAG_RENDER, WM_DISCARD_OBJECT, WM_PRINT_OBJECT)
{
  ...
}

void file_list_wnd_proc (pstruct -w reply, p_program_state -&w state, p_msg msg)
                     if (msg->message == WM_DRAG_COMPLETE)
{
  ...
}
