PM123 Drag and drop format

PM123 supports the following drag and drop formats:

DRM_DISCARD (playlist, target)

DRM_DISCARD is supported by playlist and playlist manager windows to remove items from the playlist.

DRM_123LST (playlist, source)

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.

DRM_123LST (playlist, target)

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.

DRM_123LST (main window target)

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.

DRM_OS2FILE (playlist, target)

Dropping files on a playlist inserts links to the files immediately at the location of the drop. Except for the file type UniformResourceLocator, in which case the contained URL is inserted instead of the file itself. The only supported operation is DO_LINK.

DRM_OS2FILE (main window, target)

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.