hast du dir denn die Hilfe zu DragQueryFile überhaupt mal angeschaut?
StrAlloc reserviert einfach nur Speicher, das war im Ausgangspost richtig. Aber vom Speicher reservieren alleine steht noch nix im Speicher. Du musst nachdem du mit StrAlloc Speicher reserviert hast mit DragQueryFile den entsprechenden Dateinamen in diesen Speicher schreiben lassen. Du kannst alternativ auch einfach mal nach DragQueryFile im Forum suchen um funktionierende Beispiele zu finden. Nur solltest du diese auch versuchen zu verstehen.