So, vergiß das Gesagte. Wäre ich nicht zu faul
gewesen mal ins
PSDK zu schauen, hätte ich die Lösung sofort gesehen. Das
Handle welches
FindResource() zurückliefert ist nicht vom Typ HGLOBAL! Stattdessen ist es HRSRC. Unter Delphi ist das nicht wichtig, C oder C++ hätten vermutlich (?) gemeckert. Jedenfalls ist es kein HGLOBAL und somit auch kein
Handle im Sinne von
GlobalAlloc().
Damit wäre das Rätsel gelöst. Die Daten müssen also mindestens einmal kopiert werden.
Nachtrag:
... und wenn ich jetzt noch bei allen beiteiligten Funktionen nachgeguckt hätte, wäre mir folgendes aufgefallen
Dokumentation von LockResource() im PSDK 2003: hResData
[in]
Handle to the resource to be locked. The LoadResource function returns this
handle.
Note that this parameter is listed as an HGLOBAL variable only for backwards compatibility. Do not pass any value as a parameter other than a successful return value from the LoadResource function.