DRM_DISCARD is supported by playlist and playlist manager windows to remove items from the playlist.
The render method DRM_123LST passes the URL of the enclosing playlist in hstrContainerName. Everything else is up to the DM_RENDER message. DRM_123LST always only reports only one item to DrgDrag, regardless how many items are dragged. When this item is rendered, it receives a list of items in a temporary playlist file. The file name is chosen by the target in hstrRenderToName.
Normally, the source is responsible for the source related stuff and
the target is responsible for the target related stuff. So a DO_MOVE
operation causes
- an insert at the target and
- a delete operation at the source.
The latter is performed at DM_ENDCONVERSATION.
There is one exception. If
- source and target refer to the same playlist container and
- source and target refer to a window within the same PM123
instance
then the target performs the move operation directly in place. In this
case it reports DMFL_TARGETFAIL although the drag and drop
succeeded to prevent the source from deleting the records.
When a source with DRM_123LST is dropped on a playlist, PM123 tells the source to render the temporary playlist with the dropped items.
PM123 supports the actions DO_COPY and DO_MOVE. In case of DO_MOVE the deletion in the source is performed by the source unless source and target refer to the same playlist container within the same PM123 instance, where the move operation is performed by the target directly.
When dropping a playlist item on the player's main window, the function 'load' is performed. The action DO_COPY indicates that the item is immediately loaded into the player. The action DO_LINK appends the items to the default playlist. It depends on the player settings which one is the default. Multiple items are always placed in the default playlist.
Dropping a file or folder on the player causes the object either to be played immediately (DO_COPY) or to be appended to the default playlist (DO_LINK). It depends on the player settings which one is the default.