I reconsidered your problem and I can add a few details more.
1. I'm not sure of it, but I can imagine that GetActiveCtrl returns previous control ID because some events (among them mouse events) can be swallowed (discarded), so the GUI has not yet changed the 'active' control
2. For the same reason, if you wait until the GOT_FOCUS event, presumably GetActiveCtrl returns the correct contrl ID
3. In any case, the 'control' parameters contains the correct ID even in the left_click event
Hope all this helps you
Roberto