The following diagram represents the sequence of functions and message flows for a typical direct manipulation operation. The flow shows a two-object drag from App1 to App3, dragging over App2.

The direct manipulation operation is started by the source window procedure after the user selects the objects to be manipulated and the source receives a WM_BEGINDRAG message.

                                Two-Object Drag
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³               App1                   App2                    App3           ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
                  .                      .                       .
  (user select)   .                      .                       .
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ.                      .                       .
                  .                      .                       .
  WM_BEGINDRAG    .                      .                       .
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ.                      .                       .
                  .                      .                       .
                  .                      .                       .
            DrgAllocDraginfo             .                       .
                  .                      .                       .
            DrgAddStrHandle              .                       .
                  .                      .                       .
            DrgAddStrHandle              .                       .
                  .                      .                       .
            DrgSetDragitem               .                       .
                  .                      .                       .
            DrgSetDragitem               .                       .
                  .                      .                       .
               DrgDrag                   .                       .
                  .                      .                       .
                  .     DM_DRAGOVER      .                       .
                  .ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ.                       .
                  .                      .                       .
                  .               DrgAccessDraginfo              .
                  .                      .                       .
                  .           DrgSetDragImage (optional)         .
                  .                      .                       .
                  .       (Verify that drop can be accepted)     .
                  .                      .                       .
                  .              (Target emphasis on)            .
                  .                      .                       .
                  .                 DrgFreeDraginfo              .
                  .                      .                       .
                  .                      .                       .
                  .      DOR_DROP        .                       .
                  .ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ.                       .
                  .                      .                       .
                  .    DM_DRAGLEAVE      .                       .
                  .ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ.                       .
                  .                      .                       .
                  .              (Target emphasis off)           .
                  .                      .                       .
                  .                      .                       .
                  .                      .                       .
                  .                      .                       .
                  .                 DM_DRAGOVER                  .
                  .ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ.
                  .                      .                       .
                  .                      .                DrgAccessDraginfo
                  .                      .                       .
                  .                      .            DrgSetDragImage (optional)
                  .                      .                       .
                  .                      .               (Target emphasis on)
                  .                      .                       .
                  .                      .                       .
                  .                      .                       .

                  .                  DOR_DROP                    .
                  .ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ.
   (WM_ENDDRAG)   .                      .                       .
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ.                      .                       .
                  .                      .                       .
                  .                      .                       .
                  .                   DM_DROP                    .
                  .ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ.
                  .                      .                       .
                  .                      .                       .
                  .                      .            (Target emphasis off)
                  .                      .                       .
           (DrgDrag returns)             .             (Perform operation)
                  .                      .                       .
            DrgFreeDraginfo              .         DrgDeleteDraginfoStrHandles
                  .                      .                       .
                  .                      .               DrgFreeDraginfo
                  .                      .                       .
                  .                      .                       .


[Back] [Next]