Phil Deets Wrote: > I don't know what the problem is, but I would try checking to see if the > pointer at window construction and the this pointer before calling > onMouseDown are the same. Maybe there is a problem with using the result > of getWindowLong as a pointer. For example, one value could be 32-bits and > the pointer could be 64-bits. I didn't run the code to test anything, I'm > just throwing out some ideas which may be way off. > > --
Ok I will try to explain: In my opinion my code should works. I would like to refer to two places in the code. 1. inside window module: user32.messageBox(null, cast(wstr)"LBUTTONDOWN", cast(wstr)"msg", 0x00); this.onMouseDown(l_mea); 2: inside test module, version 1: Window wnd1 = new Window(); wnd1.run() inside test module, version 2: Window wnd1 = new Window(); Window wnd2 = new Window(); wnd1.run() Both versions should work identically. When the mouse button is clicked inside the window, I expect two messageBoxes: The first one with message "LBUTTONDOWN", and the second "Window". But it is done only with the first version of test module (without wnd2 = new Window()). In the second case (with wnd2 = new Window()) I see message "LBUTTONDOWN" and Access Violation with DMD 1.050 or just nothing! with DMD 2.035 (therefore 'amazing' in the topic). I apologize for my horrible English, but I hope I explained that enough clearly.
