la risposta è abbastanza semplice.

l'handle altro non è che l'handle "nel senso windows", ovvero della API32.

Questo esiste per ogni finestra windows, anche per la finestra principale dell'applicazione delphi (* nota, qui ci andrebbero 74 precisazioni, ma non le faccio perchè siamo in modalità niubbo-like *)

E' quindi "normale" che un programma delphi "normale" abbia un handle, mentre una DLL no.

In questo caso devi passare alla DLL l'handle della finestra dell'applicazione che chiama la DLL.

---
Per inciso: ma che senso ha fare DLL in delphi? Se c'è una cosa "bella" è quella di poter far programmi monolitici, altro che approcci stile-100.000.dll che non funzionano! (es. VB e "cugini")