Endurion
Sir Bugalot
Hmm, ich denke, da hat sich seit 16bit doch mehr verändert.
MAKELONG schneidet von dem oBuffer die oberen 16 bit ab, das gibt Krappes.
Dein (DWORD)oBuffer ist da schon besser.
Ich weiss leider nicht, wie ToolBook den String haben will. Aber ich denke, da müsste statt
dwOStr = (DWORD)oBuffer;
das stehen:
dwOStr = (DWORD)oStr;
(Wenn eine Warnung von wegen Datenverkürzung kommt, dann mach statt DWORD DWORD_PTR da rein)
Kannst du irgendwo in Erfahrung bringen, wie ToolBook den String erwartet? In der Original-Version ist ja kein Pointer weitergegeben worden, sondern ein HANDLE auf einen Speicherbereich im globalen Heap (was ich an sich schon seltsam finde).
Auch die Längen-Bytes werden ja eigentlich in dem Code nicht reingesetzt.
MAKELONG schneidet von dem oBuffer die oberen 16 bit ab, das gibt Krappes.
Dein (DWORD)oBuffer ist da schon besser.
Ich weiss leider nicht, wie ToolBook den String haben will. Aber ich denke, da müsste statt
dwOStr = (DWORD)oBuffer;
das stehen:
dwOStr = (DWORD)oStr;
(Wenn eine Warnung von wegen Datenverkürzung kommt, dann mach statt DWORD DWORD_PTR da rein)
Kannst du irgendwo in Erfahrung bringen, wie ToolBook den String erwartet? In der Original-Version ist ja kein Pointer weitergegeben worden, sondern ein HANDLE auf einen Speicherbereich im globalen Heap (was ich an sich schon seltsam finde).
Auch die Längen-Bytes werden ja eigentlich in dem Code nicht reingesetzt.