For PM applications, the Workplace Shell sends DM_ messages to PM windows using the standard or enhanced direct manipulation protocols. The Workplace Shell will drag source objects rendered as OBJECT or as OS2FILE and will accept source objects rendered in the same way. The Workplace Shell also will send a DM_PRINTOBJECT message to items dropped on the printer object.

Users can drag source objects over windows that an object creates. When this occurs, the Workplace Shell sends DM_ messages to these windows. Therefore, window procedures associated with the windows that the object creates must be able to process DM_ messages.

Target objects are not necessarily able to process every type of source object that is dropped on them. They are, however, capable of processing more than one type of dropped source object. Printer objects, for example, cannot print binary files, but they can print both text and graphics files. Because of differing capabilities, each target object should determine if it can process the source object being dropped on it. The following table shows the direct manipulation messages that are sent to target objects and the methods that are invoked by the Workplace Shell:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³Description    ³Method Name      ³Invoked On³Message Name      ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³Format drag    ³wpFormatDragItem ³Source    ³None              ³
³information    ³                 ³          ³                  ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³Request        ³wpRender         ³Source    ³DM_RENDER         ³
³rendering      ³                 ³          ³                  ³
³format         ³                 ³          ³                  ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³Rendering      ³wpRenderComplete ³Target    ³DM_RENDERCOMPLETE ³
³request        ³                 ³          ³                  ³
³completed      ³                 ³          ³                  ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³Objects being  ³wpDragOver       ³Target    ³DM_DRAGOVER       ³
³dragged over   ³                 ³          ³                  ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³Object has been³wpDrop           ³Source    ³DM_DROP           ³
³dropped        ³                 ³          ³                  ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³Drag/Drop is   ³wpEndConversation³Target    ³DM_ENDCONVERSATION³
³complete       ³                 ³          ³                  ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

The "Source" and "Target" windows in the following diagram represent windows that have been subclassed, via CnrOwnerSubclassProc, by the Workplace Shell:

                      ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
                      ³       Source                           Target        ³
                      ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
                                ³                                ³
        User begins drag        ³                                ³
         (WM_BEGINDRAG ÄÄÄÄÄÄÄÄ>³                                ³
               or               ³                                ³
           WM_PICKUP)           ³                                ³
                                ³                                ³
                                ³                                ³
                  wpFormatDragItem(sourceobject)                 ³
                                ³                                ³
                                ³          DM_DRAGOVER           ³
                              .>³ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ>³
                              . ³                                ³
                              . ³                    wpDragOver(targetobject)
                              . ³                                ³
                              . ³         DDR_  response         ³
                              ..³<ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄij
                                ³                                ³
        User ends drag          ³                                ³
         (WM_ENDDRAG)ÄÄÄÄÄÄÄÄÄÄ>³                                ³
                                ³            DM_DROP             ³
                                ³ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ>³
                                ³                                ³
                                ³                      wpDrop(targetobject)
                                ³                                ³
                             ... If source rendering is indicated ...
                                ³                                ³
                                ³                                ³
                                ³        DM_RENDERPREPARE        ³
                                ³         (If necessary)         ³
                                ³<ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄij<.
                                ³                                ³ .
                                ³           DM_RENDER            ³ .
                                ³         (If supported)         ³ .
                                ³<ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄij .
                                ³                                ³ .
                      wpRender(sourceobject)                     ³ .
                                ³                                ³ .
                                ³        DM_RENDERCOMPLETE       ³ .
                                ³ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ>³ .
                                ³                                ³..
                                ³                                ³
                                ³                 wpRenderComplete(targetobject)
                                ³                                ³
                                ³                                ³
                                ³                                ³
                                ³                                ³
                                ³        DM_ENDCONVERSATION      ³
                                ³<ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄij
                                ³                                ³
                  wpEndConversation(sourceobject)


[Back] [Next]