Eine DragListbox ist nur eine etwas modifizierte normale Listbox. Letztendlich bringen wir ihr nur bei, Einträge per Drag&Drop verschieben zu können. Diese Modifizierung wird ganz einfach durch einen Aufruf der API-Funktion
MakeDragList(GetDlgItem(HDlg,IDC_LISTBOX));
Der bool-Rückgabewert kann zur Kontrolle dienen. Sollte die Listbox nicht modifiziert werden können, sollten Sie das Programm beenden, bzw. zumindest alle Funktionen, die irgendwie von der Modifizierung abhängig sind, deaktivieren.
Zusätzlich muss man noch eine Nachricht bei Windows registrieren, die von Windows generiert wird, wenn es zu einer Drag&Drop-Operation in der Listbox kommt:
DL_MESSAGE := RegisterWindowMessage(DRAGLISTMSGSTRING);
"DL_MESSAGE" ist unsere Nachricht, und hinter DRAGLISTMSGSTRING verbirgt sich eine vom System vorgegebene Stringkonstante.
Die Funktion
Auf diese Weise könnten Sie Kontakt mit anderen Programmen aufnehmen, die solche Nachrichten im System registrieren. Aber das ist hier nicht das Thema ... :o)